Choosing your first programming language can be one of the most important decisions made when starting your programming journey.
It’s crucial because this will be the one you’ll be learning with. This could be anywhere between:
- Building projects
- Reading or contributing to existing source code
- Learning programming principles or concepts
- Solving programming challenges
- Debugging
- Searching for solutions when you’re stuck using Google
You’re able to achieve all of this with most programming languages, but some are in better positions than others to make learning how to code substantially easier. Not only this, but to position yourself, so that you can get your first programming job as soon as possible.
Here are some steps you can take to choose the right programming language for you.
1. Create a Shortlist
The first step I would recommend is to create a shortlist. It’s not too difficult to find some websites or even videos on which are the most popular languages in 2021. The shortlist you create could be different from others depending on what path you want to take.
For example, if you wanted to be a front-end or UI developer then really the language you’ll want to go with is JavaScript. HTML and CSS are not programming languages but you would need to learn those as well, often people would recommend you learn those first. I think you should learn JavaScript first before those two.
Another example would be Game Development, games can theoretically be created using any programming language, but professionally, it would be between C# or C++.
Here are some sources on what programming languages are popular.
Stack Overflow Survey
The Stack Overflow survey 2020 is a popular comprehensive annual developer survey.
You can get a good idea on what is popular among developers, what programming languages they enjoy, what they would like to start using or learning , and also what they’re using professionally, which indicates it’s job prospects.
Google it
You can Google most popular programming languages as well. This topic is very popular and has many articles or videos on the subject, and from what I’ve seen there is a degree of consistency between them all. So it shouldn’t take long at all to create your shortlist.
Tiobe Index
The Tiobe Index is a good indicator on what’s popular. It’s updated monthly and ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, and YouTube are used to calculate the ratings. It’s not an indicator of what is the best language but how frequent a language is mentioned on the internet, I wouldn’t rely solely on this to choose your programming language but you can use this data to see trends. This is how I started to realise that, Ruby, my first programming language is starting to decline in popularity.
Once you have a shortlist, my recommendation is to narrow it down to 3 options.
2. Consider the Most Important Factor
The most important factor, in my opinion, is to decide based on job opportunities in your area.
I assume that as a junior, you want to learn to code in order to pursue a career in programming.
If so, choosing a programming language where there are many opportunities available to you is a priority, especially when you have little to no professional experience.
The priority should not be simply, learning what language looks the most pretty, the easiest to learn or even necessarily choosing it based how many people like it.
It would be more effective to prioritize getting a job because once you do, your ability to learn dramatically increases, you’ll have gained some benefits such as: - a live application to contribute to - a team of developers including seniors to work with and learn from - The opportunity to grow your network - Gain professional experience
More importantly, you’re being paid a salary while learning. The starting amount may not be that great but the true value of getting the job is the experience and opportunity of working you will have gained.
Once you get your foot through the door, then your career trajectory will begin to go up. In fact, your salary and earning potential will also go up, but the first hurdle is to get that job.
Why Don’t I Just Learn Python?
Python is considered a very beginner friendly language, and would be the one I would typically recommend. In fact, most of the “most popular programming language” articles or videos on the internet will likely have Python in their list.
The issue is if you plan to build your career as a Python developer, what good is it, to learn python if there are no job opportunities available to you because of where you live? If there were then absolutely go for Python as your first programming language.
This may no longer be a problem because more and more companies are offering remote working opportunities.
Otherwise, the exception is to learn it ONLY if you’re learning it as a hobby with no intention of getting a job with it in the near future. Learning Python in order to learn programming concepts and a base before switching to a different programming language is also a viable strategy but will stagnate your learning because you would need additional time to learn the features of the new programming language.
My recommendation is to choose only one language and focus ONLY on this, there are going to be other languages you may need to learn as part of your job such as HTML/CSS maybe JavaScript if you’re considering a full-stack developer role. I myself, switched server-side language a few times in my professional career, and I think it stagnated my learning to some degree.
Example
On indeed.co.uk, in London there are 2000+ Python developer jobs, but if you lived in a location such as Milton Keyes, there are fewer than 20 job applications,
There are 2,130 Python Developer jobs in London 30/03/2021
There are only 20 Python Developer jobs in Milton Keynes 30/03/2021
Note that these are general Python developer jobs which includes mid to senior roles, so those opportunities may not be available for juniors anyway. But this is true for any programming language job, more job opportunities increases likelihood to not only get an interview but to potentially receive a job offer.
Tooling
The tooling available is something to think about, although not mandatory. Anything that will make working in programming easier is worth considering.
Being able to easily debug code, leverage open-source libraries for specific requirements, easily set up your development environment, deployment is not trivial. Being blocked from learning because you cannot get a library to work or to set up your debugger and having to investigate how, can be very frustrating and waste a lot time.
Community
An active community for the programming language you choose is very useful, because you’re able to leverage their knowledge and experience by asking questions, finding related blog posts or articles, You can join forums or online communities like reddit and it’s easier to find solutions to problems from your own projects if other people have also experienced and shared it.
Summary 📝
So these are some of the things you can do to help choose your first programming language. Once you learn the very basics of programming such as data types, variables, loops methods, classes etc, then it’s not a bad idea to look at the other programming languages in your shortlist
If you wanted my opinion, I would recommend 3 languages to start with as a beginner.
- C#
- JavaScript
- Python
But if you only wanted my opinion on which to choose first, I may be biased because I’m a C# developer, but in my years as a programmer, I have used numerous programming languages professionally such as Ruby, PHP, JavaScript, TypeScript and also experienced some others such as Golang. I would go with C# every time.
Having experienced those other languages first hand, I can confidently say that C# is the one I wished I started learning first and I would recommend this programming language the most. That said you can’t go wrong with JavaScript or Python either so long as there are job opportunities for these languages in your area.
If there are very few job opportunities using these programming languages in your area, then figure out which ones are, Java, PHP, Ruby, Golang, Rust, C++ are also viable options but I would only choose these based on job opportunities, because as a first programming language, there are going to be reasons why they’re less suited for beginners compared to the ones I am recommending.
That said, I’m just a random guy on the internet, don’t just take my word on it, but I hope this post has been useful for you, to at least consider my thoughts and logic behind my choices.