DEV Community

Discussion on: What software technologies will earn you the highest pay?

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.