It's Not About the Job Openings
Tags: webdev, career, job, beginners
Published: 2023-03-30 14:43:33

I talk to boatloads of students who are starting to [learn to code](https://boot.dev), 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.

## 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](https://survey.stackoverflow.co/2022/#section-most-popular-technologies-programming-scripting-and-markup-languages), both for people learning to code as well as professional developers.

I also did a quick search on [LinkedIn Jobs](https://www.linkedin.com/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](https://trends.google.com/trends/explore?geo=US&q=learn%20javascript,learn%20golang&hl=en) 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](https://blog.boot.dev/about/#9-get-an-on-site-full-time-job-first) 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.