DEV Community

Cover image for What software technologies will earn you the highest pay?

What software technologies will earn you the highest pay?

Fahim ul Haq on October 14, 2019

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 la...
Collapse
 
eonuk profile image
eonuk

Id caution that looking at the language is not the complete picture. It is important to note the domain of the language too. For instance, many jobs that advertise Python say things like Machine Learning using Python, or Computer Vision using Python. Its not just the language that is important bu the associated skills too.

Collapse
 
scott_yeatts profile image
Scott Yeatts

Another good aspect to this is the supply/demand channel.

Oversimplified illustrative example with zero correlation to the real world population:

If there are

50 Python jobs,
500 Java Jobs and
1000 JavaScript (node) jobs,

but there are

20 Python engineers,
1000 Java engineers and
2000 JavaScript engineers,but only 10% of those are fluent in node as a backend language,

then the salaries will be based on the competition for engineers, not necessarily the language...

This is great base information, but definitely know your market too!

Collapse
 
nicolewilbur4 profile image
Nicole Wilbur

Got any hints for real world for someone starting to explore options?

Thread Thread
 
scott_yeatts profile image
Scott Yeatts

Nothing data-based, but here are a few stereotypes and hasty generalizations with a few facts mixed-in.

All of this is very much based on my personal experience and just reading around, so YMMV.

You'll find a lot of lists of "most popular languages". They all have major flaws in their methodologies. TIOBE is based on searches, Github is based on lines of code in the Github DB, and Stack Overflow is based on questions/answers on Stack Overflow.

Pick a specialization (Typically Front-end, Back-end) to stick with for a while. Front-end tends to be easy to initially get in, but impossible to master/keep-up with the shifting landscape, and at higher levels you'll be dealing with the exact same algorithmic problems as the back-end, only from a different direction, often while the back-end folks think your job is "easy" (which is not true at all... but the bias persists)

Back-end isn't exactly the opposite, but you'll be hit with a lot more jargon and more complicated frameworks right away, so it's a little slower to get into. That said, the back-end difficulty tends to spike really quickly and once you get over the hill, back-end tech like Java or Python move at a lot slower (IE: Stable) pace than Front-end land, so mastery is faster than on the Front-end, but pickup is slower.

Specialization can drive the choice of language. In-general, you should be looking at JavaScript, Python or Java as a beginner (Pick ONE, not all haha). Ignore the rest for now.

JavaScript should be for a front-end specialization. It can be used (and I've done it and it's GREAT) for back-ends but don't focus on that as a beginner. You'll also need to choose a framework to further specialize in, but dive into JavaScript and THEN pickup the framework. You'll need HTML and CSS as a front-ender, and many times you may be on a team with four back-end engineers as the only front-end person on the team. In 2019 that's a TERRIBLE practice/ratio, but organizational structures never keep up with tech, and 10-15 years ago that made sense, and the structure persists in a LOT of teams.

Python has a similar "feel" to JavaScript on the back-end (and is my favorite pure back-end language), but the jobs available are more limited than Java, and it is being used commonly in machine-learning and Data-Science a LOT. So fewer jobs, the jobs that exist are highly specialized and might required advanced understanding of very specific tech AND a lot of code bases may have been initially written by a data scientist, not a software engineer. I highly recommend it, but go in with eyes wide open on its limitations in the marketplace right now, and don't take the above as a caution against it, just a signpost.

Java is an older technology, but it's been one of the most commonly used languages in the world for over 20 years. There is a LOT of code written in Java, so jobs will be easier to come by. It's starting to trend downward in popularity over the last few years, but by trend downward I mean "still normally number one, sometimes drops to number 2" instead of number one by a ridiculous margin like it was 10 years ago. That said, it's got some trickier syntax, working with common web tech (like JSON) is going to be more difficult than it needs to be, the documentation online is bountiful, but sometimes of dubious quality and it's highly geared towards Object-Oriented Programming. When looking at a career that might span the next 30 years I wouldn't recommend it as a first language for a brand new programmer... but I wouldn't tell anyone they're wrong if they chose it either, as it will be a lot easier to find Java jobs and there will be code that needs to be maintained for decades.

Honorable mention to PHP. But don't learn PHP as a first language in 2019 haha.

