Choosing which programming language to learn can be very daunting. There are over 700 languages currently listed by Wiki. Where should you begin?
If you take anything away from reading this, it should be one key point; we strongly recommend learning one language in-depth and not two or three casually.
What can happen if I choose multiple languages?
- Spreading yourself thin – Picking up another language later down the line can be very rewarding. But when you’re new to programming, it’s important to resist the temptation of spreading yourself too thinly!
- Get focused – Think of it this way. If you wanted to learn French, German and Japanese, you wouldn't choose to learn all 3 at once for the best results. Having a target to focus on allows you to fully understand the nature of what you’re working with.
- A fuller understanding – When you start your career in tech, you’re going to be using programming languages every day (often one in particular, depending on the company.) So it’s better to get to know one in-depth, so that you can learn what’s happening under the hood. Once you know what’s happening under the hood, you can easily extrapolate your skills to learn more languages!
- More than just a language – The more languages you learn at once, the less thorough an understanding you will have of any of them in any given amount of time. Your learning time when starting out is precious, so don't lose focus or waste time by taking on too many things at once. Rather, it’s more important to delve into the underlying technologies which go beyond language. Give yourself a strong foundation to build on.
- Coding is hard – Learning any new skill that you have to completely immerse yourself in can be overwhelming. Taking on multiple programming languages at once can be like running before you can walk. Take time to work through problems you might encounter with one language, before you try to tackle problems with others.
How should I choose?
Well, it’s actually a bit of a trick question
It doesn't really matter what you learn first. Whatever you learn, learn it DEEPLY. Your end goal is not to learn a language. You're learning to be a software developer using a specific language, like learning sociology in Spanish. It’s to understand what’s really happening underneath, and how different technologies work, and work together.
You should come to your answer by breaking it down into three steps -
- Why do you want to learn to code? Do you want to be part of a development team, do you want to build something fun or just want to have another skill?
- What sort of developer do you want to be? The scope of roles and even industries you can be part of is vast!
- What do you find interesting? This is where you can fine-tune what you want to specialise in. Are you fascinated by mobile technology? Do you enjoy the logical thinking behind how things work?
Do your research. If you want to start getting familiar with a language, engage with the community through online forums. Ask questions before you take a deeper dive. Look at the challenges that devs using the language are facing and prepare yourself to face something similar.
A lot of people from the tech community will attend local meetups. These spaces can be ideal for beginners to speak directly with someone who already has an established career. It’s a great opportunity to work through your thoughts with someone who has been through the things that most people who are beginners go through. If you’re interested in their industry, talk to them about the choices they made when they were a beginner.
Study the essentials
However, only when you have a detailed understanding of software development and know-how to build infrastructure should you consider learning another.
Whatever language you learn, learn it well. In the wise words of Ron Swanson;