Many people interested in programming, especially beginners, always ask how many programming languages should they learn. If you’re confused with this topic, wondering whether to learn multiple programming languages or to stick with one programming language, I’ll try to address this topic in this article.
How many programming languages should you learn? The answer to this question is; it depends on the situation. It depends on whether you’ll use that programming language or not. If you need to learn a programming language to accomplish a task, go ahead and learn that language. If you’re learning just for the sake of learning a language, I suggest you not do it.
Don’t get me wrong. It all depends on the specific situation you’re in your career. But, I want to tell you some important concepts before you start learning a bunch of programming languages like collecting pokemon cards.
Always Learn Things for a Reason
What’s your reason for learning a new programming language? Do you have an answer to that? If you have a good purpose for learning a new programming language, then definitely learn it. Many people learn a whole bunch of programming languages just for the sake of learning them. But, they never use those languages in practice.
Learn a programming language so that you can do a task. What’s your task? I’ll give examples of the right approach and the wrong approach.
|I know how to build the front-end of a website using HTML, CSS, and JS. Now, I need to learn Django to do the backend stuff.||Right Approach|
|I finished learning Python. So, I’m going to learn Java.||Wrong Approach|
|I need to create an android application. So, I’m going to learn Java.||Right Approach|
Just analyze these situations. I hope you get my point. I’m not saying to stop learning. You should always keep learning, but make sure you apply what you’ve learned into practice.
Of course, learning new programming languages will give you a different viewpoint. You can compare those languages that you’ve learned and take the best approaches from them.
When you learn different languages and their operations, you’ll expand your knowledge in programming. But, effective learning happens only when you put the knowledge into practice. While there are gains in learning different programming languages, you need to know where and how to draw the line.
Specialization and T-shaped Knowledge
Specialization is very vital in any industry, no different in software development. It is always better to be a specialist in one thing, rather than a jack of all trades, master of none. Do not get dabbled in so many things rather than gaining expertise by focusing on one.
When a company looks for hiring an android developer, what do they prefer? Do they prefer a person who knows ten programming languages or a person who is an expert in android development? Probably the latter one, right? Just put yourself inside the shoes of the person who is hiring, you’ll get the correct answer.
So, being an expert in at least one particular technology is much better than knowing all the programming languages in the world. Programming languages are just tools. Based on our problems, we use a particular tool to solve that problem. There’s nothing more than that.
Also, experienced programmers already know that there’s nothing so different between programming languages. If you become an expert in one language, you can easily learn any other programming language.
Once you become an expert on one topic, it is always good to expand your knowledge. Try to focus on acquiring T-shaped knowledge. T-shaped knowledge is a metaphor used in job recruitment to describe the abilities of persons in the workforce.
The letter “T” has a vertical bar that represents the depth of related skills and expertise in a single field. The horizontal bar at the top represents the broad base of general supporting knowledge or skills.
Big tech companies are also measuring the depth and base of knowledge of their employees. The company where I’m working now has a rating called T-factor, which is a value out of 10. I’m not happy with the way they measure it, but it is a great way to look at the skills of an employee.
So, if you want to become a successful software developer, become an expert on your favorite technology, and have a general knowledge about the other related technology.
Which Programming Language Should You Pick?
Let me put this question in another way. What do you want to do? Do you want to create websites? Do you want to build mobile apps? You need to pick the programming language based on your needs.
I’ll list down some of the general tasks and the corresponding languages that can be used for accomplishing those tasks.
|Android app development||Java / Kotlin|
|iOS app development||Swift|
|Machine learning and AI||Python / R|
|Video game development||C++/ C#|
The above table contains a few examples of the tasks that can be accomplished using different programming languages. If you know what your need is, select a proper language that can accomplish that need.
Many beginners often try to learn a lot of programming languages at once without even doing anything practically. That is not the right way to approach learning. Learn a language so that you can do something with it. The “doing” part is more important.
Go deep with one technology and become a master in it. However, you can widen your skills as well by learning other stuff, but the primary focus should be specialization and expertise.
I hope you got some value out of this article. I know everyone will not agree with me. If you have a contrary viewpoint, write down your thoughts in the comments section below. We can have a healthy debate on the topic.
If you have any doubts or questions, feel free to ask me in the comments. I’ll be happy to help you.
I would appreciate it if you would be willing to share this article. It will encourage me to create more useful tutorials like this.