Sorry if that's too much all at once. It's highly opinionated and there are no "rules" to it, so I reiterate: Your mileage may vary.

Thread Thread
 
nicolewilbur4 profile image
Nicole Wilbur

Thank you so much. I appreciate the feedback. I started with a programming for data science course, completed it, and realized that that was NOT the way to go. So, I've been adrift trying to figure out in which direction to head. You're the second person who has suggested front-end web development as the path of least resistance initially. I do not forsee wanting to do front-end for years (as I am imagining a lot of it involves liaisoning with the end customer), but I do need a job sooner rather than later.

Collapse
 
pavelloz profile image
Paweł Kowalski

On average me and guy next door have 2 kids, even though i dont have any.

It is very flawed metric ;-)

Collapse
 
thejoezack profile image
Joe Zack

Do you have preferred metrics to share? People have criticized things like the StackOverflow survey and State of JS results for bias but I'll gladly take several flawed metrics into consideration over no metrics. (And I hope that constructive criticisms will help make things better in the future)

Collapse
 
pavelloz profile image
Paweł Kowalski

If you want simple, median is equally easy to calculate but more useful.

And more advanced version of that, percentiles so that reader can try to assess his/her own ability to be average (median, p50), below average, or maybe super high on the scale like p95.

After all, people interested in their fields, educating themselves constantly (by reading dev.to, blogs, twitter, etc.), are usually far above average when it comes to skill/experience/being up to date.

Thread Thread
 
someguycoding profile image
SomeGuyCoding

👏

I am glad that I was not the only one that thought all of these salaries seemed extremely low. I completely agree with what you said and believe that people who are passionate about what they do will be paid far more than people who simply show up for a paycheck, as they are more likely to do a better job and become technical badasses.

Thread Thread
 
pavelloz profile image
Paweł Kowalski

Being from poorer part of Europe, for me they are high.

But specific numbers aside, we agree :)

Collapse
 
rhamedy profile image
Rafiullah Hamedy • Edited

Thank you for writing about this. In my opinion, in addition to the breath of your skill-set, an in-depth knowledge of one or more languages is equally important. For example, problem-solving skills, design patterns, system architecture, data structures, algorithms, and years of experience as a developer also play an important role in your job and compensation.

For new developer and student, this might seem a lot to learn, however as Fahim pointed out at the beginning

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.

There is always something new to learn, however, if you build a strong programming foundation then learning a new language or framework would be a mere change of syntax and terminology.

Lastly, do not forget to check out the Stack Overflow Developer Survey 2019 for a list of loved/wanted languages and frameworks.

Since there is no mention of Kotlin, it's worth mentioning that it is getting a lot of traction lately as shown in the survey as well as Google announcing it's their preferred language for Android development and adoption by other major jvm-based frameworks such as Spring.

Collapse
 
thejoezack profile image
Joe Zack

Thumbs up for Kotlin!

Collapse
 
bradwellsb profile image
Bradley Wells

I'm curious- C# and. NET devs, what are your thoughts about this data?

Collapse
 
erikwhiting88 profile image
Erik

remember, the post is localized to Seattle. I can tell you with certainty that C# and .NET are high paying skills in the energy industry.

I live in Houston where oil is the main industry and the Microsoft stack dominates the job market. my first dev job was writing C# and the salary was on par with the ones listed here

Collapse
 
evieskinner18 profile image
Evie

There are a lot of v. highly paid C#.Net jobs in the finance industry aswell!

Collapse
 
wesleywaffles profile image
Wes

This is that whole “know your market” thing. In Charlotte, heavy banking, energy, and healthcare industries, senior .NET dev base salaries are hovering around $110k - $120k.

Collapse
 
patricktingen profile image
Patrick Tingen

My thoughts as well. I am in the process of switching to C#, but salary-wise, this appears to be a bad decision. At least, according to this post.

Collapse
 
johnphamous profile image
John Pham

Microsoft primarily uses C# internally. There's also hundreds of sales people trying to get other companies onto the same stack.

Collapse
 
eljayadobe profile image
Eljay-Adobe

If trying to optimize for highest pay, the best route is to found your own business. If that fails, found another business. Keep doing that until you have a successful business.

Being an entrepreneur has more earning potential than working for someone else, regardless of the language.

Collapse
 
jamesd profile image
James David • Edited

