According to Wikipedia, there’s over 700 “notable” programming languages. If you’re like me, you find this relatively unsurprising. What I find interesting though, is that most people have only heard of 15 of these at most.
Let’s test my hypothesis. I’ve listed some programming languages below at random. See if you recognise them.
I bet you don’t recognise any of these. I certainly didn’t.
This brings us to the question: “Which language should I learn?”.
My advice would be not to force it. You shouldn’t choose to learn a new language without a good reason.
You should naturally stumble upon a language to help you achieve something easier or faster.
For example, you could build a website in C. However, it would be wiser to learn Python and then use a web framework like Django. Python over C is a better choice because Python sacrifices performance for faster development and more readable code. Since database access and network delay are the most significant bottlenecks, the performance of C over Python is negligible in this application.
With that out of the way. I know the following statement is going to be controversial.
The only languages you need to learn are C++ and Python.
After a few years of developing primarily in Java, I decided to go all in with Python and I love almost everything about it. The sheer amount of libraries available and the ease in which they can be used makes development an order of magnitude faster.
However, the main drawback of Python is it’s slow (relatively speaking). That’s why you should learn C++. I’ve often wrote code in C++ that’s 10 – 100 times faster than the same code in Python! This is great for computationally intensive applications like reinforcement learning.
The bonus is you can easily integrate C++ with Python using Python Bindings, to get the best of both worlds.
Learning C++ has another benefit; it will make you a better programmer. By learning C++ you will learn the fundamental low level details that are hidden by the more abstract nature of Python. Furthermore, you can get away with writing poor code in Python but in C++ the effects of bad code present themselves very quickly.