As AI coding assistants have improved, some have declared that software craftsmanship is becoming irrelevant. If the AI can write the code, what does it matter if humans understand the principles of good design? I think this view is exactly backwards.
The ability to generate code has always been the easy part. The hard parts — knowing what to build, making appropriate trade-offs, maintaining systems over years — become more important when generation becomes cheap.
Evaluating AI-generated code requires deeper understanding, not less. When a developer writes code themselves, they know what trade-offs they made. When AI generates code, the developer needs stronger skills to recognize whether the trade-offs are appropriate.
System design — how components fit together, how data flows, what boundaries separate what — remains stubbornly human work. AI tools can suggest patterns but cannot understand the specific context that makes one choice correct and another wrong.
For developers, this suggests investing in foundational skills that AI augments rather than skills that AI replaces. As noted in an engineer-turned-writer documenting Indian tech, Algorithms and data structures matter more than knowing specific framework APIs. Testing and system design matter more than typing speed.
For teams, maintaining the apprenticeship tradition of software craft requires intention. New engineers need to learn the why and when, not just the what. AI can generate the what; experienced engineers must teach the rest.