How to choose your first programming language

Daniel Byron
4 min readJan 13, 2020

This is a question I hear all the time from people interested in learning to code or just starting out. It can seem overwhelming, there are so many languages to choose from and when you’re told it can take months to years to learn to code, making the right choice early on seems critical. After all, you don’t want to waste months learning the wrong language!

Don’t fear, would-be-coder! In this article we’ll discuss what you should consider when choosing a first language, but I must start with this:

It largely does not matter which language you start with.

Learning a programming language is in some ways similar to learning a new spoken language, it takes repetition and practice. However, much of the foundations of one programming language carry over into other languages. You won’t have to start from scratch every time.

The image below shows a simple snippet of code (summing the numbers 1 up to, but not including, 10) in some of the most common programming languages:

The same code in 9 common languages

Don’t worry if you don’t understand the code, but see if you can spot the similarities between these languages. Even though these languages differ in their expression, they share the same concepts (in this case, variables and for loops). When you learn these underlying concepts in one language, it becomes much easier to apply the same knowledge to another language.

Another reason why you shouldn’t over-think this decision is that when you’re just starting out, you might not have enough context to understand why you should use one language over another. You might search “pros and cons of Go” if you’re interested in learning Go, and come across words like “virtual machine”, “garbage collection”, “concurrency”, “generics”. If you’re looking to start coding for the very first time, this can seem overwhelming! And many of these concepts won’t come into play at all at a beginner level.

So don’t sweat it too much. It’s better to start learning and understand the fundamentals, then you can learn other languages when and if you want to. Most programmers know at least a few different languages, so you’re not stuck forever with your first choice.

So, what *should* you consider when choosing your first language? Here are some of the things that you may want to consider:

Popularity

There is no best programming language. Certain languages are better at certain tasks, but there is no language that is better than any other language at every possible task. However, a language that is popular is popular for a reason. At time of writing, the 3 most popular languages on Github are Javascript, Python and Java, which are also amongst the top languages recommended to beginners.

Popular languages generally have larger communities and lots of online learning resources, which means you should be able to find help when you need it. They also tend to have access to more libraries and frameworks that enable you to do more with your code (such as use 3d graphics, build your own user interfaces, connect to other devices, and much more).

What interests you

If making mobile apps is your dream, then you might consider learning Swift (for iOS apps), Java (for Android apps) or Javascript which can be used for both. If you love the idea of learning to code by making websites to share with people, then you’ll most likely want to learn HTML and Javascript. If you’d rather program robots and electronic devices, then you’d most likely be looking at C++ or Python. And if making games is your thing, game engines and frameworks exist for most popular programming languages, including C# (used in Unity), C++ (used in Unreal Engine), Java with LibGDX, Javascript for web games, and Lua (with LÖVE2d).

Long term goals

If your goal is to find a job in a particular area of development (web development, app development, etc) or a job at a particular company or city, it’s a good idea to spend some time looking at relevant job listings. See what languages tend to be listed most often for positions you’d be interested in.

If you want to become a freelance developer, look on freelance websites for what programming languages tend to be most in demand.

Even if you’re learning to code for your own projects, or as a hobby, it’s still beneficial to see what other people are using for similar projects.

If you’ve read this far, I truly hope that this article has helped you to think about what’s important to you in a programming language, and eased your concerns about making an incorrect choice. Ultimately, the choice of language is not nearly as important as the choice to begin learning.

Happy coding!

--

--