What programming language to start with? Ever since I started my blog, I have been consistently getting this question from aspiring programmers who are overwhelmed by all the different programming languages out there.
Quite honestly, I get it. There are a gazillion programming languages out there. Picking one can be a challenging, overwhelming, and frustrating experience.
Not to mention that some languages gain viral popularity, and then they start slowly dying out (I am looking at you Ruby) 🙂
So how do you make sure you are picking the right programming language when you are starting out?
Software Engineering vs Programming
Before I answer this question about what programming language you should pick up first, Let me lay some foundational concepts.
Software engineering is not just programming.
You don’t become a solid software engineer by mastering a language or two.
The goal of a software engineer is to build software that is useful, reliable, and scalable.
Programming languages are the tools that make this happen.
Think about like this, imagine you want to be a really good carpenter.
You don’t become a good carpenter by only learning how to use a hand saw, right?
In order to be a good carpenter, you also need to learn how to use different types of saws, chisels, nail guns, etc..
Now if you want to be a carpenter and you are asking: what tool should I learn first?
What do you think the answer is going to be?
Quite frankly, it doesn’t really matter. You just need start somewhere and then keep learning and adding to your skills until you become a good well-rounded carpenter.
Does your first programming language really matter?
Now let’s go back to software engineering, I feel the reason why many of you get stuck in this question is that you are scared of investing so much time in learning a language that might not be in demand or give you the job that you really need.
Great thinking. Let me put you at ease.
1- Remember that your job title is “Software Engineer”
Your job title is: “Software Engineer”.
If we go back to the carpenter analogy. everyone wants to hire a good, well-rounded carpenter who can get the job done. No one just hires a person just because they are very good at using a measuring tape.
Similarly, good software companies want to hire solid software engineers who can get the job done. They understand that if you are a good engineer, learning a new language shouldn’t take more than a couple of weeks. So in the grand scheme of things, the programming languages you already know don’t matter that much.
2- You are learning fundamental programming concepts
Any programming language that you learn will teach you the fundamental programming concepts that you need in order to be a good software engineer.
3- You will be using multiple programming languages anyways.
Facts. You are going to be using multiple programming languages to get your job done.
This can happen in the same company, and sometimes even in the same project you are working on.
It is extremely uncommon for a software engineer to only code in one language for the span of their career.
Cool but I still want recommendations for my first programming language
With all that said, there is no harm in learning languages that are already widely used in the industry and likely to be used in the future.
For this purpose, I highly recommend these three languages:
I can guarantee you will not go wrong by learning one or more of these languages as they will teach you the fundamental programming concepts that you need to learn to be a good software engineer.
And they also have the added benefit of being very popular languages that are being used by a lot of companies.
I personally believe that if you are a complete beginner to programming, Python is one of the easiest languages to get started with. It is beginner-friendly and relatively easier to learn than the other programming languages in this list.
I hope this answer was useful, and that we can settle this once and for all.
- If you want to check what programming languages are popular, check out the TIOBE index. It is created and maintained by the TOIBE company in the Netherland.
- Another good resource is to check the “Top Programming Languages” section in Github’s Octoverse.
Check out the Courses section!
- The Python Learning Path (From Beginner to Mastery)
- Learn Computer Science (From Zero to Hero)
- Coding Interview Preparation Guide
- The Programmer’s Guide to Stock Market Investing
- How to Start Your Programming Blog?
Are you Beginning your Programming Career?
I provide my best content for beginners in the newsletter.
- Python tips for beginners, intermediate, and advanced levels.
- CS Career tips and advice.
- Special discounts on my premium courses when they launch.
And so much more…