why i still learn how to code from first principles
2025-11-24·4 min read
Sam Altman said coding as a career is probably over. Dario Amodei said AI will write virtually all code within a year. Half my LinkedIn feed is people posting AI-generated apps they built in a weekend with zero lines written by hand.
And I'm here doing Full Stack Open exercises, manually wiring up useEffect and axios, debugging why my db.json is in the wrong directory. Before that it was The Odin Project. Before that, Traversy Media and Web Dev Simplified on YouTube, Udemy courses, Frontend Mentor challenges — building the same todo app four different ways trying to understand why it works.
I've thought about why I keep doing this.
the slop problem
Most AI-generated software right now is slop. It works until it doesn't. It looks complete until you push it to production. It solves the demo but not the edge case, not the failure mode, not the thing that happens at 2am when a user does something unexpected.
I think the reason for that is the person directing the AI doesn't have a mental model of what's actually happening underneath. They're prompting based on vibes. The output reflects that.
When I wire up an axios call manually, I see the Network tab. I see the pending promise, the fulfilled response, the 401 when the API key isn't activated yet. I build a map in my head of how data moves — from user input, to state, to HTTP request, to server, back to state, to the screen. That map exists whether I'm writing the code or prompting an AI to write it. Without it, I can't evaluate whether what the AI gave me is correct.
The fundamentals aren't the code. They're the map.
And you don't build that map by skipping the exercises. I built it by doing Frontend Mentor challenges until flexbox stopped being a mystery. By getting stuck on The Odin Project's JavaScript section for two weeks. By watching Traversy break down the same concept three different ways until one of them clicked. That's not nostalgia — that's how the map gets drawn.
first principles or ego
I'll be honest — I don't know how much of this is genuine conviction and how much is ego.
There's a version of this where I'm just attached to the idea of being someone who really understands things. Where "learning from first principles" is a story I tell myself so I feel better about being slower than someone who just ships with AI.
Maybe that's part of it. Probably is.
But I also think there's something real here. The engineers I respect most — the ones building things that actually hold up, that scale, that don't collapse under pressure — they have deep models. They know why things work, not just that they work. AI doesn't give you that. Doing the exercises does.
what i actually think will happen
I don't think coding as a skill becomes worthless. I think coding as a task becomes cheaper. Those are different things.
The task of writing a for loop, setting up a CRUD API, wiring a form to a backend — AI handles that well now. Fine. But the judgment of what to build, how to structure it, whether this architecture will hold, what this error actually means — that still requires someone who has done the thing manually enough times to have intuition.
You can't develop that intuition by reading about it or prompting your way through tutorials. You develop it by doing it wrong, fixing it, and doing it again. Full Stack Open, The Odin Project, the random Udemy course at 1am — that's what those resources are for. Not because the content is irreplaceable, but because the repetition is.
So I'm still doing the exercises. Not because I think it makes me irreplaceable. Because I think it makes me better at the part of the job that actually matters.
I could be wrong about all of this. The rate of change is fast enough that anything I believe today might be obsolete in six months. But right now, this is the bet I'm making.