How Many Programming Languages Should I Learn?
A.K.A. Which Programming Languages Should I Learn?
Ah yes. The age old question.
In this article, I will attempt to answer this question based on my experience and observations. Curious? Read on!
Before I go on, I want to clear up what learning a language means. To me, learning a programming language is going beyond the basics like printing "Hello World!"
.
What I consider to be learning a language is not only learning its print()
statement (or equivalent), but also learning how to use variables, functions, loops, classes, and other fundamental concepts. More abstract or complex concepts — such as lambda (anonymous) functions — can wait later, so in my book, we can safely say that we have learnt a language before fully understanding such advanced concepts of it.
Okay! Now that we have all that covered, let’s start!
What to consider
The language(s) you learn should depend on the following factors:
- your current skill level
- what you want to build
The two considerations above will be enough to answer the question (the title) and its cousin (the subtitle).
Considering your skill level
Attention beginners!
For you, I recommend focusing on one language, understanding its fundamentals well enough to make a simple program like the one below.
By mastering the basics, you’ll be able to create a lot of simple projects and thus boost your confidence as a programmer. Not only that, learning one language well means that you can learn another with greater ease. Why? Well, just like real languages, each programming language is built upon the same concepts, just that different words, or syntax, are used to apply those concepts.
For example, take the Python print()
statement in the introduction. What it does is write "Hello World!"
into the console. In JavaScript, we can perform the same task using console.log()
.
As for which language to learn, I recommend Python. It has an easy-to-understand syntax reminiscent of English, and it has lots of built-in functions that are very helpful to programmers who are just starting out. This will help beginners like you understand the very basics of programming easily without much head-scratching, hair-pulling, or teeth-gritting. Now, this does not say that Python is exclusively for beginners, but it is saying that Python is suitable for programmers of all skill levels. In other words, mastering Python would make you a greatly valued, versatile programmer.
Once you’ve finished learning the fundamentals of one programming language well, it’s time to expand your wings!
Attention non-beginners!
I don’t want to say “experts” because I’m not sure what constitutes one :)
Now that you’ve mastered one programming language, you must be thinking about building an actual project. To do so, you may need to learn another language which is specialised for the particular field (e.g. web development) you are looking at. Yes, Python is a flexible language which prepares you to create many projects in different fields, but the specialised languages are usually more well-supported by libraries, frameworks, engines, and open-source extensions by the community.
Does this mean you shouldn’t learn a flexible language like Python? No.
Does this mean you should learn another language to help you accomplish your task more efficiently and effectively? Yes.
So, non-beginners, my advice to you is to either stick with one language and push the boundaries of what is possible with it, or learn other languages to create a project in the field of your choice.
Considering what you want to build
I’ll be talking about the fields I’m familiar with: web development, machine learning, and game development.
Web development
The standard languages for this are HTML, CSS, and JavaScript (some people say that HTML and CSS are not programming languages but for this article’s purposes, let’s say it is).
As shown in the image above, JavaScript is an amazingly useful language for web development. As a side note, another even more amazingly useful language is TypeScript, which is basically JavaScript with superpowers!
All in all, HTML, CSS, and JavaScript/TypeScript are the languages you would want to learn if you’re hoping to get started with web development!
Machine learning
For machine learning, Python is your best bet!
From OpenCV to Keras to TensorFlow, there are myriads of libraries for creating machine learning models in Python. Not only that, Python is also used by professional programmers/engineers in this field.
This is Python’s specialty.
Of course, there are also other languages that we can use for machine learning. For example, we have R, Julia, and several other languages too. All of them are great, but Python has by far the greatest support (highest number of users, libraries, etc.) out of all of them.
Game development
C# and C++ are the languages you should use to develop games!
You should also use game development engines such as Unity, which uses C#, or Unreal, which uses C++.
Other languages like Python can also be used for game development. Pygame is one game development library for Python coders, and Godot, which does not necessarily use Python but its own language similar to Python, is a game engine you can use too!
In conclusion…
Choosing how many languages to learn, or which language to dive into, depends on how experienced you are as a programmer as well as what projects you want to create.
I hope this guide has been useful! Without a doubt, others may have different opinions, and I totally support that! Please share your comments down below, and I’ll be more than happy to read and respond to them!
Happy coding!