Should You Learn More Programming Languages?

In the book Pragmatic Programmers, the authors made a sensible recommendation: learn a new programming language every year. Each new programming language is a new perspective of solving problems. Adding more under your toolbox helps you gain different perspectives. It sharpens your technical judgment. But is it the best use of your time?

Our time is limited. We can only learn a limited amount of things. I feel that we should not be learning any new programming language every year. It is far better to learn a programming language from a different family every year. The more different they are, the better. One should aim to master an object-oriented language such as Java or C#, a dynamic scripting language such as Python, Javascript or Ruby, and a functional language, like Haskell, Scala or F#. You can’t go wrong with C or Golang either.

Once you have mastered the few common families, adding more and more languages marginally adds to your technical capabilities. Knowing one more way of reading a CSV file does not add much value to you. On the contrary, I feel that one should master other areas in computer science once you have those languages in your toolbox. Areas like machine learning, computer vision and security. These multiplies your capabilities. Machine learning allows you to solve non-linear problems. Security gives a mindset of how to break things; helping you to build your product correctly from the start.

Definitely, learning is good. There are a lot of things I want to learn. Knowing that we only have limited time, means that we have to say no more often than not. My opinion is one should not invest time in learning more programming languages once you have mastered a few from different paradigm families. Instead, one should venture into other areas of computer science. Do share if you think otherwise.