A verbal language is more than its grammar and vocabulary. A programming language is much more than its syntax and keywords.
Mastering a language gives you new insights into how people think and changes the way you think. You cannot learn this through words, you learn this through interacting with people, or libraries.
Be wary of anyone who says they know more than a dozen languages. Knowing how to program or speak in a dozen languages is easy, understanding how to think in a dozen languages is a very rare talent and I imagine those people are talking about much more interesting things than how many languages they can speak or program in.
You can learn to speak a language without learning how to communicate in that language. In the same way, you can create a program in a language without communicating effectively.
Sophisticated use of verbal language allows precision in expression but requires education to understand. Sophisticated use of a programming language allows and requires the same. We should understand when to be sophisticated and when to be crude, and always seek to educate.
Do not confuse expert use of an ‘informal’ language as crude use of a ‘formal’ language. Consider what Ebonix is to English, or a scripting language is to C++. ‘Informal’ languages have the same merits as ‘formal’ ones.
You cannot learn how to speak a language by reading a dictionary. You cannot learn how to program in a language by reading the manual. These represent translating an expression rather than generating an expression. If translating were sufficient, there’d be no merits or use of learning additional languages.
When you can create your thoughts in a language, so that you cannot meaningfully distinguish between a secondary and native language, you have truly learned a language.