It's reasonable to assume software development will follow the legal path (or similarly, of business grads who aspire to careers in finance) over time: a few graduates of elite universities, with some combination of greater ability or prestige-signalling degrees, will land elite jobs at global firms making six figures directly out of school, while most earn a small fraction of that elsewhere. In the late '00s / early '10s you had a confluence of events--the settlement of anti-competitive hiring case against the major industry names, a boom in revenue for tech companies, quantitative easing causing a global hunt for yield and explosion in VC, and other factors--leading to a scenario where in the span of a year or two, tech jobs went from "not on most college kids' radars" to realization that this was a well-compensated career. In 07, my top 30 university nearly shuttered its CS department, which would be unthinkable now. That kind of rapid change causes a shortage. It won't last forever.
I think exploring more of the possible solution space for how to train and pay tech folks has all sorts of potential for society as there are definitely parallels there in terms of the potential social utility of making technical labor more abundant and less expensive. Obviously there's a downside for people who work in tech and keep wanting to make fuck-you money, but so it goes.
In the early 90s, universities threw students straight into data structures and algorithms in LISP and expected fully half of them to drop out first year. By the early 2000s, the market was already full of useless grads. I was always on the east coast, but near as I could tell from the refugees I interviewed after the dot bomb, SV had been hiring anyone who could type as a senior developer, and the market just kept going downhill from then on. The schools must already have been complicit in it, because I had employees with degrees who didn’t even recognize the names of basic algorithms and data structures when the need for them arose. Now I see intro curriculum from serious schools that’s just a few loops in python or even visual programming in a browser. Less serious CS schools seem to be little more than job training programs. And of course, like this post shows, tens of thousands of coders who really have just completed a job training program are flooding the market.
When I started working, every programmer I worked with was at least competent. If they weren’t, they just didn’t have a job. There wasn’t such a desperate need for people and it wasn’t hard to find someone competent. Now I assume that someone’s code can’t be trusted until I see evidence to the contrary. I used to bring people straight in for in-person interviews or do a really quick phone screen. Then I started doing much deeper questions on phone screens. Now I have to start with a coding test, because 95+% of candidates cannot write simple programs in their language of choice, even though they’ve got a fancy degree and they sound like an expert on the phone, because they’ve been trained for that... but apparently they have not been trained to actually create software from scratch. One company I worked for had a well researched candidate screening program and was talking about spinning it off as a service by the mid-2000s. Now extensive screening is universal and there are multiple companies that you can outsource it to.
There’s no shortage of developers on the market, but there’s a real shortage of good ones. If you’re right and that shortage ends at some point, there’s going to be a sea of unemployed, unqualified coders who need job retraining or something. But I don’t see the shortage ending unless the pipeline starts spitting out more well qualified people.
The parallels to modern computing and programmers are uncanny and provide a good reminder about how unions, capital, and labor all interact. Even though we imagine ourselves on some grand crusade of science and reasoning, ever towards the Kurtzweilian singularity of rationality and thinking sand, we are still bound by the same forces young Samuel Clemens was lashed into.
In general, it's a great read and a great look into the life of one our greatest writers. Highly recommended.
If you mess up a CRUD app as a junior full-stack developer, prod is broken until somebody fixes it. And you can learn enough to not break prod pretty quickly on the fly. It's a very reversible mistake in comparison.
Maybe Boeing and Airbus will never have an Ada developer make an error that kills a plane full of people but there's already a push for javascript to be used in embedded systems and I'm sure it's coming from someone seeing the large numbers of javascript programmers coming out of coding boot camps and similar programs.
Surely you mean to design systems with modularity that helps RAM-limited brains made of meat to avoid defects and defense-in-depth which reduces the impact of defects.
Any compliant healthcare software project would keep a junior developer very far from the patient -- there are many layers of review, testing and validation that would prevent one developer's mistakes from significantly putting patient health or data at risk. Even senior developers (usually) shouldn't be able to touch stuff that close to patients.
A doctor literally has their hands on a patient. There isn't a review pipeline that makes sure a doctor's mistakes are caught before they reach a patient.
(That's not to say mistakes that harm patients don't happen in healthcare software, just that it's hard for one developer to cause harm without many others approving it first)
Imagine if this is your power company and a bugged website means you can't pay your bill before your power goes out.
Problems in prod can have affect people's lives.
Non critical software is push into production following reasonable practices for non-critical software. Then, with time, what was once non-critical became the stonewall of a much larger and complex systems and now it is a really "non-critical" system that powers other critical systems.
One would hope so, but I'm not quite as confident as you are…
CPA, even for being a barber you need to go to school for 2 years and get a degree, electricians, if you even want to work on nail, you need to be certified!!!!!
Barber: You hold a sharp object to somebody's head wrong, you could take out a chunk of scalp. If you're malicious, you could do more.
Electricians: You do it wrong, you can literally fuse your corpse to the thing you were working on.
All of these are greater consequences than having prod going down. In these fields, things can go very wrong very fast, and all these professions are right to same some form of certification.
>>In these fields, things can go very wrong very fast, and all these professions are right to same some form of certification.
Licensing is not the same as certification. Licensing means you are forbidden from doing something until you meet certain conditions. In any occupation where the parties subjected to risk are consenting to that risk, there's no possible justification for such a restriction that doesn't involve a paternalistic argument that people should have their liberty curtailed by the state for their own good.
As software eats the world, people with 10+ years of field experience working at high organizational levels aren't threatened by a supply of people learning how to code any more than a surge in people learning to be medical office administrators threatens those doctors with the 10+ years into medical school and residency.
It’s a problem larger than the field.
I mean, in an ideal world we could even render doctors redundant in most cases by some incredible Elysium(the film)-like medical bed.
The problem is what do we do with our time instead? It’s a question that can inspire all kinds of hope or dread depending on your outlook.
Its a problem of convincing the society that its not anyones place to dictate how someone else decides to spend that time. There will be massive resistance to any economic model other than the established scarcity based capitalist regime enshrined in most of the west for the last 150-200 years. Trying to ensure the fruits of the societies labor that led to that automation are properly apportioned to said society will be a long uphill battle against people of substantial greed that see automation not as a liberating force for humanity but as a source of permanent, infinite wealth allocation and centralization.
There are more Charlatons in tech than ever before.
If you don’t have an interest first in side projects and exploring your curiosity with programming, you’re probably not going to make it.
As we move forward and software does impact people's lives more and more and in some cases can lead to injury or death, we will see many more professional hurdles put in place. But it won't be to keep the profession pool limited.
If software were to impose such restrictions it would be much harder to justify other than "we want to preserve our high salaries". When laborers formed unions they were genuinely exploited in many cases. Not sure how you rationalize a software engineering union...
Right now, the big thing keeping the supply of software engineers down is the lack of housing available near software companies, but this will slowly change as more and more companies start outside the bay area.