Boot.dev Blog ยป Jobs ยป It's Not About the Job Openings

It's Not About the Job Openings

By Lane Wagner on March 30, 2023

Curated backend podcasts, videos and articles. All free.

Want to improve your backend development skills? Subscribe to get a copy of The Boot.dev Beat in your inbox each month. It's a newsletter packed with the best content for new backend devs.

I talk to boatloads of students who are starting to learn to code, and invariably they are hyper-concerned about which programming languages and technologies they should be learning.

Now, first of all, I don’t think it matters all that much. You don’t fail to break into tech because you learned JavaScript instead of Python, or Go instead of Rust. You fail for a bunch of other reasons, chief among them being a lack of dedication, time, and focus.

That said, choosing good technologies to learn can certainly help. Unfortunately, almost everyone I talk to is only concerned with one metric: the total number of jobs for a given technology.

This is a mistake.

Video version of this post ๐Ÿ”—

The total number of jobs doesn’t matter ๐Ÿ”—

According to Stack Overflow’s latest survey, JavaScript is the most popular programming language in the world, both for people learning to code as well as professional developers.

I also did a quick search on LinkedIn Jobs for “JavaScript” and “Golang” jobs. Here are the results:

  • JavaScript: 477,512 open positions in the US
  • Golang: 61,673 open positions in the US

If you look at those numbers and think “I should learn JavaScript because there are more jobs”, you’re not alone, but you’re wrong.

It doesn’t matter how many total jobs there are, because you only need to land one.

– me

Looking at the ratios ๐Ÿ”—

To dive deeper I went to Google Trends and looked at the number of people searching for the terms “Learn JavaScript” and “Learn Golang” over the last 12 months. Here was the ratio:

JavaScript: 73 Golang: 6

73/6 is the ratio of people searching for “Learn JavaScript” to people searching for “Learn Golang”. Google Trends, like the Sith, doesn’t deal in absolutes.

So, let’s do some more math:

JavaScript jobs to Golang jobs: 477,512 / 61,673 = 7.7

7.7 JavaScript jobs for every 1 Golang job

JavaScript learners to Golang learners: 73 / 7 = 10.4

10.4 JavaScript learners for every 1 Golang learner

Next, the “competition ratio”: 10.4 / 7.7 = 1.4

Based on these numbers, I’d estimate that your competition for JavaScript jobs is about 1.4x higher than your competition for Golang jobs. According to this completely scientific and in no-way fallible analysis, it looks like Go might be a better choice if you’re trying to minimize your competition for jobs.

Can I trust these numbers? ๐Ÿ”—

I don’t know, probably not. My goal here isn’t to convince you to learn Go, Python, Rust, JavaScript, or anything else for that matter. I just want you to think about the job market in a slightly different way.

This has been top-of-mind for me lately due to an anecdote from a couple of years ago. I was working as a hiring manager where I was looking for mid-level Go developers. My coworker was hiring mid-level JavaScript developers at the same company. When I opened a new position I would get 10-20 candidates within 2 weeks. He would get 100+ candidates within the same time frame. I felt bad for the JavaScript candidates.

Does the total number of jobs matter at all? ๐Ÿ”—

Yes, but I prefer to think of it as a threshold. Like, if there are only 100 total jobs for a given technology, even if you’re one of ten people in the world who knows it, you’re going to be entering a very niche market that could dry up at any moment.

It’s like, “is what I’m learning sufficiently popular that I can reasonably expect to find a job”? If it is, then I’d argue the next most important metric is the ratio of candidates to jobs.

What else matters? ๐Ÿ”—

The next thing to consider is your location. Remote work is great, but I’m a big fan of junior devs trying to work on-site for at least a year or two. You’ll learn faster, and you’ll actually have an easier time landing a job in the first place (assuming you’re in a place with some jobs). When you compete for a local job, you’re only competing against people who live in your city, not the entire world.

If Python has tons of jobs, and a fantastic ratio of candidates to jobs, but where you live the only developer openings are for Go and Java, then I’d recommend reconsidering your choice of technology.

Please don’t worry about it too much ๐Ÿ”—

Like I said at the outset, you won’t fail to break into tech because you didn’t choose the perfect stack to learn.

If you go about learning to code by going deep on the basics, you can always learn new technologies as you go. Fundamental concepts like problem-solving, imperative programming, data structures, algorithms, architecture, clean code, io, networking, HTTP, REST, databases, and caching are universal and language-agnostic. If you know how to build a REST API in Go, spinning one up in Express or Django is going to be a quick learning curve.

Syntax is the easy part. Best of luck out there.

Find a problem with this article?

Report an issue on GitHub