Today, Mashable released a click-baity article about the software developer job market called “To be a star programmer in 2016, learn Javascript and move to Utah”. It paints a very misleading picture. Let’s set a few things straight.

It’s a candidate’s market, and that won’t change in the foreseeable future.

A little background. I’m a software developer. For the past several years, I have done a lot of interviewing to hire other software developers. I also train JavaScript developers in the skills they’ll need to get great jobs. I have a deep background building and advising high velocity development teams for a variety of startups and fortune 500 companies.

I am also the technical advisor for tech talent agent extraordinaire, JS_Cheerleader (my agent — if you want to write your own ticket, reach out to her). She frequently interacts with the top tech companies in the industry, and keeps me in the loop about what they’re looking for. Between that and feedback from students, I have a really good view of both sides of the JavaScript job market.

You Should Learn JavaScript

The Mashable article didn’t get it all wrong. The “learn JavaScript” advice is solid. About 1/3rd of all developer jobs require some JavaScript knowledge (source: indeed.com). JavaScript is currently the most popular programming language with the richest OSS module ecosystem, and the only programming language with a really convincing universal deployment story: The “write once, run everywhere” dream that Java aspired to — Java fell short. JavaScript pulled it off.

Universal JavaScript is an app that runs on servers, on the web platform, and even in native devices (check out React Native), sharing a bulk of the same app logic (not just libraries) across all target platforms. If you’re not using Universal JavaScript to write your apps, you’re wasting a lot of time and money.

Growth of npm — JavaScript’s standard OSS package repository

It’s Not Just Utah — Software is Hot Everywhere

I know it made for a nice click-baity headline, and it’s true that software development jobs are growing rapidly in Utah, but you also need to consider, what baseline is this growth coming from? Utah is a relatively small market on the national scale, with just 2–3k total software developer job openings. Compare to New York City 12k — 20k openings, or San Francisco, which has a standing demand of 10k-15k. There are plenty of other cities that make Salt Lake City’s coder job prospects look abysmal.

I’ll switch to just JavaScript jobs now, since I already have the data available (gathered via indeed.com job search, December 2015):

* Washington DC, 5.3k

* Oakland, CA, 4.7k

* San Jose, CA 4k

* Boston, MA, 3k

* Los Angeles, CA, 2k

Compare to Salt Lake City’s JavaScript dev demand: ~500 openings. All of Utah combined has only about 800 JS openings. If you’re looking for a programming job, “move to Utah” is myopic advice.

Want a programming job?

Move literally anywhere.

What’s more, you don’t have to move even if your local market sucks. There is a national standing demand for thousands of remote JavaScript developers across the US, and there are similar remote openings around the globe, which provides even more opportunity for remote workers. If you’re a great developer, you should strongly consider remote work opportunities. They’re certainly harder to find and a lot more competitive, but definitely worth looking into.

The Talent Gap is Real. And BIG.

The talent gap is not getting filled by the new prospects entering the field.

Mashable made it sound like there are so many people learning to code that it’s getting really competitive. Here’s the hard truth:

Software development is and has always been a very challenging job that requires a variety of skills, including communication, collaboration, and technical writing. There’s a good reason programmers earn about 2x the national average salary: It ain’t easy.

You must be driven and highly self-motivated.

and highly self-motivated. You must be a fast and eager learner. (Tech changes quickly).

(Tech changes quickly). You must be a great communicator & collaborator .

. You must be both detail oriented (for implementing & debugging), and big-picture oriented (for architecting).

(for implementing & debugging), and (for architecting). You must have a working knowledge of math, logic, & abstraction.

You must be willing & able to put in some time off the clock to keep your skills sharp.

If that sounds like you, you’ll do very well. If that doesn’t sound like you, you still may benefit from learning a little bit of code, but you should probably look at other career choices. No single career is right for everyone, and that’s OK.

If you’re having trouble finding a job, maybe you need to work on your skills or some sample OSS software to demonstrate that you can do the job. See “Why Hiring is So Hard in Tech”, “10 Interview Questions Every JavaScript Developer Should Know”, and “Every Developer Needs a Code Portfolio” if you really want to increase your odds.

You can’t blame your programming job search troubles on the market.

In my experience, it’s not that companies are “doing more filtering” (well, maybe if you only look at JavaScript, circa 2008 compared to today. JavaScript has only recently taken a leading role as a language for serious application development).

What’s really happening is that companies are getting better at screening for the skills that the job has always demanded.

The talent gap is not getting filled by the new prospects entering the field (yet — we’re working very hard to fix that). Job growth is still outrunning the availability of qualified candidates by an unfortunately wide margin. In other words, from a hiring perspective, it’s still hard to fill the roles.

It’s so hard to fill the roles that in the most competitive cities, we frequently broaden the net and search internationally for qualified candidates. The number of foreign employees within a tech startup is 29% on average for the top 20 global ecosystems. In Silicon Valley that number is 45%.

It costs tens of thousands of dollars more and many months of waiting to hire somebody from another country on an H1-B Visa. Do you really think we’d go to the trouble if it was easy to find somebody qualified locally?