A programming career should be about doing something you love. Building quality applications should be your passion. You don't choose it because the salary looks good!

There's many jobs in the world paying high salaries that will kill you.

The highest paid people in programming are those with a real passion and talent for it, regardless of language.

Collapse
 
zan_toka profile image
Zandra Kubota

Career-changer devs often get into programming specifically for earning more money. The "follow your passion" -type advice is for 1990's HS guidance counselors only, in my humble opinion.
Also thinking strategically and long-term: with all the bootcamps, international outsourcing, and no-code/low-code tools rising, these salaries are only going to decrease as the pool of workers increases. Choosing the more rarefied stacks now is a bulwark

Collapse
 
jamesd profile image
James David

Well I'd say you're making a mistake if you think "follow your passion" is for the 1990's. Your "passion" is what you want to do, whether that's programming, earning money or sky diving. If you're not doing what you want to do then you're not going to be happy.

If your passion is "earning more money", then dedicating years of your life to programming isn't a wise choice. You'll spend your time sitting down, looking at a screen and learning a very deep subject you don't care about. Slowly developing back issues while turning into a nerdy coffee addict who groans at the distant sound of a question.

A realistic salary of a senior dev is $150K, maybe up to $200k if you're particularly good. This is a huge a failure for someone whose goal is to become wealthy.

As for no-code/low-code tools and decreasing salaries. Who do you think builds and maintains these tools? That's right, people who are actually good passionate developers.

While the median programming salaries are decreasing, the higher paying jobs increase gradually. This is because the demand for lead/senior developers and architects is through the roof.

Thread Thread
 
zan_toka profile image
Zandra Kubota • Edited

I said earning more money, not having a goal of being wealthy. Increasing your earnings and getting rich are certainly two different end goals. I don't think you mean to imply that simply desiring to increase one's income means that one has a passion for earning money or wants to become wealthy, do you?
Sometimes you need to find the most efficient way to pay the bills for your family. Not everyone who drives a truck, screens your lab samples, designs the print on your bedsheets, or fixes your car is necessarily passionate about those fields. Same for development -- some folks are getting into it because they need better jobs, and there is absolutely nothing wrong with that.
The "follow your passion" advice wasn't so rampant in previous eras in the US, such as the postwar and Depression eras, because many people didn't have the luxury to explore what they WANTED to do; they sucked it up and did what they HAD to do. Today with inflation and wage stagnation, many people can't afford to follow their passions (it's just more hidden today because everyone is in debt or two paychecks away from disaster). I enjoy coding and have moments of flow, dream about my code, etc, but I'm not passionate about programming as a pursuit. A person can be passionate about programming and create awesome code, but be a terrible communicator, lack empathy, or disregard the client's wishes. Have they still created a good product?
Saying not everyone has to be passionate about their job in order to produce great work != my "passion is earning more money". I just happen to have a passion for paying rent, traveling to visit relatives, having health insurance, etc., which are things most devs can enjoy.

Collapse
 
theweeappshop profile image
Tony Ross • Edited

Great article, thanks for this. I have to disagree that Java and C++ are good starting points for beginner programmers; if I had to start all over again, they would BOTH put me off programming for good! :)

I think it's important to say that it's not the highest salaries which should necessarily be sought; it's more about the longevity of a particular language or framework which will provide pay for a long time. Just because the likes of Angular aren't earning as much as they originally did, it doesn't mean they're not important players and great frameworks.

Anyway, blabbed on enough; teaching my Granny how to suck eggs and all that.

Collapse
 
shaijut profile image
Shaiju T • Edited

😄, I used to have questions like which language is better ? After discussing with my friends and listening to people online, I realized that Its better to stop asking these questions. Instead start asking which tool is better for current Job and Trend.

Choose the right tool for the Job.

  • Based on your experience, you can use C# or Java for building enterprise and large applications.
  • Instead JSF you can think of using Anuglar orReactorVueetc. for Front End.
  • Python for Machine Learning.
  • Go for Micro Services based performant applications.

In future maybe today's Languages and Framework may be outdated, so to survive you will be forced to learn new language of that time.

Conclusion:

  • Developer Happiness, stick to the language which make your life easier, like easy to read syntax, maintainable, has Good IDE. I like C# for current work, and its up-to you to decide what you like.

  • Its always good to be Open to learn any language as required and Choose the right tool for the Job.

