Jeremy Howard argues that current AI coding tools, like large language models, often give the illusion of productivity but lack true understanding, leading to risks such as technical debt and loss of human expertise. He emphasizes the importance of interactive, feedback-driven programming environments to maintain genuine learning and creativity, warning against over-reliance on automated code generation.
Jeremy Howard, a deep learning pioneer and advocate for interactive, exploratory programming, discusses the current state and challenges of AI-assisted coding, particularly with large language models (LLMs). He draws a sharp distinction between coding—generating code from prompts—and true software engineering, which involves deep understanding, design, and abstraction. Howard argues that while LLMs can generate code and even help automate certain tasks, they often only “cosplay” understanding and lack genuine insight or creativity, especially when asked to move beyond their training data. He likens AI coding tools to slot machines, providing an illusion of control and occasional wins, but ultimately leaving users disconnected from the underlying systems.
Howard is critical of the prevailing narrative that AI will soon automate most software engineering jobs, as suggested by tech leaders like Dario Amodei and Elon Musk. He points out that empirical studies show only a small uptick in actual productivity from AI coding tools, and that most of the perceived gains are illusory or limited to very specific, well-understood domains. He warns that organizations betting their futures on AI-generated code risk accumulating technical debt and losing the internal knowledge necessary to maintain and evolve their products. This, he argues, could lead to organizational fragility and eventual failure.
A central theme is the importance of interactive, feedback-driven environments—such as notebooks and REPLs—for both learning and building software. Howard traces the lineage of these tools from Smalltalk and Lisp to modern Jupyter notebooks, emphasizing how they allow programmers to “poke at a problem until it pushes back,” thereby building intuition and understanding. He contrasts this with the more static, production-oriented workflows favored in traditional software engineering, which he finds dehumanizing and counterproductive. Howard’s own work, including the development of NBDev, aims to bridge the gap between exploratory programming and robust software engineering.
Howard also addresses the educational and cognitive risks of over-reliance on AI coding tools. He notes that when humans delegate too much to AI, they risk losing the “friction” necessary for learning and skill development—a phenomenon he calls “understanding debt.” He draws parallels to other domains, such as radiology and call centers, where automation can either free up human expertise or erode it, depending on how it is implemented. The key, he argues, is to design workflows that keep humans engaged in meaningful, growth-oriented tasks, rather than relegating them to passive overseers of AI output.
Finally, Howard touches on broader societal and philosophical issues, including the dangers of centralizing AI power in the hands of a few companies or governments. He is skeptical of existential risk narratives that call for heavy-handed regulation or centralization, arguing instead for democratized access and the cultivation of human expertise alongside AI. Throughout the conversation, Howard’s mission remains clear: to promote tools and practices that foster genuine understanding, creativity, and collaboration between humans and machines, rather than replacing human insight with opaque, automated processes.