What Programming Language Should I Learn in 2021?

You’re closer than you think to a career in tech. Our grads have launched rewarding new careers — you can too.

View Our Jobs Report

We need to clarify something before answering the question, “What programming language should I learn?” You shouldn’t learn a language, but languages. Sure, you can learn a single language, but you’ll be missing out on an incredible amount of functionality. JavaScript is one piece of the puzzle that really comes to life when you introduce HTML and CSS to web development. It’s also about what you want to do with that language.

You can eat a cake without layers or frosting, but it’s not quite as special. The same goes for programming languages. Different careers also have their own languages you should learn.

For example, if you want to become a back-end engineer or a front-end developer, you'll learn a few of the same languages and a few entirely different ones. Whether you’re a creative type looking to get technical, or a problem solver looking to find solutions through data, we can find languages, career paths, and courses that are perfect for you.

Women students in front of Anita Borg wall

Fortunately, learning programming languages is extremely accessible, and if you’re thinking that you need a 4-year degree to get started, well, that's no longer the case.

Getting started is easier now than ever. Programming is aptitude-based, and all that a company wants to see is your talent level, skills, attitude, and potential.

There are plenty of different languages with very different purposes, though, and plenty of career paths to pursue. That can make starting a tad confusing, but we won't let that stop us.

So, really, what programming language should you learn?

Below, we compare the best programming languages to learn in 2021 based on average salaries, popularity, job opportunities, demand, difficulty, and your interests. We also will show you how and where to learn them.

So let's start off.

An instructor explaining items to students on a Flatiron School campus

What are programming languages?

Programming languages, to put it simply, are the languages used to write lines of code that make up a software program. These lines of code are digital instructions, commands, and other syntaxes that are translated into digital output. There are 5 main types of programming languages:

  1. Procedural Programming Languages

  2. Functional Programming Languages

  3. Object-Oriented Programming Languages

  4. Scripting Programming Languages

  5. Logic Programming

Each of these programming language types serves different functions and has specific advantages and disadvantages. 

Procedural programming languages

Procedural languages are written as a sequence of instructions. The user declares what to do and also how to do it, and then these instructions are completed in sequential order. Procedural languages are excellent for general purpose programming. Example: Basic, C, Java, Pascal

Functional programming languages

Functional programming is based on mathematical equations and is designed to handle symbolic computation and list processing applications. These languages are especially beneficial when working with big data. Example: Haskell, Scala, SQL, PHP, Go, Rust, Raku

Object-oriented programming languages

These are the most popular forms of programming languages and are based on the concept of “objects,” which can contain data and code in the form of procedures. Many of the programs you use daily are built with these languages because of those languages’ extreme flexibility. They can also be less static and might leave room for more errors. Example: Java, Javascript, Python, C++, R, PHP, Ruby

An example of Python code

An example of Python.

Scripting programming languages

Scripted languages are used to create a special run-time environment that automates the execution of tasks. Scripting is great for cutting out time-consuming tasks and automating workflow, but it can take a lot of time to build and test upfront. Example: PHP, Bash, R, Perl, Ruby

Logic programming

Logic programming is a programming paradigm largely based on logic. Logical programs are written as sets of sentences in logical form, expressing facts and rules about some problem domain. Logical programming provides a lot of flexibility but also contains no method of representing computational concepts. Example: Prolog, XSB, ALF

What are some of the most popular programming languages? And what are they used for?

Language popularity based on pull requests on GitHub by year. JavaScript was the most popular language in 2020, followed by Python, Java, and C/C++.

As you probably know, there are many different programming languages, and what you learn should be based on the type of web development you’re interested in pursuing. You should start with a beginner-friendly language and then move on to high-level languages as you hone your skills and expand your toolkit.

We are going to cover the most popular languages, what they're used for, their pros, cons, job demand, and salary range. 

As a side note: The chart above shows the relative popularity based on how many GitHub pulls are made per year for that language. This chart and all the charts below are based on data from GitHut 2.0, created by littleark.

JavaScript

JavaScript popularity by year according to pull request percentages on GitHub. JavaScript is trending slightly downward, though is the most popular language on GitHub at around 19.5% of pulls.

JavaScript is the most popular language among developers and is the best beginner-friendly language to learn. Many developers today start by learning JavaScript because of its versatility. It’s often used to build websites, web servers, iOs apps, and other mobile apps. JavaScript is a full-stack language, meaning you can use it server-side as well as in front-end web development. This is a great way to get started programming simply for the fact that you can work on any part of a project using this language. 

