What software technologies will earn you the highest pay?

Dec 11, 2019 - 14 min read
Fahim ul Haq
editor-page-cover

Whether you’re a seasoned pro or just getting started, as a developer it’s important that you stay on the lookout for opportunities to learn new languages, frameworks, and tools. This is crucial if you want to stay relevant and competitive in today’s job market, as well as increase financial reward.

In this post, I’ll take a look at some of the most in-demand technologies and what effect learning them can have on your salary. I know that salary isn’t necessarily the most important factor when you begin your journey as a professional developer, but it is definitely a key part of the equation, and serves as a good barometer for how much employers are valuing particular skills. You can use this information as a guide to help you figure out what is trending; you may just find something new to learn that you can use in your career.

Today, we’ll go over:


Methodology

The salary data in this post is based around developers who have 0-2 years of experience and work in a small to medium enterprise (i.e. 101-500 employees), using data from salary aggregator websites. The geography for all data was controlled for the Seattle, Washington area.

The trends here hold up quite well across the industry, but should be taken as general indications to help guide your decision-making, not precise projections of your own future salary.

Salaries will vary depending on the industry, geography, company size, your own level of experience, proficiency at interviewing, negotiation skills, and a number of other factors.


What programming language should I learn first?

This is definitely debatable, but there are a few staple languages that beginning developers should look into: Python, Java, C++, and JavaScript. These are great first languages to learn for a few reasons:

  • There’s no shortage of jobs for developers who know these languages, nor is there likely to be any time soon.
  • They’re relatively straightforward to learn (some more than others - I will get into this shortly).
  • They teach you how to think like a developer and will help you build a solid foundation in programming logic and syntax.
  • There are countless resources available to learn them.

One question you should ask yourself before deciding is, “What aspect of programming do I want to get into?”. Are you interested in frontend development, backend, or both (i.e. fullstack)? This will help guide you when selecting your first language.

That said, the chart below displays the average salary for a developer who specializes in one of the above mentioned languages.

widget

Python

Developers who specialize in Python are rewarded with the most generous compensation, with an average salary coming in around $95,706. Python in its various applications is growing rapidly, from game/web development to data science and machine learning, hence the high demand for Python developers.

Python serves just about any use case; it’s flexible, powerful, and yet simple to learn. It’s a high-level language that makes code easily readable, while bypassing a lot of the confusing syntax.

Regardless of what you want to get into, Python will be a very valuable skill to have in your stack, and will be useful in just about any career.

To get started learning Python, check out Educative’s free course Learn Python from Scratch.


Java

Java is routinely among the most sought after languages by employers for its simplicity and wide range of use cases. Developers who specialize in Java aren’t likely to have a problem finding decent pay, with an average salary of $88,483.

While Java has historically been seen as the most desired skill by a lot of companies, Python is surpassing it because of the breadth of use cases it serves. Compared to Python, Java has a little more of a learning curve, but it’s still regarded as one of the more simple languages to learn.

Java developers enjoy a range of specializations - Java software runs on everything from phones to game consoles to data centers. It’s an exciting time to be a Java developer as the language is continually evolving, giving you the opportunity to be on the cutting-edge of new technology.

If you’re serious about becoming a professional developer, it won’t hurt to have some Java experience in your back pocket.

To get started learning Java, check out Educative’s free course Learn Java from Scratch.


C++

If you want a challenge that will set you apart from other developers, learn C++. To start out, C++ developers see an average salary around $88,190, but don’t expect to stay there for long. Why? C++ is experiencing a “second life” due to its applications in areas like self-driving cars and IoT.

Additionally, C++ is a fairly difficult language to master, and as more and more developers lean towards other multi-purpose languages, the need for capable C++ developers will only grow. If you stick with it, the rewards can be high.

As alluded to, C++ has a steep learning curve, but learning it will make you a better developer as you’ll start to understand how computers, compilers, and languages work, and ultimately how your program affects the system. C++ is close to the metal, just a few steps away from assembly code, and will give you a greater understanding of the building blocks of programming.

