There's a ton of work to be done before we get to the stage of AI replacing actual jobs - in the shorter term things like planning/reasoning, working memory and factuality need to be addressed, and to learn to do an actual job then you need online (incremental real-time) learning too. These all need architectural innovation - they are not a matter of scaling up.
Bear in mind that in the 7 years(!) since the Transformer was invented, all we've done is basically a bunch of engineering work to scale them up... The pace of AI improvement may seem fast, but here we are after 7 years with SOTA $100M AIs still struggling to do very basic logical tasks like the recent Twitter A::B 4-rule letter replacement challenge! It seems pretty clear that AI isn't going to be replacing developers any time soon!
You still have to read and validate the code that an LLM emits, and some code will be faster for you to type than it is to prompt,wait,correct,test,adapt etc. It may even help in describing the problem to the LLM, as knowledge of the appropriate language terms will guide the context along the right lines.
And it's also fulfilling to design programming languages, whether general purpose or DSLs, at least in my opinion.
Don't fall for hype, this is not happening. We only got some okay snippet generators and some semi-adequate translators of simple pieces of code, from a limited set of languages to another.
There's nothing else. AI is not replacing programming yet. Or even soon.
You'd have thought they'd at least have cherry-picked an example where "Devin" did something useful, but in fact the Upwork job they set it loose on was just asking for a repository to be updated to build correctly (with latest tool versions), and Devin ignored this and went and introduced a bunch of bugs by making coding changes .. and then came back and fixed it's own bugs! (See Yannic Kilcher YouTube channel).
This tells me that anyone asserting what you said is either 1) not a developer, 2) taking buggy code at face value, or 3) taking 10x the time it would take an average developer to patiently guide the LLM to a working solution.
I think pipeline_peak's remark is unwarranted, but we probably should be trying to look ahead a number of decades (depending on how long you have left in your career) rather than only considering what's possible with today's LLMs. Two years ago, before ChatGPT and DALL-E 2, many would've considered what's being done now with generative AI as infeasible.
But even with current LLMs, I've been surprised at GPT-4 Turbo's ability to produce working scripts for problems that, though maybe not the most challenging, weren't entirely trivial. I'd speculate there are a number of useful tasks within the LLM's capacity and just needing a good integration. Maybe Microsoft releases a designer tool that allows creating static company websites, iterating based on client prompts and the model's vision capability, for example.
If you came to programming because you liked computers you'll find building an interpreter a fascinating topic in its own right. Building a compiler frontend is comprehensible and reading a modern/practical textbook (e.g. based on ANTLR or whatever is the latest parser generator in the wild) will illuminate so much for you.
You're highly unlikely to find a job with this skillset though. There are very few companies that do it, very small core teams, and there's competition with PhDs from top tier schools. The current leetcode fashion will ignore your niche knowledge right off the bat. So from this perspective the utility of knowing this stuff has always been a grey area regardless of the AI.
If you like money more than you like computers surely aim for an MLE position instead of SE/DE. But that's kind of a selective club too I imagine.