It’s possible some segment of programmers will obsolete themselves by calling actual business requirements BS, or insisting that they will only work in Clojure on new development with a custom standing desk from home and never have to attend a meeting or engage with the rest of the company. But the work is there, more of it every day, and it’s only boring BS if you perceive it that way.
And more importantly, when required code that ain't yours, plenty of people that don't do and don't like it unfortunately.
But it's useful to know which mistakes were made so you don't need to repeat them.
The market was definitely down after the dot com bust.
If interest rates rise substantially then I wouldn't be surprised to see a lot of the VC money disappearing followed by a drop in demand.
Younger less-experienced programmers I worked with who got laid off in 2000 when their startup tanked struggled for a long time to get back to their pre-bust salaries. They were probably overpaid in the first place, hired in as fresh talent in an overheated VC-driven job market that was not sustainable. When that happens it’s disillusioning and depressing. I see that happening again, kids fresh out of college hired at Facebook/Meta at crazy salaries that no other employer will match if/when Meta tanks.
I think programming work in the next decade will be done by logicians using something like TLA+[0] to simply describe specifications.
And something like GitHub co-pilot to translate those specifications to working code.
However... The software doesn't need to be good, just functional. Getting good specs is hard too, but the specs don't need to be complete... I could imagine a terrifying world of startups with very fast "functional" MVPs that are slow as dirt and robust as paper with giant bugs caused by bad specs. It wouldn't be too different from the status quo!
It can just be something from the "formal methods"[0] school of research.
I heard assembly code for CPU's are now days optimized for compilers instead of humans.
This seems doubtful given the average quality of human code.
The "your analyst will write your low-code solution" idea is still futurism.
[0]: https://en.m.wikipedia.org/wiki/J_(programming_language)
Specify programs by only a very brief specification is similar to No Code/Low Code. It's great for prototyping and not much more.
How is that not software engineering?
There's plenty of engineers needed for the internet, but even if we assume the internet will never need any more software engineers, there are still tons of other areas that do: embedded, automotive, manufacturing, phone apps, defense, logistics/supply-chain, etc.
This is a people problem. Not a code problem.
Software development will never be automated unless people can begin creating extremely accurate business requirements. And that is never going to happen unless human nature changes. And it won't.
That is those without sale and marketing team or resource. As a software engineer, you will be fine indefinitely. As a software engineer founder of a company or just an indie who likes to develop and sell software, it becomes more and more inhabitable.
Professions which are way easier to automate than software development.
Radiology and Driving are the canary in the coal mine in my opinion.
The software ecosystem is so much richer and it’s possible to accomplish so much more per hour by past tedium avoided (and the resulting pay is so much better) that I think if we’re exiting the golden age, it’s towards a platinum or diamond age rather than a silver or bronze.
In a word, performance. You know how when you were a kid and turned some device like a TV on it worked instantly but these days you might have to wait a minute before anything interesting happens? That's one thing that can happen when layers and layers of abstraction and generic software replace highly specialised firmware designed for each product. Of course building all those layers might be cheaper, faster or easier. Unfortunately that doesn't always mean the end result is better for the user.
I think this is reflected in the marketplace with the new ML and data engineer roles that try to find people on a data-eng spectrum.
IMO the DS with software eng skills (and software eng with DS skills) is the future - https://shopify.engineering/search-at-shopify
But not for a while. My personal estimate is 25 yrs +/-10. 50 yrs would be the absolute limit.
I'm not sure I'd expect the startup scene to survive much beyond than that. For various reasons, it will either become impossibly difficult or trivially easy to start an online business.