183 Comments

One small quibble - you can’t really run an app with 100,000,000 users with the same dev team you would use for 1,000 users. There’s a lot more involved than just paying for more servers. You have to use different technologies, and have people with special knowledge that doesn’t come into play for a 1,000-user app.

But to your main point, I’m saying this as an adaptable person who is ten years into a successful career as a developer, and my college degree is in... “Jazz Studies” 😆

Expand full comment

I think this is one of those things where the econ 101 story is straightforward (when Q goes up, P goes down) but the econ 304 story is more muddled. A surge in programmer supply could also raise demand for certain types of code.

People who work in tech but who have a limited upside on their coding abilities have more room to specialize and find a niche in the ecosystem where there is a huge rush to computer science. Your typical team of data scientists is now being supported by a team of data engineers that probably weren't in that group of sought after 50 purdue students. But because of the growth of the field there is now a niche that allows two different groups of non-top tier CS people to add marginal revenue.

This surge in supply is probably very bad for those at the very margin of the field. It is definitely actually good for those who are code competent but with a marketable complementary skill, and very good for those who are mid-tier CS people who can sell tools to that second group. (I don't think that's a insignificant chunk of jobs for computer science humans given how much of software is about keeping the damn site up and deploying new bits to the machines).

Expand full comment
author

The number of responses from computer science people attacking things I never said somehow surprised me. I don't understand why people who say they're doing so great are also so intensely defensive.

Expand full comment

Programmers are born, not made. I've known plenty of people with advanced degrees in CS who couldn't code their way out of a paper bag.

Expand full comment
Aug 24, 2022·edited Aug 24, 2022

Very good points, and as a software engineer with twenty-five years of experience and a humanities degree, I strongly agree with the last sentence, "Personally, I would much rather be a talented and adaptable Classics major than a computer science major who’s less bright, less talented, and less able to adapt to an endlessly-changing labor market". This is true primarily because the most important things a developer does aren't even technical: the job is about conceptualization, abstraction, and disambiguation. People have often likened it to architecture, but it's often more like asking someone to build the empire state building inside the Sears Tower.

More to the point, the middle section on labor costs is missing an important piece of the picture. It says, "Indeed, a huge advantage of software companies (bits not atoms) is that they can have very low labor costs relative to their size! In my experience tech companies hate hiring and want to stay as lean as possible." This is right insofar as labor demand is not driven by the same factors as industrial jobs. But it misses an essential characteristic of the software industry, which is that every company wants to grow, and they want to grow endlessly. This means new features for existing software and new initiatives. And it's true not just for proven, profitable products, but merely promising ones, in part because the marginal costs per unit is zero - it motivates investors to take a lot more chances on the proverbial home run. Surely that won't always be the case, but it's a durable, structural advantage for the industry.

Every single company I've worked at has been in permanent hiring mode, apart from short periods of crisis. It's true that there is not an insatiable demand for coders, but we've got a lot of runway (*especially* for talented, adaptable classics majors that acquire the technical skills).

Expand full comment

I’m a SWE and my wife is a pharmacist, so I feel qualified to comment on the job markets in both fields. I don’t think they are as comparable as you are making them out to be.

In pharmacy, a prescription filled is one fewer prescription to be filled. More pharmacists do not create the opportunity for more pharmacy activity. In software, more code creates the opportunity for more code. If I make something new (or even keep something old updated) it means that others can use it in novel ways, extend it, etc. It’s inherently generative. Additionally, something like 80% of software costs are maintenance. Software, if it’s being used, has to be updated all the time. The more of it that’s written, the more maintenance work there is.

In pharmacy, you graduate about as good as you’ll ever be, and your pay reflects this. You graduate basically capped out on your hourly pay. In software, an averageish engineer can expect to double their pay in 5 years. Honestly they are typically a much better bargain at 2x pay after 5 years because the skill ceiling in the field is very high, and people continue to improve for a long time.

Also the skills taught in CS are not the same ones used in a typical SWE job, so new grads have to learn a lot on the job (pharmacy is less like this). This means companies hesitate to hire new grads, lose money training them, then have them jump ship for a 20-30% pay raise after a year or two.

So while getting hired as a new grad is hard, I expect the market for SWE to be quite good and continue to improve over time, even if there’s occasional down periods in the technology sector generally.

I’m still telling people they should try learning to code.

Expand full comment

As a solution to macro labor market issues or a guide to choosing undergraduate majors, "learn to code" is bad. As advice to people who are in a rough spot, I think you vastly underestimate its merits! I read your takes on this 10 years ago, when I was learning to code as an out-of-work humanities grad in a recession, and you almost talked me out of it. (Luckily I kept at it.) I understand that it can't work out for everyone--by definition--but at the same time over the past few years I've worked alongside former construction workers, 911 dispatchers, musicians (lots of those), and so on who now all have high paying jobs that they enjoy. Again, yes I understand that it can't be this good for everyone forever, but even now coding is still a thing that a smart person who didn't go to college can learn on their own, and get a job doing it.

Expand full comment

