Daniel Terhoren North argues that comparing generative AI to junior developers is misleading, as junior developers possess curiosity, learning ability, and accountability, whereas AI tools lack long-term memory and self-assessment, functioning best as task-specific assistants. He advocates for viewing AI as a tool to augment human developers rather than replace them, emphasizing the importance of mentorship for juniors and clear, modular workflows for AI, while cautioning against anthropomorphizing machines.
In this video, Daniel Terhoren North discusses the common comparison between generative AI, particularly large language models (LLMs) and junior developers, expressing confusion over this analogy based on his extensive experience working with junior programmers. He emphasizes that junior developers and AI tools are fundamentally different and that conflating the two does a disservice to both. Daniel outlines the typical characteristics of junior developers, highlighting their conscious incompetence stage where they recognize their lack of knowledge, their curiosity, eagerness to learn, and their ability to remember and build upon what they have learned.
Next, Daniel contrasts this with the behavior of generative AI agents, which he personifies as “Colin the contractor.” Unlike junior developers, these AI agents have encyclopedic knowledge and can perform tasks quickly but lack accountability, care, and long-term memory. They operate on a token-based system where every interaction costs resources, and they often forget instructions or context, leading to inconsistent and sometimes erroneous outputs. Daniel shares anecdotes illustrating the AI’s unreliability, such as mistakenly deleting important files despite explicit instructions not to do so.
Daniel then explores how to manage these two very different “workers.” Junior developers thrive in environments where they can experiment safely, ask questions, and receive actionable feedback, often benefiting from pair programming and mentorship. In contrast, AI agents excel when given small, well-defined tasks with clear instructions and require frequent validation and testing since they cannot self-assess their work. Despite these differences, both benefit from good documentation, modular code, and testing practices.
He also critiques the reasons behind the widespread comparison of AI to junior developers. One theory is that some people treat junior developers as mere transactional workers, expecting them to perform tasks robotically, which is a flawed perspective. Another is that some want to promote the idea that AI can replace junior developers, which Daniel disputes. Instead, he advocates for viewing AI as a tool to augment human work rather than replace human developers, emphasizing the importance of recognizing the unique value and humanity of junior developers.
Finally, Daniel shares his approach to working with generative AI by deliberately avoiding anthropomorphizing it. He uses a “text-based adventure game” style of interaction to remind himself that AI is a tool, not a colleague or person. This mindset helps maintain clarity about the roles of humans and machines in software development. He encourages viewers to reflect on their own experiences with AI and invites discussion, underscoring the importance of treating machines as machines and people as people.