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.