My father trained / apprenticed as a tool & die maker in Germany. When he moved to North America (Alberta, Canada) this was not really a thing he could do where he moved. So he became a machinist.
Machining where we lived was/is all about the oil and gas sector and by and large not large unionized shops and not great pay. Mostly sweat shops intense work, lots of underpaid immigrant labour, and my father suffered long bouts of unemployment or unstable work through the 80s and early 90s. So yeah, formerly a 'skilled trade' and then very working class.
In the end things turned out well for him as he ended up landing into a great job teaching machining at a technical school.
He applied for a shop-assistant position at the school, after years of soul crushing unemployment or marginal employment.
They interviewed him and said he wasn't qualified to be the shop assistant -- but they wanted to offer him a position... as a teacher.
He got a full teaching job with benefits, a pension, summers off. A very happy ending.
The same is true for software. But there, the strongest employers are much farther ahead of their struggling peers than a manufacturer of goods could ever be. Google is putting whole industries out of business, at global scale, with a tiny number of employees compared to what they are replacing (and they probably could even shrink their workforce to a fraction of what they have today and still do roughly the same). In consequence of that it seems quite reasonable to expect that the wage difference between the wealthiest and the poorest employers will likely stay much higher than it has ever been for machinists.
Low wage programmers might find themselves in a proud "temporarily embarrassed millionaire"-trap for a very long time. (if it is a trap, "high-paying job at a low-paying company" could also be a path to zen happiness for some)
Building the systems to make the tools to automate that away? Those will still be white collar jobs. Pushing bits is easy, converting an abstract vision into a scalable, maintainable system is hard.
The best programmers are always learning new languages, programs, frameworks etc. Avg programers get good at 1 thing and stay with it.
The real difference is that the first group is training their brain how to learn and adapt quickly - that is the skill that will keep them employed long past the days of simply writing code.
Writing python or C is not the skill. The skill is how quickly can you deal with a new problem you have never seen before.
It already did, it is called globalization and outsourcing.
Business love the wonders of Internet and remote working, paying a dime per hour that they would pay back home, without any of those worker rights guys nagging them.
Specially in any business domain that doesn't focus on selling software.
Consulting, architecture (domain, technical, business), integration and customer management is were software development is going to.
Pure code writing has become like factory work on a distant country, connected by an IP address.
There is also a project management overhead cost to outsourcing that must not be ignored and is prohibitive for smaller companies.
If we want to get anecdotal, across many different companies the only place I've seen outsourcing work is in a huge enterprise and only with several expensive and highly trained local devs cleaning up the crap. Otherwise it's just not worth it. AI will take our jobs long before outsourcing does.
I used to be very critic of the quality, specially since I happen to do reviews of delivered code, but then I also have seen the quality of some internal developers at those customers.
All because selling software isn't their core business, so as long as whatever is running on their servers, desktops, tablets, phones, helps to sell their core products (not software), no one cares one single second about code quality and how it is written.
Just like 99% of people don't care how the goods at their local stores are produced.
> By the way, I actually think that computer programmers are not going to be a white collar job in the long run. Machinists were the programmers of 100 years ago. It was a highly paid job, and can still be one even today. My grandfather had a great job. He was almost a petty bourgeois guy after being a prototype machinist. That’s not true for that job anymore. I actually think software programming will go the same way.