JavaScript is also very popular because of its simplicity to learn. It's used everywhere on the web because of its speed as it can be run immediately on a client-side browser. JavaScript meshes very well with other languages, meaning you can use it in a wide variety of applications. 

There are very few disadvantages of JavaScript, but no language is perfect. The biggest hurdle with JavaScript is that it's read differently by each browser, making it somewhat difficult to write code that works perfectly across all browser software.

There is no shortage of jobs for a JavaScript developer. According to Career Foundry, 72% of companies are looking to hire JavaScript developers. 

Typical JavaScript roles: Software engineer, front-end developer, full-stack developer // JavaScript developer demand: 124k jobs jobs on ZipRecruiter // JavaScript developer salary: $107k per year on ZipRecruiter. The average salary for entry-level JavaScript devs is closer to $71k.

Python

Pythons popularity by year according to pull request percentages on GitHub. Python is trending even, at around 16% of all GitHub pulls.

Python is another popular general-purpose programming language that’s very beginner-friendly to learn. While easy to pick up, Python is powerful and versatile, making it great for beginners and experts alike. Python is used by major companies like Google and Facebook, which bodes well for the language's future.

Python's immense popularity is due to its wide range of uses. You can use Python for data science, scientific computing, machine learning, analytics, data visualization, animation, interfacing with databases, and web applications. Python’s extreme versatility accounts for its high job demand. Web developers use it, data scientists use it, and so do data analysts and software engineers. 

Typical Python roles: Back-end developer, full-stack developer, data analyst, data scientist // Python developer demand: 191k jobs on ZipRecruiter // Python developer average salary: $112k per year on ZipRecruiter. The average salary for entry-level Python developers is closer to $82k.

Ruby

Ruby's popularity by year according to pull request percentages on GitHub. Ruby is trending downward, and has around 6% of all GitHub pulls.

Ruby is one of the more popular scripting languages used for web development. Ruby has been used for a lot of tech companies like Airbnb, GitHub, and Shopify, making it a practical language to learn. The Ruby community is robust and its members are helpful, so there is lots of free and helpful information available. 

Right now Ruby is especially popular, but one downside to learning Ruby is that its popularity fluctuates. That being said, there is a vast collection of major companies using Ruby, which means jobs won't be disappearing whatsoever any time soon.

The average salary of a Ruby developer is higher than that of many other languages, especially if you're familiar with the Ruby on Rails web application framework. Even entry-level Ruby developers usually earn high salaries, making Ruby a very lucrative language to learn. 

Typical Ruby roles: Software engineer, back-end developer // Ruby developer demand: 6k jobs on ZipRecruiter // Ruby developer salary: $99k per year on ZipRecruiter. Even entry-level salaries are around $98k on ZipRecruiter.

Swift

Swift's popularity by year according to pull request percentages on GitHub. Swift is trending downward, and has around .6% of all GitHub pulls.

Swift is a relatively new programming language, but it's constantly growing in popularity because of its use in iOS and macOS app development. This means if you're using an iPhone or any other Apple product, the apps you're using were most likely built on Swift. 

Swift is an easy language to learn but might not be the best first language to learn because of its very specific uses. That being said, Swift developers are one of the most in-demand and hardest to fill tech jobs. So if you choose to learn Swift first, there will be plenty of job opportunities for you. 

Swift can also be a very profitable language, with salaries increasing greatly in big tech hub cities like San Francisco and New York City.

Typical roles: iOs developer // iOS developer demand: 62k jobs on ZipRecruiter // iOS developer salary: $103k on ZipRecruiter

Java

Java's popularity by year according to pull request percentages on GitHub. Java is trending upward, and has around 12% of all GitHub pulls.

Java is a widely used programming language used mostly in web and application development. It is an older language but Java programmers are still in high demand due to the complexity of the language. It is not the most beginner-friendly language but there are a lot of jobs available for Java programmers. 

Some major companies are using Java on the back end, and companies like Airbnb and Google utilize the language quite a bit. Android apps are also often built in Java, and Java is one of the best languages to use for machine learning. This means that there are a lot of options for Java developers in enterprise systems.

Typical Java roles: Back-end developer, full-stack developer, mobile developer, data analyst, data scientist // Java developer demand: 177k jobs on ZipRecruiter // Java developer salary: $106k per year on ZipRecruiter

C#

C#'s popularity by year according to pull request percentages on GitHub. C# is trending slightly upward, and has around 3.5% of all GitHub pulls.

