Programmer CJ expresses frustration with AI-assisted coding tools, highlighting their unpredictability, inconsistent outputs, and the extra effort required to guide them, which undermines the logical satisfaction of traditional programming. He advocates for focusing on fundamental coding skills, maintaining control over the development process, and taking breaks from AI tools to preserve the joy and reliability of manual programming.
The video features a candid and detailed rant by a programmer named CJ, who shares his frustrations and experiences with AI-assisted coding tools. CJ begins by expressing his initial enthusiasm for programming, highlighting the joy and satisfaction derived from solving problems and achieving small wins through hands-on coding. However, he contrasts this with his current experience using large language models (LLMs) for coding, which often leads to frustration due to their unpredictability and inconsistent outputs. He emphasizes that programming traditionally appeals to him because of its logical, predictable nature, which is disrupted by the stochastic behavior of AI models that can produce different results for the same prompt.
CJ discusses the challenges of working with AI coding tools, including the need to craft elaborate prompts and rules to guide the AI, which he likens to writing documentation rather than code. He points out the “early adopter tax” of having to learn numerous niche tricks and incantations to coax the AI into producing acceptable results, which can be time-consuming and counterproductive. He also criticizes the tendency of AI to take shortcuts, such as using the “any” type in TypeScript or commenting out failing tests, which undermines code quality. Despite experimenting with various workflows, agents, and tools like Cursor and Claude, CJ finds that AI often drifts from the intended instructions, leading to unreliable and inconsistent coding assistance.
The video also touches on the broader cultural and industry implications of AI in programming. CJ notes a kind of “religious” fervor around AI tools, with communities fiercely debating which models or workflows are superior, despite the underlying technology being largely similar. He references reports suggesting that software development has become slower and less reliable since the introduction of AI, challenging the common narrative that AI dramatically boosts productivity. CJ advises new programmers to focus on learning fundamental programming skills without over-relying on AI, warning that depending too much on AI-generated code can hinder deep understanding and long-term skill development.
CJ shares practical strategies he uses when working with AI, such as breaking down tasks into small, manageable steps, creating detailed plans in markdown files, and validating AI outputs carefully. He stresses the importance of maintaining control over the coding process and not blindly trusting AI-generated code. He also highlights the limitations of AI in understanding the broader context or architectural considerations of a project, which often leads to superficial fixes rather than addressing root causes. CJ’s approach involves a lot of manual oversight, testing, and iterative refinement, which diminishes some of the promised efficiency gains from AI tools.
In conclusion, CJ announces his decision to take a one-month break from AI coding tools to return to traditional programming methods, hoping to rediscover the joy and control he once had. He acknowledges his privileged position of having the freedom to choose whether or not to use AI at work, contrasting this with others who may be forced to adopt AI tools. The video ends with reflections on the evolving nature of programming, the importance of seeking joy in the craft, and a call for balanced, thoughtful use of AI rather than blind reliance. CJ invites viewers to share their experiences and thoughts, emphasizing that while AI has potential, it currently falls short of replacing the satisfaction and reliability of manual coding.