How Many Languages Should You Master?
codeconquest.comI don't agree with the author here because mastering a single language will only give a narrow perspective on programming in general. I'll explain with my personal evolution through languages:
The first programming language I ever got very proficient with was PHP4. After a while I could feel there wasn't much more the language had to teach me, yet I couldn't explain the first thing about how its C implementation worked.
So I started teaching myself C to discover whole new world of programming: pointers, structs, a link process, calling conventions and more, even what happens when you dereference null - heck, the main() function was new to me and I had been programming for 3 years. PHP suddenly felt like a tiny little world living inside an http request within the apache process - the request had been my main() if you will.
Then the same happened with C++, once I got past the headaches trying to understand boost. Until the point after 10+ years I could tell the semantics of even obscure features in any of PHP/C/C++/D/Java/JavaScript and was proficient in a few dozen languages with at least a dozen I actually used to ship products with. Every new language I learned completely redefined the world of others, with the exception of Java, which I decided to quit forever after less than 6 months doing it for a living, what a horrible, horrible language.
What happens when you learn more languages is that the larger perspective gives you a deeper understanding of how they all work, which in turn makes remembering obscure facts easy because you understand why they need to exist in the first place.
"Mastering" something isn't hard, it's just long and requires a bit of dedication every day. Learning about as many things as possible gives perspective which in turn helps to determine where that mastery should be focused.
I quote mastering because it isn't a goal but a process; you don't reach mastery but you constantly pursue it.