I’m kicking off a new course titled Tactical Agentic Coding that’s aimed at experienced developers looking to level up their AI-assisted engineering work. The overall goal of the course is to get engineers to stop writing code and instead learn to master the new coding environments, such as Claude Code and OpenAI Codex.
The creator of the course really stresses the fact that writing code by hand is a thing of the past and that the quicker we can internalize this, the faster we can evolve to the next level of what software engineering is becoming. I largely agree with this. Writing code was never an end state in itself for me—it was always a way to build things that I wanted in the world. Throughout my career I was never a true designer or a true engineer. I learned the skills of design and engineering because they helped me build products and experiences. I never fell in love with writing lines of code or moving objects around in Photoshop and Figma. These were just a means to an end. And with the advent of generative UI, it’s ushering in a new era of how we build software.
Previous models such as GPT-4 and Claude Sonnet 3 excelled at writing specific functions and tests, but fell short of being able to operate on their own. The latest models have shown increasing capabilities of moving beyond writing functions into full-blown coding partners. AI coding was phase one; agentic coding is the start of phase two and will enable software creators to evolve into the next phase of creation.
The idea behind agentic coding is to move beyond AI-assisted coding into a higher level where we are directing teams of agents. And while I was hesitant about dropping writing code by hand, the output from the latest models quickly persuaded me that I need to stop acting like John Henry battling against automation. We can begin to evolve our human outputs into planning, reviewing, and creating closed-loop systems that allow our programs to improve themselves while we continue to operate at a higher level.
AI coding excelled when you mastered and controlled three domains: model, context, and prompt. Agentic coding adds a fourth domain to this that brings a great deal more power to what we’re able to accomplish: reliable tool calling. Tool calling can be thought of as the model’s ability to call an arbitrary set of tools to accomplish its goals, such as searching the web to look up API documentation, writing temporary scripts to view and edit a database schema, and much more. The ability for the model and IDEs such as Claude Code to call tools allows our agents to run for minutes and sometimes hours on a specific problem. This allows us to work on multiple features, or even independent apps, in parallel.
I’ve been heavily invested in AI-assisted coding ever since GitHub Copilot was released and rarely write code by hand these days. So I’m looking forward to seeing how far we can take this idea and begin to create systems that can manage themselves while still providing human oversight and direction.
This contradicts another area of coding that I’m also keeping my eye on. Jeremy Howard of fast.ai fame has recently opened up another cohort of his How to Solve It with Code course starting in November. Jeremy’s philosophy is that AI coding can only get us so far and that we quickly lose the script when we rely on AI to write all of our code for us. He definitely has some valid points, as the Spellbooks app is awash in dead code and code that can be refactored into something leaner and more performant.
So while my money is invested in agentic coding, I’m still keeping a close eye on Jeremy’s methods. His next cohort for Solve It with Code starts in November, and I’m seriously thinking of signing up. I figure if I invest in each, then I might get the best of both.