Hello folks,
We all need to start somewhere when learning to code. Everyone has a reason to start this journey but everyone gets confused on where to start.
Let's talk about which programming language you should learn first.
Common questions that I often get on social media and during my days as a software engineer:
- Which programming language should I learn first?
- I am a student: they are teaching us Java but everyone tells me to learn Python, Javascript, ...
- Which language should I learn to get a job?
Do these questions sound familiar to you?
I have both a short answer and a long answer. The short answer is more subjective.
I worked with multiple programming languages throughout my career. Programming languages like Visual Basic (remember this one!?!?), C#, PHP, Java, Python, Javascript, C++.
So, the answer is based on my experience in the last 15 years as a software engineer and my personal taste.
So, which programming language should you learn first?
My short answer is Python and Javascript.
Javascript
Javascript is the programming language that is powering the web.
The syntax of Javascript is quite easy to learn and you can start using this programming language without setting up any development environment.
Just open your favorite browser, and open the developer console.
That's all you need to start writing Javascript code.
Ok, that's not how you would write production code, but if you are just learning your first programming languages and you need a Javascript playground, that's all you need to start writing code in Javascript!
In Web Development, you need the frontend and backend part of the website. Learning Javascript can give you the "superpower" of being able to write both sides with just one programming language using something called Node.JS, which is actually Javascript on the server-side.
Python
Another programming language that I would recommend is called Python.
Python is one of the fast-growing programming languages out there and it can be used for Web Development, Data Science, Machine Learning, Automation.
The simplicity in its syntax is one of the best parts of this programming language and actually, the thing that made me fall in love with it.
The community is huge and there are so many job opportunities using Python and making it a worthy "first" programming language to learn.
That's my personal short answer based on my experience, but should you really learn Python and Javascript first? Maybe yes, maybe not!
Everyone has different needs and goals on why they are learning code, so there is no magic first programming language that would be good for anyone.
BEFORE CHOOSING YOUR FIRST PROGRAMMING LANGUAGE
There are 3 points to take into account when deciding your first programming language and I am sharing my strategy on how I would go choosing my first programming language if I would start my career in Software Engineering today.
1. JOB MARKET
The job market is the first point to take into consideration,
Most of you are learning to code for a different reason. Some of you are looking to find a job in this field and it is totally understandable. There are so many opportunities in software engineering that I see many of you have this as the main reason to start learning to code.
The job market depends on your own location and industry you want to work in.
Different countries have different demands for some programming languages. Same when we talk about the industries you might work in: working as a software engineer in oil & gas might require experience than working in Banking or the Gaming industry.
If you want to work in the Gaming Industry, maybe learning C++, C# could be two good options as the first programming language.
If you want to work in the Banking Industry, learning Java is the first option for you.
If you want to build mobile apps for a living, Swift / Objective-C are the options for iOS and Java / Kotlin for Android.
Do you want to work in Data Science and Machine Learning? Python could be a good bet as the first programming language to learn.
Understand the kind of job you want to get and the technologies required for it, that's a good way to understand the programming language that you would learn first.
2. WHAT DO YOU WANT TO BUILD?
If you are not looking for a job, learning to code might just be a pure pleasure for you at the moment.
In that case, building project-based learning can be a good option.
What does it mean? Instead of only relying on a tutorial, you try to build a project with a given programming language you choose.
Let me ask you: what do you want to build?
A Website? You should start learning Javascript in combination with HTML / CSS for the frontend part.
A Mobile app: You should choose Java or Kotlin for building Android apps and Swift / Objective-C for iOS app. If you want to build cross-platform apps, you could choose to learn Javascript using React Native or Dart using Flutter.
Want to build a game?
You could choose Swift for the iOS game but probably I would choose to learn C# using Unity.
Based on what you want to build, you might choose a different programming language.
3. EASE OF LEARNING
Last but not least, it is the ease of learning a programming language. Some programming languages might be easier to learn and work with than others. Let me explain...
Whenever you are solving and trying to solve a problem in software engineering, you have two factors to take into consideration:
Problem Solving: Each problem that you are trying to solve has a certain logical complexity. It is your job to understand what will be the steps for solving the problem.
Syntax complexity: Each programming language has its own syntax. Some can be easier to learn than others.
When learning to code, it is wise to choose programming languages with an easier syntax complexity. For example, learning the syntax and how you write software in Python could be easier than Java.
WHICH PROGRAMMING LANGUAGE SHOULD I LEARN FIRST?
My short answer on which programming language to learn first was Python and Javascript. As I said, it is based on my previous experience but I think they are quite easy to learn and great programming languages to work with offering so many opportunities for your career.
But, you should choose the right programming languages for you and your needs. That's why I suggested you to take into account 3 valuable points: job market, what you want to build and ease of learning.
Let me know in the comment below which programming language you are learning and how do you feel about it.
Well, the last thing: If you arrived here, thank you so much for your support and time that you spend on this page.
If you enjoyed this story, please click the like button and share it to help others find it! Feel free to leave a comment below.
⠀
⠀
⠀
⠀
ABOUT THE AUTHOR
Domenico is a tech lead and software developer with a passion for design, psychology, and leadership.
If you need help with software development, you need consultancy for your technical challenges or you need a leader for your software team or just want to collaborate online, feel free to contact me!
FOLLOW ME
Do you know that I have a YouTube channel? Subscribe!
Where can you find me?
Youtube: Domenico Solazzo's Channel
Instagram: domenicosolazzo
Linkedin: solazzo
Medium: domenicosolazzo
Facebook: domenicosolazzo
Twitter: domenicosolazzo
Snapchat: domenicosolazzo
Github: domenicosolazzo
Website: https://www.domenicosolazzo.com
Dev.To: https://dev.to/domenicosolazzo
Hashnode: https://hashnode.com/@domenicosolazzo
Top comments (7)
Agree. Python + JavaScript + SQL will cover a lot of ground. These form a good first set for anybody beginning in 2020.
What the next set for those who are pretty good with the first set should be is the tough question. Scala, Go, and Rust maybe. I probably won't need them any time soon though. Python+JS+SQL got me covered for a good while I reckon.
I am starting with Go right now but just to see what these new languages can offer to me. Maybe I will use, maybe not..but it would not hurt to learn something new. For sure Python, Javascript and SQL get you covered for a loooooong time!!
"Instead of only relying on a tutorial, you try to build a project with a given programming language you choose." - couldn't agree more! Across the internship programmes (and even junior dev recruitment), we've seen people add tutorials and courses to their resumes, rather than projects. Needless to say, it's easier for a company to see how you work if they have something palpable to assess, so building projects in the programming language you learn also increases chances for future hires.
On another note, our vote goes to Javascript for first programming language to learn as a newbie 😉
And for those who think about being mobile developers, Javascript -> React -> React Native could be a good route for the time being (for React Native hopefuls, an intro article here ->>> around25.com/blog/an-introduction-...)
Honestly, whatever language you feel most interested in - as you’ll be the most motivated to learn it.
Totally agree! That's why the 3 points in the article could you help you to figure it out why you are so motivated on learning to code and keep you focused when you decided your first programming language
I suggest you "Go" as it is both simple like and powerful python and has some great potentials. I am pretty sure in the near future it will gain the same popularity as python has now.
I am just starting with Go and I am loving it. However, I feel there are so many concepts that could be overwhelming for a person just starting to code and learning basic of computer science! But, as you said, it is going to be an important language to know in the future!