Hello, World! I assume that you are reading this post because you want to venture into programming but don’t know which programming language to start learn first.

Truth is many of us, who are experienced programmers today, were once in the shoes you are in now. When we started out, we also wondered which language to learn first.

And the interesting thing is that, because there are so many programming languages available, it is easy to make the wrong decision. Some, out of confusion, resort to hopping from one language to another. This is a very big mistake because, as the saying goes, Jack of all trades is master of none.

A man standing confused
Jack of all trades is master of none

So, which programming language should you learn first as a beginner? Well, the short answer is… any programming language. Yes, you read right: any programming language.

The fact is that, in reality, it doesn’t matter the programming language you learn first. What are more important are the core programming principles you learn rather than the programming language. These principles include algorithms, data structures, and basic programming structures. And they are the same regardless of programming language.

Understanding of these principles, rather than understanding of any one language, is what makes you a programmer. So, as a beginner, learning your first programming language is not an end in itself but an avenue for you to learn these core programming principles.

Having said that, I must also point out that not all programming languages are created equal. There are some languages that will give you deeper insights to the core programming principles than others.

Personally, I recommend strongly typed languages over weakly typed ones. However, I think that the most basic criteria you should consider when choosing a language to learn first should be the niche you plan to specialize in. This will help you easily fit into the niche once you master the language.

If you want to specialize in systems programming, you may need to consider learning C/C++. If you aspire to develop applications for Android devices, you may need to consider Java. If you prefer iOS devices instead, then consider Objective-C or Swift. If web development, then JavaScript or PHP. If machine learning is your passion, then Python may just be what you need.

In summary, don’t confuse yourself trying to learn more than one language at a time. Just focus on one language. Use that language as a tool to learn core programming principles. You will discover that once you know these principles, it becomes very easy to learn any other programming language you may want to learn later.