If you really want to understand programming at its core, then C++ is a great language to start.

To get started learning C++, check out Educative’s free course Learn C++ from Scratch.


JavaScript

If you’re serious about frontend or full stack development, then JavaScript is a must-know language. When starting out, the average salary you can expect is around $87,903.

What’s great about JS is that it’s an easy language to get started with and companies like Facebook are creating useful libraries and frameworks (e.g. React) to make developing in JS even easier and faster.

Where you can really set yourself apart is by adding a framework or library to your JavaScript skills, which will be discussed later in this post.

It’s a great time to be a JavaScript developer as there are many advancements being made to make the language even more versatile and robust.

To get started learning JavaScript, check out Educative’s free course, Web Development from Scratch.


What programming language should I learn next?

Once you’ve selected frontend or backend as your domain of choice, and you’ve gained a solid foundation of programming principles in your first language, it may be time to explore what else is out there. The chart below displays the average salary for a developers by programming language.

widget

When you start choosing a second language to learn, it’s good practice to find one that challenges your existing thought process. For example, if you’ve been working with functional programming principles, try a language that uses object-oriented principles and vice versa. Doing this can help broaden your skill-set and give you the ability to easily plug in to different teams. This is particularly important for early-career developers who are still finding out exactly where they’d like to focus.

It’s important to keep in mind that certain programming languages are better suited to solving particular types of problems, so you should take into account each language’s use cases, advantages, and disadvantages.

With that in mind, based on the four languages mentioned in the first section (Python, Java, C++, JavaScript) here are a few others that are worth looking into.

  • For Java developers, a great language that will challenge you is Scala. Scala was designed to be a better Java, where it molds functional and object-oriented programming into one concise package, giving you the freedom to work in a variety of styles.

  • For Python developers, you may want to check out C++. C++ is a great language to learn at any point in your career because you’ll start to really understand how programming and computers work, unlike high-level languages (i.e. Python) which hide many essential operations from you.

  • For C++ developers, you should look into either Rust or Go. One common pitfall of C++ is the way it deals with memory management and concurrency. Languages like Rust and Go use a different memory management model that makes creating safe, concurrent programs much easier.

Why are the average salaries so high for Scala and Go? With major improvements to Scala, companies are taking notice and are quickly adopting the language to build out scalable programs based on required needs. Scala is also typically used in an enterprise setting which is also why the average starting salary is so high.

As for Go, it’s a relatively new language with some awesome functionality, and fewer developers proficient in it. It’s in high demand, especially for enterprises. It’s well suited for modern development and programs that make use of microservice architecture. The need for Go developers is quickly rising and that’s part of the reason why you see them making so much money.

For JavaScript developers, you should learn HTML and CSS, but you should also invest some time in learning some of the libraries and frameworks available to you (React.js, Angular.js, Node.js, or Vue.js).

Whichever language you choose to learn next, be cognizant of your career path. For example, it wouldn’t necessarily be a useful pivot for C++ developers to learn something like HTML (although if you have the time, it never hurts) because they serve very different purposes.


Frontend Devs: What should I learn after JavaScript? Explore these frameworks and libraries

JS wouldn’t be what it is today without its many frameworks and libraries. The chart below displays the average salary for a developer who specializes in one of the mentioned technologies. In this case, we are comparing developers who know only JS and what happens when they add one of these frameworks or libraries to their skillset.

widget

StackOverflow’s 2019 Developer Survey shows that JQuery, React.js, and Angular.js are the most popular libraries and frameworks. They’re widely used in professional development, and while they do share some similarities, they’re different at the core and are often used to solve different problems. JQuery may be the most popular among the developer community, but it is becoming a lot less relevant in terms of modern frontend development.

What’s interesting to note is the salary “decrease” shown by the data when you add JQuery as a skill. While it’s unlikely to actually decrease your salary, this does speak to the fact that companies are not expressing a great deal of interest in JQuery - at least not the companies that are paying large salaries.