One of many big motivations behind my current path was learning that something like 70% of CPAs are going to retire in the next decade. Accountants, while not paid poorly, consistently are paid less than MBAs and finance people so those two disciplines siphoned off many students, especially MBAs because the academic knowledge is much less rigorous. It also helped that I already was working as an accountant and just wanted to remove the ceiling to advancements.

Anyhow, liberal learn to code rhetoric is a complete crock for the very simple reason that you can't make income distribution more equal without actually doing so. If we live in a highly stratified society it won't make a lick of difference if you hand out PhDs in ComSci to every man, woman, and child. Someone will still have to be poor. This was never a solution and I'm sure you know it.

Expand full comment

The country is in need of law enforcement officers, teachers and nurses. One of those pays pretty well. None of them have cultural cache.

Expand full comment

Makes you wonder if the "learn to code" and "STEM shortage" mantras were discreetly juiced by larger firms as part of a longer game to drive down the cost of labor.

Expand full comment
Aug 24, 2022·edited Aug 24, 2022

There is another side effect to everyone "learning to code" and that is that a lot of people are just not terribly good at it. The influx of people blasting through "bootcamps" and degree/diplomas has flooded the market with a lot of people who are not well suited to the field but see it as a way to make easy money.

The most competent programmers and software engineers I have worked with are usually, well, kind of weird. They have odd personality quirks and their brains seem to work a little differently from normal. If everyone was encouraged to become a basketball player, the average skill level of basketball players would likely drop. People well suited to basketball would still excel in the field, but a lot of people not cut out for it would be competing for those limited spots at the top.

One country in particular, India, pushes people to enter into software more than any other country in the world and the results have been somewhat mixed. My anecdotal assessment is that there are a lot of average "office worker" types which can cause projects and departments to become overly bureaucratic and sluggish. Perhaps we can look to India to see what the future of the "learn to code" push in the US and Canada may lead to.

Expand full comment

Freddie is right about the top level supply and demand dynamic, but it doesn't follow at all that "learn to code" is bad career advice. To give a few reasons:

* While the market to absorb new programmers isn't infinite, it could be very very large. I would take a bet that the market to absorb new programmers is so large that the current crop of graduates can expect to see rising wages for most of their career.

* Idiosyncratic industry dynamics have made programmers more and more valuable over time and those dynamics aren't going away any time soon. Computer hardware has gotten better, cheaper and more ubiquitous every year for the last 70 years, and every time it does the usefulness of programmers increases. At the same time, software tooling itself has also gotten dramatically better, which also increase the productivity and therefore value of programmers. Having commoditized complements is really nice!

* As other commentators have mentioned, programmers are unusual in that quite a lot of them work on tools that are exclusively sold to other programmers; more programmers expands the market for programmer tools, which expands the market for programmers! So there's a built in offsetting effect... that said I'd admit that this effect is small compared to top level supply and demand dynamic.

There are other dynamics that also work to the programmers advantage, but overall, I definitely still feel very good telling students to code.

(Also since everyone seems to be listing their credentials, I'm the head of software engineering at a mid-sized startup and an adjunct professor of computer science. It's *totally* possible that I'm biased here.)

Expand full comment

One other factor for the median CS grad is an education that leads them to distain anything that’s not pure CS. The lower down you go the more the job opportunities involve a wider selection of CS adjacent roles. If you feel that you’re too good for those it’s going to dramatically impact your career and employability.

Expand full comment

I'm a DevOps consultant with 20+ years of programming experience under my belt, have a stable gig for forever, my salary puts me in the top 5% - and I did it all with a bachelor's in English Lit. Fortunately for me, I graduated in the late 90's, when the internet and IT was just starting to take off, and anyone who could spell "Java" was given a job. There was no skills assessment at my first interview because the people interviewing me had no idea how to assess my skills. It was entry-level, but I self-taught for years (I still am!) and slowly and relentlessly climbed up the ladder. But it's very different now for young grads. Just saying you need to learn to code to get a job in this field is like saying you need to learn the alphabet to be a professional author. It also now requires communication skills (you often need to work across time zones with people in different cultures), solutions architecture (as more and more stuff goes on the cloud and is automated, making the widget isn't as important as designing the factory that makes the widgets), and some of the adaptability you mentioned (basically, you'll need to accept you'll be learning new tech, languages, and design patterns for the rest of your career.) I don't envy any of these kids coming up today tbh

Expand full comment
Aug 24, 2022·edited Aug 24, 2022

Everyone, including those pushing "just learn to code!" already knows this.

It's just a flip excuse to justify non-action, the 21st century equivalent of "If the peasants have no bread, then let them eat cake!"

Expand full comment

I am a psychiatrist and routinely get asked for career advice by anxious patients who are going into college or their more anxious parents. I tell them that the demand for any particular specialty is unpredictable. I also advise them that there are three qualities that I have seen be particularly helpful independent of the market.

1) Be reliable - Show up to work ready to work when you are supposed to

2) Be able to work well with people even if you don't like them

3) Cultivate a love of learning and seek out opportunities to learn

If someone has those three qualities they are far ahead of most others in the workforce.

Expand full comment