AI Coding Tools are Junior Programmers

August 6, 2025

With the rise of AI coding tools like Cursor, Claude Code, and GitHub Copilot, there is a lot of hyperbole about how AI will soon replace programmers. I have tried all of these AI coding tools, and based on what I have seen, a future without programmers is much further into the future than most of the popular rhetoric assumes.

What the LLM is Actually Doing

LLMs are not actually intelligent. They don’t “think”. They just regurgitate whatever data or code they have been trained on, and are context-aware enough to spit out mostly correct things about topics that you prompt them for.

Still, LLMs and AI coding agents can still be incredibly useful – especially for mundane tasks like creating large forms or other chunks of HTML, or highly repetitive tasks like reformatting data. You just have to be careful with how much you trust their output.

What if a Jr. Programmer Wrote This?

“What if a Jr. Programmer wrote this code?”. This is the question you need to ask yourself, and the underlying assumption you should have after every single interaction with AI code tools. Treat all AI output as if a Jr. programmer wrote it. Assume this “programmer” has very limited real world experience and no deep knowledge of how the code works together in a larger codebase. Look at the code output as if someone just naively copied & pasted the code into your codebase and installed random dependencies that may or may not be necessary.

With every AI output, you should:

  • Double-check and review all code manually and thoroughly
  • Check for bad or erroneous imports (Copilot is especially bad at this)
  • Check for lint errors or type errors
  • Do some basic QA on the end result
  • Run tests (if you have them) – or have AI also write tests against what it just output.

For long-term success using AI coding assistants and agents, you should also:

  • Use TypeScript or another typed language. Good types (not any!) make it much more obvious when AI outputs shoddy code. Types can also give important context hints to AI on how the code should be implemented – what a function should accept and what it should return – that increase the odds of it getting the implementation correct on the first attempt.
  • Setup strict code linting tools (like Biome or ESLint) to prevent things like unused variables and dependencies from being committed into the codebase. This will help to significantly reduce the number of mistakes that make it into your production code.
  • Setup AI code rules for your codebase. These rules provide the AI assistants with helpful context on the way you want your code written, and what technologies and techniques to use. If you work in the same codebase often, good rules and guidelines can help a lot.

Should I use AI Code Tools?

Yes, probably. If you approach AI with the correct assumptions and have the experience to know good output from bad output, you should be able to get a great velocity boost from using AI, while avoiding most of the repetitive and mundane tasks you hate. If you have very little to no experience programming, your experiences with AI coding will be very mixed at best.

AI works best when you give it very small, well-defined chunks of work – just as you would with a brand new employee or Jr. programmer. Instead of trying to “one shot” a project with a single prompt, take it in steps. You would never hire someone and then give them a vague one-time description of what you want. You would guide them through it, step by step, and then verify all their work. If you treat AI coding tools like that, you will have a much higher success rate with the outputs you get.


Tags: , ,

Categories: