Which Programming Language Should I Learn First?
Tags: codenewbie, beginners, programming, career
Published: 2020-03-13 23:51:55

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, <put here your favorite programming language>..._
> - _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.

{% youtube Yny83Y-8oWY %}

So, which programming language should you learn first?
My short answer is **Python** and **Javascript**.

![Javascript](https://images.unsplash.com/photo-1543013309-0d1f4edeb868?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2646&q=80)
### 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](https://images.unsplash.com/photo-1546992772-3318f1f3a1be?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2010&q=80)
### 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.

![Job Market](https://images.unsplash.com/photo-1529400971008-f566de0e6dfc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2550&q=80)
### 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.

![Build](https://images.unsplash.com/photo-1555774698-0b77e0d5fac6?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2550&q=80)
### 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.

![Ease](https://images.unsplash.com/photo-1561701033-1d1a4231860f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=934&q=80)
### 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.


{% youtube Yny83Y-8oWY %}

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](https://images.unsplash.com/photo-1576259222107-6c9767685742?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1951&q=80)


### FOLLOW ME

Do you know that I have a YouTube channel? [Subscribe!](http://bit.ly/YT_DOMENICOSOLAZZO)

Where can you find me?

**Youtube:** [Domenico Solazzo's Channel](http://bit.ly/YT_DOMENICOSOLAZZO)
**Instagram**: [domenicosolazzo](https://www.instagram.com/domenicosolazzo/)
**Linkedin**: [solazzo](https://www.linkedin.com/in/solazzo/)
**Medium**: [domenicosolazzo](https://medium.com/@domenicosolazzo)
**Facebook**: [domenicosolazzo](https://www.facebook.com/domenicosolazzo.labs/)
**Twitter**: [domenicosolazzo](https://twitter.com/domenicosolazzo)
**Snapchat**: [domenicosolazzo](https://twitter.com/domenicosolazzo)
**Github**: [domenicosolazzo](https://github.com/domenicosolazzo)
**Website**: [https://www.domenicosolazzo.com](https://www.domenicosolazzo.com)
**Dev.To**: [https://dev.to/domenicosolazzo](https://dev.to/domenicosolazzo)
**Hashnode**: [https://hashnode.com/@domenicosolazzo](https://hashnode.com/@domenicosolazzo)