You Will Know Nothing and You Will Be Happy
There is a thing that happens when you learn to program, or learn to do anything, really, where you spend the first year or two in a state of such confusion that the confusion itself becomes the lattice of your days. You don’t know what you don’t know. The error messages are in a language you haven’t learned yet, and the documentation assumes you already speak it, and every question you ask on Stack Overflow (RIP) gets closed as a duplicate of a question you didn’t understand either. I remember this feeling the way you remember being sick as a child, not the specifics but the general quality of helplessness, the sense that the world has rules and everyone else seems to know them and you are just bumping into furniture in the dark. Though one day, the confusion doesn’t vanish but it changes character, from drowning to treading water, and eventually to swimming, badly, with your head mostly above the surface. The year or two of being useless, of writing code that a senior engineer would delete on sight, of asking questions whose answers seem obvious to everyone but you, is what I want to talk about, because it is becoming the most expensive thing in the economy that nobody is going to pay for anymore.
The activation barrier
In chemistry there is a concept called activation energy, which is the minimum energy required to start a reaction. You can have two chemicals that would react together swimmingly if they ever got going, but without that initial push they just sit in the beaker inert. The metaphor gels well with what is happening to junior engineers right now. The knowledge you build in your first two years was the activation energy. The product was the person who emerged on the other side of it, someone who could look at a system and feel where it was wrong the way a mechanic hears a bad timing belt. But the process of getting there has always looked like waste from the outside, because from a quarterly earnings perspective two years of a junior engineer writing code that gets rewritten and asking questions that slow the seniors down is indistinguishable from a person simply not doing their job. Companies tolerated this because they had no choice. You cannot get a senior engineer without first having a junior one, and so the economics were annoying but non-negotiable.
They are negotiable now. A company can hand an LLM the exact class of problem that junior engineers used to cut their teeth on, the CRUD endpoints and the config file migrations and the test scaffolding, and get it done in minutes without the questions or the mentorship overhead or the two-year ramp. The activation energy that companies used to subsidize, grudgingly, because it was the only path to a competent workforce, has been undercut by a thing that arrives pre-activated and never needs to learn anything because it already ingested the entire internet. The junior engineer’s first two years have been commoditized the way cotton was commoditized after the gin, not eliminated exactly but stripped of the scarcity that made anyone willing to pay for them. This is not just a CS problem. It is happening in law and accounting and journalism and design. Every field has an apprenticeship phase where you are bad at the thing and the only way to get good is to be bad at it for long enough in a context where being bad is survivable, and that context was called employment, and employment is increasingly unwilling to foot the bill.
Efficiency is a closed door
People keep reaching for malice when the actual explanation is worse. Companies are not refusing to invest in junior development out of cruelty. They are refusing because they are efficient, and efficiency and learning turn out to be mutually exclusive. You cannot learn something you already know how to do. Every moment of genuine learning is therefore a moment of genuine incompetence, and incompetence is what efficiency exists to eliminate. So a company that reports quarterly earnings, which is every public company, which is the majority of the economy, has its nervous system wired to stamp out the conditions under which people actually get better at things. This was always true, but the contradiction used to be hidden behind the fact that you needed humans to do the work and humans came with the learning curve attached like an unwanted accessory you couldn’t return separately. Now the work can be done without the human, and the contradiction is sitting in the open.
I wrote before about how we compressed humans into deterministic functions and called it a career. This is the same problem seen from the other end. We built organizations that were structurally hostile to the process of getting good at anything, and it never mattered because the organizations needed bodies and the bodies needed paychecks, so the apprenticeship happened in the cracks. In the spaces between the efficiency metrics. In the bugs that took a junior three days to fix when a senior could have done it in an hour, but the senior was busy and the manager looked the other way because the junior needed to learn and everyone understood that. All of that ambient learning that happened as a side effect of employment is what’s vanishing now. Not because anyone set out to kill it, but because the economic logic that inadvertently kept it alive no longer holds. The machine arrives already knowing how to do the thing, and the cracks close behind it.
The paradox
The knowledge you need to be a senior engineer is built during the junior years. The judgment I keep writing about, that sense of something being wrong before you can articulate why, is not downloadable. It is the residue of having been wrong a thousand times in a thousand small ways, each one leaving a mark on your neural pathways that you can’t see but learn to feel. You get it by writing bad code and watching it break and understanding in your body, not your head, why the abstraction was leaking or why the test didn’t catch what it needed to catch. Polanyi called this tacit knowledge, the kind that lives in the practitioner’s hands rather than in any textbook. Its unfortunate property is that the only way to acquire it is to do the thing badly for a long time. There is no shortcut. A senior engineer is not a junior engineer who read more documentation. A senior engineer is a junior engineer plus scar tissue.
Scar tissue requires wounds. Wounds require a place where it is safe to bleed. That place used to be a job, and jobs are increasingly not interested in letting anyone bleed on company time. So the only people who will cross the activation barrier are the ones who seek it out themselves, building things nobody asked them to build, failing in ways nobody is paying them to fail. And even this is eroding from the inside, because a growing number of the people who do build things on their own are vibe coding them, which we’ve coined as the practice of describing what you want to an LLM and accepting whatever it produces without understanding any of it. Someone vibe codes a side project and ships it and puts it on their resume and feels like they built something, and in a narrow sense they did, a thing exists that did not exist before. But they skipped the part where the thing breaks and they don’t know why and they have to sit with that confusion for hours until it rearranges itself into understanding. They skipped the activation energy entirely. The product shipped but the person on the other side is the same person who started, because the scar tissue only forms if you are the one who bleeds, and the model bled for them. It looks like building but it is actually a very efficient way of staying exactly where you are while feeling like you are moving forward, and I watch people do this constantly and admittedly fall victim to it myself, and I don’t know how to inspire change without sounding like the guy who insists you should churn your own butter.
The people who will develop real expertise in the age of AI are the people who were going to develop it anyway, the ones who were building things in their garage before anyone offered them a paycheck, driven by something internal and probably slightly irrational. The people who needed the structure of a job to learn, who needed mentorship and code reviews and a patient senior engineer explaining why you don’t put business logic in the controller, those people are in real trouble. They are the majority. I don’t have a solution for them that isn’t some version of “care about this enough to do it for free on nights and weekends,” which is both true and monstrous as advice because it assumes a surplus of time and energy that most people do not have. For a lot of people the job was the only context in which they could afford to be bad at something long enough to get good at it. Take that away and you are left with a system that produces two kinds of people: the ones who were obsessive enough to learn on their own, and everyone else. “Everyone else” is a lot of people, and they are not dumber or lazier than the first group. They just needed the thing we have decided is no longer cost-effective to provide.
The rest of the fields
The shape is the same outside of software. A first-year associate at a law firm used to spend months doing document review, the most tedious work imaginable, but in the tedium they learned what mattered in a contract and what didn’t, what a judge would care about and what was boilerplate, and the senior partners tolerated the cost because there was no other way to produce a lawyer who could eventually try a case. Now an AI does the document review in an afternoon and the first-year associate doesn’t get those months. A junior journalist used to get sent to cover school board meetings, the kind of assignment nobody wanted, and they would come back with stories that were badly written but grounded in the reality of sitting in a room and watching people argue about a budget, and the editor would fix the writing and the journalist would learn, slowly, what a story was. Now the outlet can’t afford the junior journalist at all because the advertising model collapsed ten years ago and AI can generate school board coverage from the public minutes without sending anyone anywhere.
Every field that had an apprenticeship model is watching the same thing happen. The bottom rung of the ladder is dissolving, but without it you are just a person with a degree and no scar tissue. Entry-level knowledge used to have value because it was bundled with the person who was accumulating it. The person was on a trajectory that ended at competence. Unbundle the knowledge from the trajectory and it turns out to be worthless on its own, the AI already has all of it. What the AI does not have is the trajectory where you go from knowing nothing to knowing something in a way that leaves marks. The marks are the whole point. The marks are what eventually let you do the work that the AI can’t.
The lag
The senior engineers who exist today were junior engineers five or ten years ago, and somebody somewhere ate the cost of their incompetence long enough for them to stop being incompetent. If you cut the pipeline now, you don’t notice for years, because the seniors are still around and the work is still getting done and everything looks fine on the dashboard. By the time you realize that nobody coming up behind them knows anything, that the bench is empty and has been empty for a while, the drought is already years deep and you cannot fix a years-deep drought with a job posting.
The activation barrier does not go away just because you commoditized the knowledge on the other side of it. The struggle is what produces the person who can use the knowledge, and a model that already has the knowledge is not a substitute for the person but for the work the person used to do while they were becoming the person. The people making the hiring decisions either don’t understand this or don’t care, and I genuinely cannot tell which is worse.