Hope this helps.

Collapse
 
marotheog profile image
Patrick

Interesting read,
I decide last month to begin my journey into java. I have never coded a day in life, i just graduate elect elect education and it has been my long time passion to be a Java programmer. Am excited that i has started, experiencing challenges but i refuse to be drained. Will definitely check out the recommended course on Educative

Collapse
 
naveens16 profile image
Naveen.S

Hey Fahim you laid out a nice post here and you missed out on two things which are really in the trend and they having a great future ahead in GraphQL and Serverless. Really I want developers should focus on this two technologies as well. I'm totally into JavaScript ecosystem.

Collapse
 
rafiq74 profile image
rafiq74

Seriously, no PHP mentioned anywhere in this writing?

Collapse
 
zan_toka profile image
Zandra Kubota

Wow, you're right

Collapse
 
w9jds profile image
Jeremy Shore

I kind of want to point out that deciding what you learn and work with should never be about making the most amount of money. I understand taking it into consideration sure, but I think that enjoying what you work with, and using the technology that makes the most sense for the job at hand is extremely important.

I also want to say like others, this also changes based on the fields you are working in as well as the area you live in.

Collapse
 
zan_toka profile image
Zandra Kubota • Edited

The author already made that caveat in the article. So you might want to use another phrase besides "point out", such as "reiterate". 😅 Also, be wary of using the word "never" -- at different stages of your career/life, money does become the deciding factor in what to learn next (sacrifice your passion because you have to feed your kids, for example).

Collapse
 
iuriimednikov profile image
Yuri Mednikov

My (and not only my) experience dictates a simple logic: the highest pay technologies are rare. I am not sure how the research in article was conducted (and was?), but a clear example from my own life.

Working with two scripting languages - Python and Perl at equal levels, which do you think brings the highest revenue? Perl, because it is rare to find a Perl developer. It does not correspond to possible revenue, which is usually taken into an account in such posts. Simply speaking, if technology A is used in let say big banks and technology B in not so rich businesses, technology A should possibly bring more revenue. No, this is logical fallacy, that often travels from post to post. This is basic of any economics course - you should not have a PhD in economics for it - if you have less competitors, you will get more money. This is how market works (or better say a concept of monopoly).

The same logic we can apply to geo factor that is also usual mistake that comes from post to post. It is assumed (and wrongly), that iOS developers get more because they live in richer countries and Android development is out sourced to freelancers in poorer countries (or even are considered free if you take backend Java developer to write Android app - that is road to nowhere). Well, assuming how awful are many Android versions of iOS apps this is true, but it does not mean that iOS developer will get higher revenue. That means that iOS developers are limited in a number from the beginning - in fact you need to have Mac. So if we have basically same market (assuming that typical product should have two apps) - the divider in Android case is higher. And again the highest revenue will be in Windows development.

Collapse
 
imcat profile image
Rimantas Liubertas

I wonder how many new iOS projects are started with ObjC and not with Swift (which is not even mentioned).

Collapse
 
edvardmk profile image
edvard

Thanks for taking your time and putting this together. I just came to notice that the first graph on the page comparing Python, Java, C++ and Javascript has wrong proportions. The last three columns should be of almost equal height or the scale has to be changed accordingly.

Collapse
 
peasofmind profile image
PeasOfMind

Wow Ruby isn't on here at all! Is Ruby a dying language?

Collapse
 
tarptaeya profile image
Anmol Gautam

No

Collapse
 
thejoezack profile image
Joe Zack

Thank you for the thoughtful and detailed post! Like you said, salary isn't everything and stats are hard...but this is great info for devs to consider when investing in their career

Collapse
 
heemoe profile image
Hee Z

In China,senior engineers get higher pay if you are using Golang. C# is not much popular and get lower salary than Java.

Collapse
 
crsantiago profile image
Christopher Santiago

This is very well put together post. Thank you so much for sharing!

Collapse
 
zedaanrumi profile image
Zedaan Rumi

It was really great analysis but I think GraphQL is totally missing here.

Collapse
 
harittweets profile image
Harit Himanshu

I think the one where you are really good at!
I have seen people still working on Java 6, and making hell lot of money, just because they are good at what they do