If a whole industry, the government, and the president of the United States (see the TechHire initiative) is saying that we have a shortage of trained software developers, you should probably give more weight to that than to a sensationalist, poorly researched blog post.

Why It’s Hard to Find a Job

It’s easy to find articles breathlessly dismissing the talent gap because the author heard it’s hard to find a tech job. Reality check: There are other reasons your roommate didn’t get hired. Here are the really common ones:

Companies often pass on very good prospects due to popular but worthless techniques like whiteboard coding challenges or puzzle problems (if you’re doing those, stop now. They don’t work, and they’re costing you dearly). Bias also turns away a large number of potentially great coders. We need to get better at recognizing great candidates across the industry. The candidate simply isn’t good enough yet. JavaScript training sucks. 99/100 developers I interview can’t answer basic questions about the two pillars of JavaScript: prototypal inheritance and functional programming. Both are used extensively in every large JS app I’ve ever seen. A working knowledge of both is essential to every JS developer. Entry level learning positions are scarce. As bad as companies are at general developer hiring, they do an even worse job of hiring junior developers and fostering a culture of learning on the job — where the most effective tech training actually gets done.

Why is it so hard for companies to hire Jr developers and train them? Unless there’s an excellent mentorship environment, Jr developers often take up to a year to start contributing productively to the team. Unfortunately, just over a year is the average time a Jr developer stays in their first role. In other words, unless the company is exceptionally good at finding, mentoring, and retaining junior developers, it doesn’t make financial sense to do it.

The good news is that the best candidates are attracted to teams where they are challenged to learn a lot. High velocity development teams foster a culture of learning, pack the team with great mentors, and hire based on eagerness to learn new things. Such teams do very well & retain employees better. Newbies on those teams quickly climb the ranks into mentorship positions, feel more challenged and fulfilled, and stay with the company much longer.

If you’re a weak candidate, you’ll have a hard time in any market, but if you have some sample code to look at and you know your stuff, know this:

It’s a candidate’s market, and that won’t change in the foreseeable future.

The Evidence

Software developer job growth prospects from 2012–2022: 22% — More than double the average across all job categories : http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm

: http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm Software developer is the 2nd largest growing job category in the United States . Only registered nurse positions are growing faster. http://www.fastcompany.com/3054142/the-future-of-work/these-will-be-the-most-in-demand-jobs-in-2016

. Only registered nurse positions are growing faster. http://www.fastcompany.com/3054142/the-future-of-work/these-will-be-the-most-in-demand-jobs-in-2016 There is a standing demand for hundreds of thousands of software developers right now, expected to grow to more than 1 million unfilled jobs by 2020: http://www.wsj.com/articles/computer-programming-is-a-trade-lets-act-like-it-1407109947

Even all that compelling evidence is a very near-sighted view of programmer job prospects. Let’s take a step back and look at the bigger picture.

The Future

I’m going to share a few slides with you from a presentation I give on the importance of code, and why we still need to train a whole lot more people to do it.

Software is eating the world

The web is eating software

& JavaScript Rules the web.

In 2000, driving was the most common job in almost every state:

Software developer wasn’t even on the map. By 2014, software developer was the most common job in 4 states:

By 2045, a human driving a car will look like a horse pulling a buggy.

Mercedes F 015 — Ars Electronica (CC BY-NC-ND 2.0)

Uber is already putting a huge strain on the global taxi industry. Uber plans to buy half a million self driving cars by 2020:

Schools are not teaching people the skills they will need for tomorrow’s jobs:

Code.org

The Rate of Change is Accelerating

Literally all industry is being thoroughly disrupted or entirely uprooted by code, and in spite of those who see a little plateau in Moore’s Law and declare it dead (I’ve seen this happen countless times), the rate of technological transformation is still growing exponentially.

For every article I see declaring Moore’s Law dead, I see 3 technologies set to put it back on track. Here’s a recent headline:

“Google: Our quantum computer is 100 million times faster than a conventional system”

We’re entering into the period of technological explosion where it will be blindingly obvious to us & to our children that technology is progressing faster than any human being can keep up with, and there are no signs that it’s going to slow down in our lifetime, or in our childrens’ lifetimes.

Here’s a small list of technologies exploding right now that will open up thousands of new roles in 2016:

AI

Drones

Virtual Reality

Augmented Reality

3d Printing & Robotic Manufacturing

Mobile Payments

Cryptocurrencies, Bitcoin, & the Blockchain

For more on these technologies, and why they’re going to transform the world as we know it and expand the exploding programming job market, read “Get Ready for the Future: A High-Tech Video Time Capsule From My Future Self”.

It’s time to face facts:

Computers are the new paper & ink

and programming is the new literacy.

The idea that we can train “too many” people to code is ridiculous. If there are more coders, there will be more software companies who need to hire more coders.

If you take only one thing from this article, let it be this:

Software training is a virtuous cycle, and it will not be exhausted by more coders in the field. There will just be more Facebooks, more Googles, and more Teslas founded to hire them.