03. From programmers to architects
The Harsh Implication for the Industry
Your point has a sobering corollary: A significant portion of current programmers will become obsolete, not because AI is so good, but because they were never really architects—they were syntax-execution machines.
Consider:
- A developer who learned to code by copy-pasting Stack Overflow answers → replaceable by AI
- A developer who can write CRUD endpoints but doesn't understand database normalization, query optimization, or transaction semantics → replaceable by AI
- A developer who treats code as "stuff that works" rather than "a system with invariants and constraints" → replaceable by AI
But developers who understand systems deeply will become more valuable, because:
- They can design the specs that AI needs
- They can validate AI's work
- They can architect for constraints (scalability, security, maintainability)
- They can collaborate effectively with other developers and AI agents
The Collaboration Problem You Identified
Here's where understanding becomes non-negotiable:
In a collaborative project with humans and AI agents, someone has to hold the shared mental model of the system. That model includes:
- How components interact
- What invariants must hold (data consistency, performance bounds, security properties)
- Why certain tradeoffs were made
- Where the system is fragile
Without understanding, you can't maintain this model. You can't communicate specs effectively because you don't know what's actually important. You can't review AI-generated code because you don't know what "correct" looks like. You can't resolve merge conflicts or design changes because you don't grasp the reasoning.
Understanding is what makes collaboration possible. This is why open-source projects with great documentation and clear architecture attract contributors, while chaotic codebases repel them—even if both are technically functional.
What "Learning Programming" Actually Means (Going Forward)
The content of programming education will shift:
What Won't Matter As Much
- Syntax memorization
- Language-specific idioms and patterns
- Boilerplate construction
- Debugging by trial-and-error
What Becomes Essential
- Data structures and their tradeoffs – Why use a B-tree over a hash table? When does O(n log n) fail you?
- Systems thinking – How do components interact? Where are bottlenecks, races, and failure modes?
- Constraints and invariants – What must be true for this system to work? What could break it?
- Specification and design – How do you communicate intent unambiguously to other agents (human or AI)?
- Correctness verification – How do you know the code actually does what you think?
- Trade-off analysis – Given multiple possible implementations, which fits your constraints (performance, maintainability, scalability)?
In short: from "how to write code" to "how to think about code."
The Real Skill Hierarchy Emerging
I'd propose a three-tier system:
| Tier | Capability | AI Replaceability |
|---|---|---|
| Level 1: Coder | Can write syntactically correct code given clear instructions | ✗ Highly replaceable by AI |
| Level 2: Engineer | Can design systems, spec features, review implementation, debug issues | ~ Partially augmented by AI |
| Level 3: Architect | Can design for unknown future requirements, identify systemic risks, mentor and guide, innovate | ✓ Irreplaceable (AI is a tool) |
The market will compress Level 1 wages or eliminate Level 1 roles entirely. Level 2 and Level 3 developers will become scarcer and more valuable.