Will there be mass redundancies?
What would a programmer's job look like, if there's a need for programmers at all?
What skills do you think would be in high demand?
When I began my career, it was important to understand machine language, because compilers were not smart enough (and computers did not have the horsepower to run compilers that would be smart enough) to generate maximally efficient code. Every performance-critical loop therefore featured a nugget of hand-written assembly code, because that was the only way to build usable production software.
But then... there were rapid advances in processor speed, and memory capacity, and compiler technology; suddenly, all those assembler skills became obsolete, because you couldn't beat the compiler anymore. Automation ate the whole problem. What happened? Mass layoffs? Hell no! Programmers just moved on up to the next level of abstraction, and kept on solving problems: newer, more interesting problems.
Repeat, and repeat, and repeat: that's how the industry works.
The programmers of the future will look more like directors or managers today. Just like a director tries to bring out the best from a skilled actor, an AI-integrated dev needs to properly understand the nuances of the AI they're working with. They don't need to know ML, but they do need to understand the differences in personality between, say, GPT-3 and GPT-J.
The other skill would be communication. Newbies talk to AI like they're talking to some kind of oracle. They assume the AI understands without context. A common mistake is something like assuming the AI understands sarcasm without knowing that it's from a source that would be sarcastic. I've often said that you have to talk to it like you'd talk to a child. Teachers often put a lot of effort into explaining things better.
You can ask it to write generic "email validation code" easily. What's harder is questions like "build it to this architecture" or "this code is doing X, make it do Y instead". You tell it the steps to reproduce the bug, the conditions that make the bug happen, the expected results and the actual results. So it's still the same skillset used today but you can't get away with being a "good dev who can't work with others" anymore.
My guess is this will literally NEVER be a thing.
IANAMLE (I Am Not A Machine Learning Expert) but the software we're building today will still be relevant in 10 years. It's hard to say where ML will be in 10 years, but I doubt it will replace most programming jobs.
I don't see any difference here. Same has happened before:
- programmers who were punching cards
- programmers who were writting assembly
- programmers who were writting C code
- programmers who are wiring SAAS APIs together
- programmers who are reviewing AI code
- etc.
Someone still needs to write the prompts.
It’s next level of abstraction.
What happens with the 1500 lines of code the AI spits out? Is it merged in and rigorously tested? What happens if there's an error? Start over?
I'm just not really seeing how it'll work.
As an adjunct, a tool to make a programmer more efficient, I see a thousand ways it could help. But that doesn't reduce the demand for programmers. It makes them more valuable.