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...
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.
>> Anyone can do programming. That's not really that impressive.
You're completely right, but just because anyone can doesn't mean it's unimpressive. (It does make it 'not valuable').
It's like cooking. Anyone can do it. Lots of people do. Some (maybe the majority if you include men and children) never learned how. A home cook can be exceptional but apart from the obvious (feeding the family) it's a skill that is hard learned with little value.
Of course frozen meals were designed to replace home cooking decades ago (hint; that never happened. ) And just because people can cook, doesn't mean they can (or should) open a restaurant. (The restaurant business is only lightly dependent on cooking.)
The analogy holds in programming. A good programmer is impressive for getting on the ladder. But making it in the software world requires lots of non-programing skills.
Put another way, yes programing is impressive (looking from below) but is only one step on a tall ladder. As you say, there's design, development, architecture, documentation, communication, refinement - all critical to a product's ultimate success.
AI is on the first rung of the ladder. And in many ways thats a very impressive step. And maybe it'll climb a bit higher. But looking down, it has a long long way to go before it replaces me :)
Yeah exactly. The expert chef is an experienced systems architect. He’s not a noob lol and of course he can cook. And there’s more to it. That’s why he is expert.
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/
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.
Social aspects & things not only specific to a given language ecosystem / hardware. aka things allow one to adapt to changing tech scene / job situtation without complete 're-learn theory/practice'. (assuming within same area of expertise/job experience).
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...
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.
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?
>> Anyone can do programming. That's not really that impressive.
You're completely right, but just because anyone can doesn't mean it's unimpressive. (It does make it 'not valuable').
It's like cooking. Anyone can do it. Lots of people do. Some (maybe the majority if you include men and children) never learned how. A home cook can be exceptional but apart from the obvious (feeding the family) it's a skill that is hard learned with little value.
Of course frozen meals were designed to replace home cooking decades ago (hint; that never happened. ) And just because people can cook, doesn't mean they can (or should) open a restaurant. (The restaurant business is only lightly dependent on cooking.)
The analogy holds in programming. A good programmer is impressive for getting on the ladder. But making it in the software world requires lots of non-programing skills.
Put another way, yes programing is impressive (looking from below) but is only one step on a tall ladder. As you say, there's design, development, architecture, documentation, communication, refinement - all critical to a product's ultimate success.
AI is on the first rung of the ladder. And in many ways thats a very impressive step. And maybe it'll climb a bit higher. But looking down, it has a long long way to go before it replaces me :)
Yeah exactly. The expert chef is an experienced systems architect. He’s not a noob lol and of course he can cook. And there’s more to it. That’s why he is expert.
> Anyone can do programming.
Definitely not my experience
Debugging. No matter what’s created and how it’s created it will have to be debugged.
This. With AI, debugging corner cases and really odd bugs is already getting more essential every day.
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.
Look what mattered 10 years ago, reflect on that, and draw your own conclusions.
Um... we went from jQuery to a chatbot that can draw hands?
Should I give up React and learn to draw feet?
Not programming, but:
Requirements gathering. System Analysis. System Design. Engineering.
Will all matter the same as they do now.
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/
High level stuff: design, guidance, review etc.. but you can't get good at those without first coding a lot ¯\_(ツ)_/¯
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.
All of them.
Social aspects & things not only specific to a given language ecosystem / hardware. aka things allow one to adapt to changing tech scene / job situtation without complete 're-learn theory/practice'. (assuming within same area of expertise/job experience).
All of them.