What programming language should I learn first? 3 key factors to consider
Tags: codenewbie, beginners, programming
Published: 2020-12-06 18:49:14

*Quick note: I'm creating a brand new community for developers focusing on building programming skills through a welcoming online collaboration environment. We need developers like you so consider [joining us](https://community.inspirezone.tech/)!*

---

You’re new to the world of programming and want to learn how to code. Where do you start? Of course some common questions will be, what programming language should I learn? How can I make an informed decision when selecting a first programming language?

Rather than basing your decision of a language you hear about the most or ones that are currently trending, we are here to guide you in answering these questions by providing 3 things to think about.


## 1. Why are you learning to code?
It’s important to think about why you want to learn to code.

### You’re just exploring and want to get a feel for how coding is like

If so then start with a language that introduces you to basic concepts of programming such as writing in a structured syntax. In this case, a language such as HTML and CSS should be a good place to start.

```HTML
<!DOCTYPE html>
 
    <head>
        <title>Intro to HTML</title>
    </head>
    <body>
        <p>hello universe!</p>
    </body>
 
</html>
```
*Sample HTML code. Getting used to structured syntax formatting is part of learning how to code.*

Some may debate as to whether HTML and CSS are truly programming languages. However whatever the stance is on them, it will certainly touch some key concepts of what programming is about and the basics of using development tools. You can then use your initial experience to determine if coding is something you want to invest more time on.

### You’re already set on learning to code and you desire to write functioning applications

In this case, you want to start with a language that will help you reach this end goal. The type of language to select will require a bit more thought so you can choose one that’s fit for purpose. The types of application you want to develop also plays a factor. We’ll go through this in more detail when talking about the next key factor to consider when selecting a first programming language.

### You want a job as a programmer

Then look up programming languages highest in demand. This can be done by searching through job posting websites and analysing the most frequently mentioned language requirements.

Also, if you *really* want a job in a specific tech company then look up their job postings and see what languages are required for roles they want to fill.

Some caution however if your primary reason for learning to code is getting a job! Languages that are highest in demand as a job posting now may not be as high in demand a few months from now. Jobs with the highest earning potential might not be in the field you'll enjoy. Also, once you land that job you may find the experience of working as a programmer very different to when you were doing it as a side hobby.

In terms of working for big tech companies, you might want to consider the level of experience required and potential high competition. Not to discourage you, of course you can achieve anything you put your mind to!


## 2. What technologies and industries interest you?
### Your passions for technology

Look around you – your PC, mobile, smart speaker, TV, video game consoles, the web browser you’re using to read this…

What technologies do you see and think, YES, I would like to know how that works and possibly write an application for such a technology some day?! If one jumps out to you, you’ve found a potential driving factor in selecting a first programming language.

You see, there’s a reason why many programming languages exist. It’s because one language can’t be used to write software for every technology that’s out there.

If you’re curious about developing applications that runs on a PC, then choose a language supporting that platform. Or if you’re more interested in writing mobile apps, there are languages designed for that purpose. Is your dream to know how to write software for video games? Some languages are better than others for making video games. Interested in smart devices and the IoT technologies driving them? A number of languages are more efficient than others for such technologies.

Hopefully you get the picture by now: **Selecting the ideal programming language greatly depends on the application and technologies you are developing for.**

If there’s a technology you are passionate about and are determined to write applications for as your end goal, select a language that supports development of that technology. If you have a genuine interest in a particular technology, use it as your driving factor when selecting your first programming language.

As a rough guideline, the illustration shown below provides a list of popular programming languages and applications they are commonly used to develop. This can be used to aid your decision of selecting a first programming language if your interest in a particular technology is a driving factor in starting your coding journey.

*Please note, in reality different languages can be used to develop a wide range of applications. For example, while C++ and C# are typically used for video game development, several other languages like Python and JavaScript can also be used.*

![programming languages and applications](https://dev-to-uploads.s3.amazonaws.com/i/57invx76ugmhxtl7q7ns.png)


## 3. What's your level of commitment in learning to code?

### Language popularity and learning hurdle

A popular language may not be beginner friendly. Take C for example. Although it is one of the few languages which has consistently placed amongst the top 10 programming languages (sources: [PYPL](http://pypl.github.io/PYPL.html), [TIOBE](https://www.tiobe.com/tiobe-index/)), many do not consider it as beginner friendly when compared to languages like JavaScript or Python.

I do believe C is worth consideration of a language to learn first, but only if you want to develop applications where C is the ideal choice such as for Embedded Systems. (Fun fact: C was the first programming language I learned).

But C aside, something to think about is if you would like to start out with a language that will take a bit more time to learn compared to a super beginner friendly one. So once you've gone past the hurdle of learning the language considered less beginner friendly, it should make it easier to learn other languages. A factor to consider here is finding a balance between your desire to learn programming and the amount of time and effort you are willing to give.

### Support from dev communities

Community support can also be crucial. If you think you'll become discouraged if it takes you hours to find a solution to a problem you're faced with, then pick a language that has tons of community support and good documentation.

It's also important to think about the open source community's involvement with the language. If you want to work on open source projects with others, then choosing a language that has tons of available open source projects is something to consider. [Github’s yearly report](https://octoverse.github.com/) which contains stats on programming language trends and community contributions is a good place to start.


## Finding a balance

Ideally you want to learn a language that interests you and allows you to reach your coding goals.

You'll also need to consider if the language is beginner friendly. Selecting a programming language with a low entry barrier can be a more important factor to consider if you're not drawn towards a particular technology. In this case, it's a good idea to select a programming language that doesn't make you want to give up when you're just starting out!

If you have no idea where to start, try a beginner friendly general purpose programming language with decent popularity. (If you wanted my personal recommendation I would suggest Python).

No matter your decision, try not to put too much pressure on yourself. If you try a language and discover it's not for you AFTER you've given it a good amount of time and effort, then try another language.

HOWEVER, please do not jump from one language to another frequently because you got 'bored' or it was 'tough'. If this happens, you need to consider if coding is something you want to seriously pursue. If you find yourself in this situation, stop and discipline yourself to stick with one language for some time. You should commit to completing at least one or several projects in the language before moving on and trying another language.


## Conclusion

These factors act as a guideline and should get you thinking of how to go about selecting a first programming language.

It's important to remember that a first language will not forever define the type of developer you are. You may start with embedded C and eventually decide you enjoy doing front-end web development using JavaScript. You may start with Python and end up becoming a pro at writing mobile apps using Java.

As one programming language can't do it all, it's very likely you'll eventually have to become familiar with more than one. Just a heads up not to get too attached to a language!

Any thoughts on this subject? Are you currently in the thinking process and asking yourself what programming language should I learn first? Comments are welcome.

If you're new to coding and want more tips on starting out, also check out:

- [5 Mindsets to avoid when you start coding](https://dev.to/funbeedev/5-mindsets-to-avoid-when-you-start-coding-3o65)
- [5 Ways to help you practice coding](https://dev.to/funbeedev/5-ways-to-help-you-practice-coding-lab)

*This article was originally posted on the [inspirezone tech blog](https://inspirezone.tech/blog). Inspirezone is a brand new community focusing on building development skills through a welcoming online coding collaboration environment. Checkout some of our open source projects on our [Github page](https://github.com/inspirezonetech).*