If you’re interested in fullstack development, then you’ll want to invest some time in the very popular JavaScript runtime environment, Node.js. While the mentioned libraries andframeworks above are used for the client side, Node.js is used on the server side. Node.js combined with one of the frameworks mentioned above are exactly what you need to get started building both the frontend and backend of a web application.

In the end, you should choose the framework or library that you’re most comfortable with and one that satisfies the problem you need to solve.

If you know JS, it’s in your best interest to divvy up some time to learn these technologies. It will help you grow in your career, become a better developer, and it will almost certainly boost your salary.


Growing your skillset

There are a whole lot of libraries, frameworks, and tools out there. Not every tool is for every developer, so invest your time wisely.

Here are a few very prominent technologies that you can look into and what impact each one might have on your salary. In this case we are comparing our base developer with a developer who knows one of the following skills.

widget

What’s interesting to note is the “decrease” in salary when you add Ansible and .NET as skills. While there probably won’t be an actual salary decrease for you, it may speak to the fact that these technologies are not sought after by the kinds of companies that are paying large salaries.

Kubernetes and Docker have taken the world by storm, and the need for developers who know these tools likely to continue to grow considerably. If you want to learn a new tool, it definitely wouldn’t be a bad investment of your time to start with these technologies.

If you’re a Python developer and have any interest in machine learning, then you’ll want to check out TensorFlow and Pandas.


Finding a database management system that works for you

There are a lot of databases that you can choose from; some are SQL-based while others are NoSQL-based. It’s not uncommon to find both being used together, so it’s suggested that you spend some time learning both. However, NoSQL databases like Redis and MongoDB are the preferred DBMS of developers.

If you need to focus in one direction, you’ll want to first decide how you want to actually organize your data. Do you want it to be relation (i.e. SQL) or non-relational (i.e. NoSQL)? From there, it’s best to understand the advantages and disadvantages of each DBMS. For example, many developers prefer working with MongoDB because of its JSON-like document storing method.

widget

While MongoDB seems to be the most popular DBMS, we can also see a real demand for developers specializing in Redis.

If you’re uncertain of which database to choose, check out this diagram for a quick overview of SQL and NoSQL databases.

widget

Developing in the cloud

Working with the cloud is now table stakes for the modern developer. Over the course of your career, you’ll need to be comfortable with building and deploying software on one, if not multiple, cloud platforms. If we take our base developer and add a cloud platform, the numbers show that AWS is currently in slightly higher demand.

widget

What about Google Cloud Platform (GCP)? I excluded it from the report here because data was a bit too limited to make meaningful conclusions on, which may indicate where you should spend your time (i.e. AWS and Azure).


Mobile OS: Android and iOS

Do you want to develop apps for Android or iOS? For Android, the most common language to build apps is Java, and for iOS it’s Objective-C. While the breakdown below shows that iOS developers typically earn a little more, Android is quickly becoming the preferred OS for developers to work with.

widget

StackOverflow’s 2019 Developer Survey points out that Android is the most used mobile OS.


Conclusion

It’s worth reiterating here that salary is not the most important thing for developers, and should almost always be a secondary consideration to your own personal interests and aspirations. However, if you’re going to invest time learning something, it’s useful to know what kind of return you can expect on that investment.

And even if you’re not planning to pick up new skills just yet, no matter where you are in your programming journey, it’s always a good idea to poke around and discover what technologies are trending in what direction.


What to learn next?

Learning a new technology can feel overwhelming. Educative exists to make the process simpler. No matter where you are in your career as a developer, Educative’s courses will help you level up on in-demand technologies and get a leg up in the industry. Courses cover a broad range of topics, including most of the technologies mentioned here, as well as other interesting and in-demand skills like Machine Learning, Data Science, and System Design.

With text-based courses featuring in-browser coding environments, you can learn at your own pace, avoid the hassle of starting/stopping videos, and skip the process of setting up your developer environment. Get started today, and take your coding skills to the next level.


WRITTEN BYFahim ul Haq

Join a community of 500,000 monthly readers. A free, bi-monthly email with a roundup of Educative's top articles and coding tips.