Blog articles

How to choose the right programming language

By Code School    |    May 24, 2017

One of the most crippling choices new developers (and even existing ones) face is deciding what programming language to work in, which frameworks to use and which tech stack to learn. When you realize there are literally hundreds of languages to choose from, and all have their own pros and cons, it can be difficult to decide what to learn.

Let’s keep it simple and consider the following factors:

  • What job opportunities are available?
  • Are the other devs using the language satisfied with it?

Job opportunities

If you look into programming language popularity, you’ll see a pretty wide range of languages depending on where you look. But one thing they almost all have in common is that C# and Java are typically in the top five.


Taking it a step further—when we look at languages that show up in the top five for job opportunities, we see Java and C# take first and second place. (SQL comes in last.) Now, this isn’t a flawless system, but it does give us a good idea where these languages stand. 

Job opportunities by programming language.


Overall satisfaction

It’s one thing to be able to find work with a language—it’s another to actually enjoy working with one. So, how do these languages stack up? Stack Overflow’s 2017 survey included a scale of developers’ most loved and most dreaded languages, where “loved” meant developers work with a language and want to continue doing so, and “dreaded” meant people work with a language and don’t want to keep using it.

Comparing the languages devs least enjoyed with the top five for working opportunities, C, C++, Java, JavaScript, and PHP were in the top 20 most dreaded languages. C# and Python didn’t make the top 20 at all.

When we look at the most loved languages that are also commonly seen in the top five for working opportunities, C# and Python are among the most loved, while the other top five languages only made it into the top 20. (These were entered as percents so we could subtract dreaded from loved to get a weighted score.)

Job happiness by programming language.


This strongly implies that C# and Python developers are generally happier with their language than developers of other commonly used languages. Happiness with the work you do is crucial if you want to love (and keep loving) what you do. (Note: Even though 0 was entered in as Python and C#’s “dreaded” since it wasn’t in the top 20, since they must be lower than 40.2, in the end it won't significantly impact rankings.)


So let’s create a weighted scale. The weighted scale will use two data points, where they rank for job opportunities based on all data researched for this post and their overall loved vs. dreaded ranks based on Stack Overflow’s 2017 survey data.

The final results:

1. C#

2. JavaScript / Python

3. Java

4. C++

5. SQL

6. PHP

Rankings of programming languages.

C# took first place as it came in second in both opportunities and happiness.

JavaScript ranked third in both opportunities and happiness. This gave it a tie with Python, which came in fifth for opportunities but first in happiness. If you're interested in a deeper dive into Python, though, check out our guide to learning Python.

Java took first for opportunities but sixth for happiness, which is what hurt its overall ranking.

C++ took middle of the road in both opportunities and happiness.

SQL took middle of the road in happiness, but last place in opportunities.

PHP came in last with scores relatively low in both opportunities and happiness.

Now, before the angry mob breaks out the pitchforks and torches, remember that happiness is a subjective measurement that varies wildly depending on source and timing. All in all, any of the above languages were in the top five for opportunities, so you can find work regardless of your choice. Plus, by its nature, this list excluded many potentially good languages from consideration.

In the end, based on what we have, C# looks like an excellent candidate for a language, offering both opportunity as well as enjoyable to work with. Why not learn some C# in our new interactive Try C# and Keeping It Classy With C# courses and see what you think? Or if you need a little more time, check out our post on the advantages of C#.

After you start learning the programming language of your choice you'll want to take the next steps in becoming a software developer.

About the author

Code School is an on-demand learning destination for existing and aspiring developers. Each course is built around a creative theme and storyline so it feels like you’re playing a game, not sitting in a classroom. With software development courses that cover HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git, databases and more, Code School pairs experienced instructors with entertaining, high-quality content inspired by a community and network of members.