C# is a general-purpose, object-oriented language built on the foundations of C. C# was designed by Microsoft as part of its .NET framework for building Windows applications. This is a great language to learn with lots of opportunity surrounding it. Microsoft is the leader in enterprise software, meaning that a lot of companies are using the .NET framework. If you can write C#, there are a ton of high-paying jobs out there for you. C# may not be as popular as some other languages, but it could be. You'll find that C# developers have a tremendous level of stability and the ability to work on many different types of applications.

Typical C# roles: Mobile developer // C# developer demand: 41k jobs on ZipRecruiter // C# developer salary: $104k per year on ZipRecruiter

PHP

PHP's popularity by year according to pull request percentages on GitHub. PHP is trending downward, and has around 6% of all GitHub pulls.

While some may tell you that PHP is a dying language, they're not telling you the whole story. PHP is a server-side language that is used to build websites and is a part of almost 80% of websites across the web.

PHP is also used to build desktop applications and build command-line scripts. It's at the forefront for anyone who wants to build websites and isn't a difficult language to learn.  

Because of how many sites worldwide run PHP, there will always be a demand for more developers. PHP is a great first language to learn.

Typical PHP roles: Back-end developer, full-stack developer // PHP developer demand: 22k jobs on ZipRecruiter // PHP developer salary: $101k per year on ZipRecruiter

HTML & CSS

These will more than likely be the first two languages you touch when learning to program. They are easy to learn and are absolutely essential in building websites. HTML is the core structure of a webpage and CSS is the visual layout for the page. These are the foundations and building blocks of any website.

Chances are you have probably written or seen HTML or CSS before. Many emails, advertisements, and blogs use them, and knowing them can be extremely useful in many aspects of business.

While you may not get a job as a developer with these two alone, every programmer needs to be able to write them. Web designers can get away with only using these two languages, though it'd be a slim skillset. HTML and CSS are essential for any junior web developer position.

Typical HTML & CSS roles: Front-end developer // Front-end developer demand: 46k jobs on ZipRecruiter // Front-end developer salary: $95k per year on ZipRecruiter

Go

Go's popularity by year according to pull request percentages on GitHub. Go's is trending upward, and has around 9% of all GitHub pulls.

Go (sometimes called Golang) is an open-source programming language that makes it easy to build simple, reliable, and efficient software. Go is a relatively new language that is growing in popularity due to its simplicity. It is easy to learn and has a modern syntax. 

Go is a low-level language ideal for systems programming — it's compiled and runs close to the metal. Its main uses are for Google applications, large IT companies, and data science.

While it may not be the most popular language at the moment, Go was designed by Google as an alternative to C++ and Java, and job demand for Go programmers will continue to rise with the parent company. This would be a great first language to learn — and training is not hard to come by — and would guarantee some good job security. Being a newer language, you might not need as much experience to get a great job.

Typical roles: Data scientist // Go developer demand: 89k jobs on ZipRecruiter // Go developer salary: $110k per year on ZipRecruiter

Elm

Elm's popularity by year according to pull request percentages on GitHub. Elm is trending downward, and has around .03% of all GitHub pulls.

Elm is a functional programming language that compiles to Javascript. This is a great choice for front-end developers. Due to Elm compiling to Javascript, web browsers can execute it on a web page. 

Elm is domain-specific, meaning it only functions on the client portion of a web application. UI/UX designers love Elm for its multiple libraries — one being Elm/HTML, which allows an Elm programmer to write HTML/CSS within Elm.

This probably won't be your first language and you'll need to know more languages to attract employer attention, but having this skill can greatly increase your chances of being a well sought-after front-end developer.

Typical Elm roles: Front-end developer

C/C++

C and C++'s popularity by year according to pull request percentages on GitHub. C and C++ are trending even, and have around 10% of all GitHub pulls.

C is a great first programming language to learn because it's at the root of many other programming languages. C++ is a modern enhanced version of C and is widely used for computer science and programming. 

The benefit of C/C++ is that they give developers the ability to use compilers for a variety of platforms, which makes applications written in these languages largely transportable. 

Unfortunately, C/C++ is not the easiest language to learn, making the job demand high and competition fierce, though average starting salaries are often high.

Why should you learn this first? Learning C/C++ will make learning most other languages easier and provide you with a much larger skill set than starting with another language. People who know C/C++ will learn other languages easily, whereas knowing another language and trying to learn C/C++, is not as easy of a transition.

Typical C/C++ roles: Mobile developer // C developer demand: 175k jobs on ZipRecruiter // C developer salary: $101k per year on ZipRecruiter

Kotlin

