What programming language should I learn first?

Last updated: 20th May 2017

6 min read

Picking a programming language is one of the first things you have to decide when you want to learn how to write code. In this article, I aim to help make this decision easier and give you all the information you needed to answer the question "What programming language should I learn first?".

Getting Started

Which programming language you decide to learn first will depend largely on what you want to do. Do you want to build iOS apps? Or maybe you would rather build web applications that run in the browser? You might even decide that you want to write code for the IOT, so you can chat with your fridge over instant messenger.

The other thing to consider when picking a language is what job market is like. You wouldn't want to spend months of your time learning Flash only to realise its in decline and there are next to no jobs available.

With a little bit of research, you can narrow down your options and ensure that you invest your time wisely.

Programming Fundamentals

The internet is filled with detailed overviews of every programming language you can think of - The good things, the bad things, things you don't understand and reasons why you should and should use that particular language. So why is it so difficult to pick your first language?

The truth is that most modern languages are very similar. Yes, they might have different syntax, they might even have different features, but under the surface, they all have similar concepts. They include:

  1. Some way of iterating over data (Loops)
  2. Grouping chunk of related code (Classes)
  3. A method for storing reusable code (Functions)
  4. A way to store data (Variables)

Obviously, each language will handle these concepts in different ways, but almost every language has at least one or more of these features.

The first language you learn is going to be the hardest because you are being introduced to so many new things. You have to learn the language itself along with all of its syntax, but arguably, thats the easy part. Learning the fundamentals of programming is the tricky part.

Once you understand how a computer reads and interoperates code and how to solve problems in a programmatic way, learning up another language is trivial.

So what programming language should you learn first?

Now that we've discussed that the language is only a small part of learning to code, we really should pick a language.

A safe bet is to pick a language that has an active community and a large user base. If you stick to one of the well-known languages, its much easer to get help and find user documentation.

Below is a simplified description of each of the main languages as well as what they are most commonly used for.


HTML and CSS are used to build web pages. HTML provides the structure and CSS handles the style. While they are not technically programming languages, they are a very popular choice for first-time languages. They are the "Front End" of a website and are a good choice if you want to pursue a career of building web applications websites.


JavaScript is also a popular choice and is often learned in conjunction with HTML & CSS. It is the only programming language that runs in a web browser. JavaScript adds interactivity to a web page. It can be used to hide or show elements on a page. In the past 5 years, with the birth of Node.js, JavaScript has become a popular choice for server-side processing too.

JavaScript has the concept of asynchronous programming which can be quite challenging for beginners.


Ruby is a language designed with developer happiness in mind. It has clean succinct syntax and is a lot of fun to use. Ruby is a general purpose language and can be used for anything from building web servers to crunching data.

It would be wrong to mention Ruby without also mentioning Ruby on Rails (or Rails for short). Rails is a framework for Ruby for building web applications.


Python is another general purpose language and is used extensively by YouTube. Python is whitespace dependant, meaning that your code has to follow certain rules on indention etc. Some people like it, other don't. Python is a great language for beginners because of it's easy to understand syntax.


PHP is a language created for the web. It was created in 1995 and was originally called Personal Home Page. Approximately 70% of the web is powered by PHP. Its an easy language to get up and running and has great documentation.

WordPress, the popular Content Management System is built using PHP. Many programmers start with PHP and move on after a few years.


Swift if a programming language created by Apple. If you want to build apps that run on Apple devices, Swift is the way to go. It is the successor to Objective C and has great documentation. Apple recently open-sourced the language, meaning anyone can offer improvements and bug fixes.


Java is a language used in a lot of large, enterprise applications. It is also used to build Android applications. Java is a compiled language, meaning it is converted to machine code before being interpreted by the computer. This makes it very fast indeed.


C# is a general-purpose, object-oriented programming language. It was built by Microsoft and is designed to run in a .NET environment. It is a great option if you want to build apps for a Windows PC.

In Conclusion

The truth is it really doesn't matter what language you decide to learn first. The reality is that you will likely learn several programming languages throughout your career. The most import thing you will learn from your first language is the fundamentals of programming and how to think like a developer. Once you have developed these skills, you'll be able to pick up other languages fairly quickly.

Pick any language and focus on it until you become comfortable with general programming concepts. Only then should you consider learning another language.

Subscribe to my newsletter

I'll email you about tech, what I'm working on, and other interesting things I find around the web. I'll never spam you and I won't share your email with anyone else.