It's tough to say because we definitely have created an exoskeleton with AI. We would need to tell a society with ubiquitous exoskeletons to mindfully exercise their body so it does not atrophy. The exercise you would get hiking will never translate to core body strength with the exoskeleton on. Likewise, core body strength would only have ambiguous value since everything would be done with an exoskeleton regardless since it's simply better. For programming specifically, you can already see it with Leetcode. Which of the Leetcode problems really matter and why for most work? Few for most us, but whoever is deciding what is important will decide what it is important. Google for example decides which Leetcode problems are important and they will decide in the future in the same way. It will have nothing to do with the reality of the day to day.
This is a very long-winded way of saying gatekeepers gonna gatekeep.
Probably software design and architecture.
Anyone can do programming. That's not really that impressive.
Writing/organizing/evolving software so it scales along with the organization (note: not speaking about performance here) is super important.
How will the software be built/maintained/deployed when there are dozens of orgs, each with dozens of teams and sub-teams?
Debugging. No matter what’s created and how it’s created it will have to be debugged.
Writing original software. For example: building a new tool from scratch to solve a valid problem that real people have. Most developers cannot do that without tremendous help and a bunch completely unnecessary abstractions.
Measuring things. For example determining performance harms and improvements from new features or determining trend shifts during a defined duration.
Accessibility, security, transmission, and operations.
Requirements analysis.
Visual design, user experience, and information architecture. I mean actual product design and not just using a tool/framework to put text on screen.
Impedance matching - In RF design, the maximum power is transferred to the load when it's impedance matches that of the source. Your job as a programmer isn't actually the churning out of code, it's the matching of the human and corporate specified requirements (and the subtle errors therein encoded) against what's actually possible to do with code, regardless of the source of said code.
High level languages, debuggers, etc... are all tools to aid in matching your impedance to that of the computer, etc.
Not programming, but:
Requirements gathering. System Analysis. System Design. Engineering.
Will all matter the same as they do now.
Look what mattered 10 years ago, reflect on that, and draw your own conclusions.
Sprinklers. Have you ever tried to program the timers on one? They're hell!
But after the AIpocalypse, it's only the not-yet-sentient sprinklers that will still be willing to water our few remaining crops and feed us.
It's going to be more about engineering. We don't need to know how transistors work to make a website. But moving forward, you do want to know patterns like repositories. You want to know terms like "decompose a conditional" - most programmers already decompose conditionals, they just don't know what it's called because we never had to use the term. AI knows all the term, use the language. AI is also amazing with stuff like DDD, and I find that when working on some creative work, I might ask it to just break down a concept into ubiquitous language and such.
And let's say AI does all the programming for us, but engineers are there to know what can be programmed and what couldn't. Engineers are there to prevent business from trying to make flying submarines.
Basically engineers are the girl in front of the computer who can answer this question: https://xkcd.com/1425/
All of the current skills that are relevant.
All of them.
High level stuff: design, guidance, review etc.. but you can't get good at those without first coding a lot ¯\_(ツ)_/¯
All of them.
[dead]
Well, software design and architecture are the big ones. Programming a system in its most basic sense is pretty easy, while structuring it so it's understandable and easy to maintain is a whole 'nother story. If you need a great example of what happens when you don't have that... well, look at any 'vibe coded' product going viral on social media. The creators have no idea what their tools are doing and no plan for anything going forward, so are drowning under a pile of auto generated code they have zero understanding of.
Feels like software security knowledge will probably remain relevant for a while too. It's all well and good getting an LLM to code the system, but without any idea of what exploits are being used against that language/framework/software as a whole, you're almost certainly going to get hacked at some point or another.
But to be honest, I'd also programming in general will still matter in 10 years, especially for more niche domains. Yes, stuff like Claude can throw together apps and programs in JavaScript or PHP or Python, but they don't have training material for every language or domain. If you're not working as a web developer, then things probably aren't going to change as much as you think they will...