Kotlin's popularity by year according to pull request percentages on GitHub. Kotin is trending downward, and has around .8% of all GitHub pulls.

Kotlin is a general-purpose, free, open-source programming language originally designed by JetBrains for the Java Virtual Machine. This means that Kotlin is interoperable with Java and supports functional programming languages. 

Kotlin is not as popular as Java, but many programmers who use Kotlin are convinced that it’s the superior language. Google would probably agree, seeing that many Google applications are built with Kotlin. Kotlin is also much easier to learn than Java and cuts off 40% of the lines of code you would need to write for the same result in Java. 

Should you learn Kotlin? Yes. This is a newer language, having only been around since 2011. As is often the case with newer languages, there is less competition in the job market. It is also in higher demand because there are less experienced programmers focusing on it. You can also expect a high average salary above industry standard. 

Typical roles: Mobile developer // Kotlin demand: 4k jobs on ZipRecruiter // Kotlin salary: $128k per year on ZipRecruiter

Matlab

Matlab's popularity by year according to pull request percentages on GitHub. Matlab is trending downward, and has around .07% of all GitHub pulls.

Matlab is a language that you probably aren't familiar with, but it can be a lucrative language if you're interested in science and engineering. Matlab is used to create machine learning and deep learning applications. 

Despite the complexity of machine learning and deep learning, Matlab is actually a relatively easy language to learn. Jobs are not as easily available for Matlab programmers, but the ones you can find pay very well.

MathWorks, which developed Matlab, has great resources about the language.

Typical roles: Machine learning engineer // Matlab demand: 5k jobs on ZipRecruiter // Matlab salary: $101k per year on ZipRecruiter

Rust

Rust's popularity by year according to pull request percentages on GitHub. Rust is trending even, and has around .8% of all GitHub pulls.

Rust is a multi-paradigm programming language designed for performance and safety. For these reasons, many major tech companies use Rust.

Rust is ideal for low-level development, much like C++, but it provides a guarantee of memory safety. The demand for Rust programmers has drastically increased over the last few years, and Rust is a very loved language among programmers. 

Unfortunately, there are far less jobs available for Rust developers compared to bigger languages like C++, but the ones you can find are usually far more interesting and cutting edge.

Typical Rust roles: Game development, web development // Rust demand: 2.7k jobs on ZipRecruiter // Rust salary: $92k per year on ZipRecruiter

If I know what job I want already, then what languages should I learn?

If I want to become a software engineer

Languages you’d learn: JavaScript, HTML, Ruby, CSS

Perfect for: Practical types, tinkerers

What you can do: The ever-reliable engineer. It’s the prototypical job in tech, but it’s a pretty vague term. A software engineer can analyze user needs and use code to create software, fix software, or improve software. Some software engineers call themselves developers and vice-versa

Learning the languages of a software engineer will lead to a lot of opportunities in tech. If you look ahead, you can see these coding languages pop up in other disciplines. For example, it’s not uncommon for an experienced software engineer to have acquired the skills to become a data scientist.

If I want to become a front-end developer

Languages you’d learn: JavaScript, HTML, CSS

Perfect for: Creative types, fans of a great user experience, anyone who wants to create a website

What you can do: HTML, JavaScript, and CSS are the front-facing languages of the web. There’s usually some debate about the best languages to learn for a specific career, but everyone agrees on these three for front-end web development. They work in harmony and together create everything you see on the web.

Every website you’ve visited today is the result of a front-end developer. Everything on the web was created by a front-end developer who worked with a designer and a back-end developer to bring it to life. You’re probably pretty creative, but you also like things that work. As a front-end developer, you can make something functional and is pretty.

If I want to become a back-end developer

type: embedded-entry-block id: 4UteRg4fA9PumTUh195aG8

Languages you’d learn: PHP, Java, Ruby, Python, SQL

Perfect for: The well-organized, dependable types

What you can do: Back-end developers are the unsung heroes of the web. Your favorite site doesn’t just look great, it performs well. You can also thank a back-end developer for lightning-fast search results from your favorite online retailer.

Front-end developers are using code to create what a user sees on a site and a back-end developer is making that a reality. Back-end developers use PHP, Java, Python, Ruby, and other server-side languages to pull information from a database into an application that’s then returned to the user through front-end language.

If I want to become a full-stack developer

Languages you’d learn: JavaScript, HTML, CSS, PHP, Java, Ruby, Python, SQL

Perfect for: Anyone who likes seeing the whole picture, working at a startup

