The Dangerous Illusion of AI Coding? - Jeremy Howard
Summary
- Howard argues that LLMs can synthesize enormous amounts of remembered material yet collapse abruptly outside their training distribution. They “cosplay understanding” effectively inside a supplied frame, but novel R&D exposes a discontinuity where the model becomes “worse than stupid.” The capability is economically substantial, but it remains interpolation across a vast corpus—not dependable extrapolation.
- AI can write most of an expert’s code without automating most of software engineering. John Carmack says a model now types perhaps 90% of his code, yet says this has not made him dramatically more productive because typing “was never the slow bit”; Howard argues that decomposing novel systems into understandable components remains the scarce skill, and LLMs are “really bad at software engineering.”
- Perceived coding leverage is running far ahead of measured production output. The host feels roughly 50 times more productive alone with Claude Code, while Howard says their study found only a “tiny uptick” in high-quality software actually shipped; the METR result was more damning because developers believed productivity rose when it had fallen. That gap challenges unemployment forecasts extrapolated from elite, AI-native teams.
- AI coding behaves like a slot machine because prompting creates an illusion of control around stochastic rewards. Users adjust prompts, MCPs and skills, “pull the lever again,” and receive occasional features that disguise accumulated losses; both speakers describe exhausting 14-hour sessions, while Howard says much of the resulting work is neither used by customers nor generating money.
- Companies optimizing AI output may improve today’s intercept while destroying tomorrow’s slope. Delegating cognitive work can erode the shared mental models, design judgment and domain feedback through which organizations adapt; Howard warns that teams accumulating opaque code and “understanding debt” may eventually become unable to maintain their own products.
- The bull case is strongest for small, constrained components under genuinely expert supervision. Automation can remove bounded cognitive burdens—as lung-nodule detection freed radiologists to assess malignancy—but Howard’s AI-assisted, 5,000-plus-line IPython-kernel fix produced uniquely functional code that nobody understands, leaving unanswered questions about memory leaks, protocol changes and whether to bet a company on it.
- Howard sees interactive, stateful environments as a more defensible human-AI interface than autonomous agents. In SolveIt and nbdev, people and models manipulate live objects, inspect feedback and build tools for one another; he reports leaving sessions “energized and happy and fulfilled,” versus the disconnection encouraged by assigning an entire repository to a terminal agent.
- Howard’s primary AI-risk model is concentrated human power, not autonomous extinction. Even if AI becomes extraordinarily powerful, centralizing it in one company or government would create the easiest target for power-seeking actors; with today’s systems, his most immediate concern is people “enfeebling themselves,” while surveillance and privacy risks largely extend problems already created by governments and large technology platforms.
Deep dive
1. ULMFiT made general-purpose pretraining transferable
Howard’s premise behind ULMFiT was that the pretraining corpus had to be general-purpose. Quoc Le and Andrew Dai had explored related ideas earlier, he said, but missed that load-bearing condition; Wikipedia supplied the breadth needed for a language model to learn reusable representations rather than one narrow domain.
The starting architecture was Stephen Merity’s AWD-LSTM, whose extreme flexibility was controlled through five kinds of regularization. Howard rebuilt the Wikipedia dataset to remove assumptions from classical NLP—including unknown-word tokens—then trained overnight for roughly eight hours on a gaming GPU, “probably like a 2080 Ti or something.”
The workflow already resembled today’s three stages: pretrain on Wikipedia, spend about an hour adapting to movie reviews, then fine-tune a sentiment classifier in minutes. On a difficult benchmark involving roughly 5,000 movie reviews, that final step beat results produced by highly specialized models that had occupied entire PhDs.
Fast.ai’s fine-tuning recipe trained the last layer first, gradually unfroze earlier layers and assigned discriminative learning rates because layers behave differently. Howard also stressed an overlooked detail: batch-normalization layers must be adapted because they shift and rescale the network; for ULMFiT, the last two layers nearly reached state of the art in seconds.
2. Inspection and intuition beat treating training as a mystery
Howard conceded that fine-tuning can damage general representations, but said the danger is overstated because practitioners rarely inspect activations or gradients. Fast.ai exposed an at-a-glance view of the whole network, making dead neurons, runaway behavior and the layer where training failed visually recognizable rather than mysterious.
His research method diverges from an ablation-first culture: after building intuition for gradient behavior, “nearly everything that I expect to work almost always works first time.” The ULMFiT techniques emerged from trying plausible interventions—layerwise rates, progressive unfreezing and normalization updates—then watching what the system actually did.
In discussing specialization, the host argued from human learning that learning a new related task need not mean unlearning another, and said models trained on two somewhat similar tasks “almost always got better at both” than models trained on either alone.
3. Prediction compresses text into hierarchies of abstraction
Howard traced ULMFiT back to earlier vision transfer learning and self-supervised pretext tasks: mask parts of a histology slide and reconstruct them, then carry the same logic into language. A general ImageNet model had already achieved state-of-the-art results on sculpture and architectural-style tasks; researchers simply failed to imagine the mechanism transferring to language or genomics.
His foundational claim was that accurate next-word prediction requires nested concepts. Predicting a sentence about a 1956 presidential veto entails more than recalling a name: the model needs abstractions for presidents, leaders, social hierarchies, people and objects, compressed into “hierarchies of abstractions somewhere deep inside its model.”
Howard hypothesized that this produces useful functional knowledge, but not uniformly deep understanding. He described LLMs as systems that “cosplay understanding things”: the distinction between simulated and genuine intelligence is irrelevant while the performance holds, then becomes glaring when the model leaves its familiar region and suddenly cannot respect basic premises.
4. LLM creativity is vast interpolation with a hard boundary
Howard resisted the blanket statement that LLMs are not creative. Piotr Wozniak’s theory that creativity grows from remembering and recombining many things fits what models do well, and composing across almost the entire human textual corpus can yield remarkably original-seeming results.
The boundary is extrapolation: outside the training distribution, a fitted function can “disappear off into space in wild directions,” just as a curve behaves beyond observed two-dimensional data. Howard encounters that failure daily in R&D, where a model can switch instantaneously from brilliant to unusable and further dialogue becomes pointless.
The Anthropic C compiler written in Rust was the concrete dispute. The host emphasized its test scaffold and autonomous critic loop; Howard replied that existing software already shows how to pass those tests, while translating familiar compiler structures into Rust is “a style transfer problem.” He said the repository even reproduced idiosyncratic LLVM choices Chris Lattner now considers mistakes.
5. Coding automation does not imply software-engineering automation
Howard rejected Dario Amodei’s extrapolation from Anthropic’s engineers to mass developer unemployment, as well as Elon Musk’s suggestion that models could emit machine code without languages or libraries. Both confuse software engineering with “typing code into an IDE,” while coding itself is largely specification-to-syntax transformation.
Fred Brooks’s “No Silver Bullet” had answered an earlier version of the same claim about fourth-generation languages. Brooks estimated at most a 30% improvement over the following decade because code entry was never the essential difficulty; Howard thinks the argument survives even without that time limit.
Although a model may type roughly 90% of John Carmack’s code, it has not made him proportionately more productive. Whenever he asks one to design something not repeatedly designed before, it returns a superficially similar architecture—the exact pattern he is trying to escape—and that resemblance can conceal “an absolute disaster.”
6. Delegation can hollow out the organization that adopts it
The host’s organizational warning was that knowledge is embodied, perspectival and maintained through people, not stored frictionlessly in Wikipedia or code. Delegating cognitive tasks therefore creates a paradox: apparent output rises while the organization loses the shared understanding required to diagnose edge cases, revise processes and evolve.
The host also argued that unused engineering muscles do not grow and may wither. Mastering today’s prompts, skills or AI CLI frameworks is “ephemeral knowledge,” comparable to memorizing an AWS API without understanding the internet; a research startup whose staff stop developing deeper capability will ultimately fail.
Howard’s automation counterexample came from his 2014 medical-AI work. Reliably detecting possible nodules in lung CT scans did not deskill radiologists; it removed a genuinely automatable burden so they could concentrate on malignancy and treatment decisions. The criterion is whether automation preserves expert engagement with the judgment-bearing part.
Current coding benefits look barbelled: complete novices can turn small ideas into working applications, while people with decades of experience can delegate typing and research. Howard worries most about developers with roughly two to 20 years’ experience: without writing substantial code, “how do you get from point A to point B?”
7. Expertise requires friction, not frictionless completion
The host called low-friction delegation “understanding debt”: reality normally pushes back, errors force revisions and repeated constraint-setting builds a mental model. An Anthropic learning study reportedly found that a minority asking conceptual questions continued learning, while most users learned little because task completion had become too easy.
Howard connected that result to “desirable difficulty.” Spaced-repetition systems such as Anki and SuperMemo deliberately schedule recall near the point of forgetting, when retrieval is exhausting but memory formation is strongest; after studying Chinese that way for 10 years, he retained it despite more than 15 years without serious study.
Inside his company, Howard cares less about PR or feature counts than whether human capability is growing. Borrowing John Ousterhout’s phrase, “A little bit of slope makes up for a lot of intercept”: maximizing whatever AI can deliver today may raise current output while putting both workers and the company on “a path to obsolescence.”
8. The slot-machine experience inflates perceived productivity
The host reported feeling perhaps 50 times more productive with Claude Code when working alone in a domain he understands and can specify precisely. Howard’s response was empirical: “No one’s actually creating 50 times more high-quality software,” and their study found only a “tiny uptick” in what teams actually shipped.
Rachel’s gambling analogy supplied the mechanism. Prompts, MCPs and skills create a feeling of agency, but the user ultimately pulls a stochastic lever, tweaks the prompt after a miss and pulls again; intermittent features become “loss disguised as a win,” mirroring incentives deliberately engineered into gaming rooms.
Both speakers had experienced 14-hour Claude Code marathons and the drained aftermath. Howard said many early enthusiasts changed their view only after asking how much of that burst of output remained in use, served customers or made money: “Almost all the money is being made by influencers” or token providers.
9. The IPython-kernel success exposed a new ownership problem
Howard’s strongest success involved the IPython kernel’s version 6-to-7 transition, which caused both Jupyter Notebook Classic and his SolveIt product to crash randomly despite passing tests. The codebase exceeded 5,000 lines and crossed threads, event loops, IPython, ZMQ and debugpy—too much for him to understand quickly.
In roughly two hours, Codex 5.2—or possibly 5.3; Howard was unsure which had just appeared—could not solve it, while the $200-per-month GPT-5.3 Pro could fix failures. Alternating between the models over about two weeks eventually produced what he believes is the only Python Jupyter kernel correctly implementing the Version 7 protocol changes.
The victory left him stressed rather than confident: “Here’s a piece of code that no one understands.” He cannot answer whether it leaks memory, survives a minor protocol change or hides a catastrophic edge case, and therefore does not know whether to bet his company’s product on it.
Tests were insufficient because the original IPython-kernel team’s suite had already passed while real downstream products failed. Howard concluded that the IPython kernel was simply too large a unit; the development focus should be on identifying smaller, intelligible components with behavioral boundaries that can actually be exercised.
10. Component design becomes more valuable as generation gets cheaper
The host offered a functionalist bull case: perhaps implementation details no longer matter if experts understand the domain and comprehensive tests establish correct behavior. Howard welcomed the framing because it makes software engineering—not code generation—even more central: someone must discover the right pieces, define their contracts and compose them into larger systems.
Recognizing those abstractions took Howard perhaps 20 years of experience. He sees no established path for developing that judgment without extensive hands-on construction, precisely when organizations are encouraging intermediate developers to delegate it.
Howard disputed the idea that incomprehensible, distributed systems represent software engineering’s natural summit. Small teams at Instagram and WhatsApp beat much larger incumbents, while Windows and macOS quality visibly deteriorated over five to 10 years; he contrasted Windows 11 with the NT kernel era, when Dave Cutler scrutinized every line.
11. Stateful human-AI environments preserve contact with the work
Howard’s preferred model descends from Smalltalk, Lisp, APL, Mathematica and the notebook: humans manipulate live objects, inspect them and build understanding through immediate feedback. His nbdev system brings production development into that environment, and he says GitHub statistics put him about the most productive programmer in Australia despite never working as a full-time programmer.
SolveIt places the human, AI and computer inside a Python interpreter, where each can inspect state and build tools the others immediately use. Howard contrasts that with Claude Code’s line-oriented terminal and text-file interface—powerful, but conceptually close to an environment from 40 years ago.
The host pushed back that skilled Claude Code users can create equivalent feedback loops, visualizations and discriminative subagent checks. Howard partly agreed but rejected framing the default failure as a “skill issue”: if a tool does not naturally leave users more knowledgeable, connected and capable, “that’s a tool problem.”
12. Exploratory programming can still ship disciplined software
Joel Grus’s amusing “I Don’t Like Notebooks” talk argued that notebooks undermine reproducibility and software engineering. Howard answered with “I Like Notebooks,” reusing Grus’s slides with credit to show that the claimed limitations were not inherent; the real dichotomy is between living exploration and conventional development built around “dead code, dead files.”
The host retained the practical objection: cells can run out of order, Git diffs can be poor, and production still requires CI/CD and repeatable artifacts. Howard’s answer was to repair the tooling: nbdev includes CI integration, while notebook-aware merge drivers and nbdime provide cell-level diffs and conflicts without abandoning the interactive medium.
Howard’s deeper claim is that exploration improves correctness. Implementation, examples, documentation and tests can inhabit one executable place, while tiny working increments expose behavior continuously; he says he rarely needs a debugger because each step is inspected before the next one exists—“there’s no room for bugs.”
13. Concentrated control is Howard’s durable AI-risk thesis
Revisiting his rebuttal with Arvind to the existential-risk statement, Howard said the community had “probably won” the earlier argument that autonomous AI could imminently destroy the world. The host compared the unfalsifiable postponement to a doomsday cult unless a date is given, while Howard said he had updated to view models as intelligent in restricted, well-constrained domains.
Howard’s argument did not depend on denying future power: even if AI becomes extraordinarily capable, concentrating it in one company or government is the worst response. The host compared democratizing AI to historical struggles over writing, printing and voting, where incumbents invoked misuse to defend exclusive control.
With present technology, Howard’s leading concern is people “enfeebling themselves” by ceasing to become competent. Privacy and surveillance remain serious—he cited Palantir and earlier data brokers such as ChoicePoint and Acxiom—but AI mainly makes exploitation easier for already well-resourced organizations rather than originating the underlying imbalance.