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.
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.)
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.)
Summary
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
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.
5 keys to successful organizational design
How do you create an organization that is nimble, flexible and takes a fresh view of team structure? These are the keys to creating and maintaining a successful business that will last the test of time.
Read more8 ways to stand out in your stand-up meetings
Whether you call them stand-ups, scrums, or morning circles, here's some secrets to standing out and helping everyone get the most out of them.
Read moreTechnology in 2025: Prepare your workforce
The key to surviving this new industrial revolution is leading it. That requires two key elements of agile businesses: awareness of disruptive technology and a plan to develop talent that can make the most of it.
Read more