I used to work as a software engineer. As the company I work for has grown a lot, I now no longer write code, but do software design, and hire new team members in different positions, inluding PMs, visual design, usability design, backend programming, and frontend programming.
It is extremely difficult to find good programmers, especially frontend programmers.
I'm pretty sure that the reason here is not that it is difficult to become a good programmer, but that a lot of people choose not do, for a number of reasons.
Two reasons that I have personally encountered:
For visual design positions, we get a large number of applications from many qualified people. Applicants are highly diverse in age, gender, interests, and so on. But hiring for software engineering positions, we get few qualified applications, and they're almost exclusively men below 35 years with often a very similar profile. If we search for people who have less common abilities (e.g. for full-stack developers), we basically don't get qualified applications.
This is in a city that has one of Europe's highest-rated technical university that produces a lot of comp sci graduates.
One intersting data point here is that game studios tend to pay developers much worse than other companies, and offer much worse benefits. The reason for this is likely that developers want to work at game studios, and that many more apply there.
Also, one other thing to consider is that software is eating the world. There are very few products that are not in some way dependent on software, directly or indirectly. Even things that ostensibly don't depend on software were probably created using specialized software, and were produced by companies that run on specialized software (e.g. process management software).
Consequently, when we find qualified applicants, they basically dicatete salaries. We are dependent on them, we can't grow without more people who write software. They are not dependent on us, and there's nothing we can offer that other software companies can't also offer.
I don't think the growth of our dependence on software will stop any time soon. Even if a lot more people started studying comp sci right now, that would only only lead to more growth, and thus increase demand further, at least for the foreseeable future.
Summary: we don't understand why programmers are paid so well. If you're a programmer, there's enough of a chance that this is temporary that it's worth explicitly planning for a future in which you're laid off and unable to find similarly high-paying work.
Programmers are paid surprisingly well given how much work it is to become one. Here's Dan Luu comparing it to other high-paid careers:
My sister is currently a second-year medical resident, and "incredibly brutal compared..." feels like a understatement to me. She works 80hr weeks, often nights, helping people with deeply personal and painful issues that are hard to leave behind when you go home. This is after four years in medical school, with still at least a year to go before starting to earn doctor-level money. When I compare it to how I started programming right out of college, making more money for 40hr weeks and no on-call, I feel embarrassed.
What makes me nervous, though, is that we don't really understand why programmers are paid this well, and especially why this has persisted. People have a bunch of guesses:
Things are pretty good now, and seem to have gotten even better since Dan's 2015 post, but something could change. Given how poorly we understand this, and the wide range of ways the future might be different, I think we should treat collapse as a real possibility: not something that will definitely happen, or that's going to happen on any certain timescale, but something likely enough prepare against.Demand: as software eats the world there are far more profitable things for programmers to do than people to do them.
Supply: it's hard to train people to be programmers, fewer people are suited for it than expected, and bootcamps haven't worked out as well as we'd hoped.
Startups: big companies need to compete with programmers choosing to go off and start companies, which is harder to do in many fields.
Novelty: the field is relatively new, and something about new fields leads to higher profits and higher pay, maybe via competition not being mature yet?
Something else: I'd be curious if people have other thoughts—leave comments!
Specifically, I'd recommend living on a small portion of your income and saving a multiple of your living expenses. It's far more painful to cut expenses back than it is to keep them from growing, and the more years of expenses you have saved the better a position you'll be in. If you take this approach and there's no bust, you're still in a good place: you can retire early or support things you believe in.
If being laid off and unable to find similarly high-paying work would be a disaster, figure out what you need to change so that it wouldn't be.
(This isn't really specific to programming, but I think the chances of a bust are higher in programming than in more mature fields.)
Comment via: facebook