What you can do: Looking at all the languages, you can probably guess what this job is all about. As a full-stack developer, you’re working on the front-end and back-end of a website or app. It’s a great job for anyone who likes to do a little bit of everything and for anyone who likes being involved in a project from start to finish.

You won’t be expected to master all the front-end and back-end languages to be a full-stack developer, so don't feel overwhelmed. Full-stack developers are a great fit for startups that have a lot of needs, but not a lot of resources. You can work on how a website or app looks and troubleshoot when something goes wrong.

Learn more about the differences between front-end, back-end, and full-stack development.

If I want to become a mobile developer

Languages you’d learn: C#, Swift, Java, Kotlin, C/C++

Perfect for: App lovers, people who enjoy a stock Android experience

What you can do: Mobile developers create the apps you use daily. They combine the skills you typically see in front-end and back-end developers to create and launch apps. The only difference is you have a choice to make when choosing what language to learn.

If you want to create iOS apps, you’ll need to learn Swift. Android app developers need to learn Java, but Android apps can also be created with C# and C/C++. Kotlin is a newer programming language that has been gaining popularity and many recommend learning Kotlin to stay ahead of the curve.

If I want to become a data scientist

Languages you’d learn: Python, R, SQL, Java

Perfect for: Anyone who seeks a challenge, early adopters, problem solvers, fortune tellers

What you can do: Data scientists need to learn statistical computer languages and data management systems. There are other data science opportunities that use these languages, but are not as technical or don’t require coding experience. A data analyst is a great opportunity for someone who likes to use data to solve problems.

More like, what can’t you do. Data scientists are relatively new to the tech scene but have quickly become the hottest job in America. Data scientists use data to tell powerful stories and provide insights that can be used to solve problems or predict future outcomes. Machine-learning, algorithms, and AI are just a few fields you can get into as a data scientist.

Learn more about becoming a data scientist.

What if I learn the wrong programming language?

There really is not a wrong programming language to learn. As you can tell from above, there is a demand for programmers with knowledge of any language. The beautiful thing about programming is that finding a job is based on aptitude. The fact that you were able to learn one language means that you are capable of learning another. Once you have learned a language it becomes much easier to learn another, and, the more languages you learn, the easier it is to keep learning more. 

Many companies will actually let you pick the language you take your skills and aptitude test in during an interview. This may not even be the primary language they use, but if you can write great code in one language, you can learn to do it in another. This is why there really is no wrong language to learn.

What are the best ways to learn a language?

When it comes to learning to code, there is an endless number of both free and paid methods available online. A simple Google search will pull up countless games, courses, bootcamps, and degree programs that will teach you how to program in the language of your choice. 

What is my next step?

Starting with free resources online is the best way to see if you're passionate about coding. This will give you an idea if programming is right for you, and let you dabble with different languages to decide what you want to focus on. 

Your next step is to start. Get on your favorite search engine and start learning as much free information about programming as you can. 

Our favorite free introductory courses are:

We cannot emphasize enough how important it is to understand if you have a passion for coding, and if you do, to understand what path you want to take. Programming touches everything from the font of this article to understanding deep trends in markets to predicting the course and spread of a pandemic. 

Once you've done your research, if you decide you want to pursue a career as a programmer, figure out which coding bootcamp or university program best aligns with your learning style, goals, price point, timeline, and more. Flatiron School specializes in software engineering, data science, cyber security analytics, and cyber security engineering (learn more about the difference between the two cyber courses) — all geared toward helping you change your career. These courses also have extensive Career Services support.

Our flagship courses are also offered entirely online, and teach the same curriculum as our in-person courses.

If you're thinking about a new career but are wondering how to fund your bootcamp, read more about your options for paying for a coding bootcamp, or visit out Tuition page.

If you're curious what languages you need to know for cyber security, read our "Best Programming Languages for Cyber Security in 2021."

The only way to make your change is to begin. Just like Ed below, all it takes is passion and dedication to change your future forever. Don't be scared.

Sources: All programming popularity charts are based on data from GitHut 2.0, created by littleark.

Headshot of Nicholas Gallinelli

Nicholas Gallinelli

Content Marketing Manager

Read More Career Advice Articles

Since we opened our doors in 2012, thousands of students have joined Flatiron School to launch new careers in tech.

Explore our Courses

Find the perfect course for you across our in-person and online programs designed to power your career change.

Explore Our Courses
Join a Community

Connect with students and staff at meetups, lectures, and demos – on campus and online.

Join the Community
Schedule a Chat

Have a question about our programs? Our admissions team is here to help.

Schedule a Chat