Lesson 1 of 32
What Is an AI Coding Agent
The difference between autocomplete, a chatbot and an agent — what Claude Code can actually do to your machine, and how that changes what your job becomes.
You have probably used an AI coding tool already. Autocomplete that finishes your line, or a chat window you paste an error into. Claude Code is a different kind of thing, and starting with the wrong mental model is the main reason people get poor results from it.
This lesson is about what that difference actually is.
Three generations of the same idea
It helps to see where this came from, because each step solved a problem the last one had.
Autocomplete
Suggests the rest of the line or block as you type. It sees your file and guesses what comes next. Fast and low-effort, but it only ever helps with the thing you were already doing, one line at a time.
Chat
You describe a problem in a side panel and get code back. It can handle bigger questions, but it cannot see your project unless you paste it in, and it cannot run anything. You are the courier between the answer and your machine.
An agent
You describe a goal. It reads your files, edits them, runs your tests, reads the failures and tries again — until the goal is met or it gets stuck. You are no longer the courier.
The jump that matters is the last one, and it is not about the model being cleverer. It is about tools. A model with no tools can only produce text. Give the same model the ability to read a file, write a file and run a command, and it can participate in your project rather than commentate on it.
What that looks like
Here is a small, ordinary task. Read the annotations rather than the syntax — none of this is anything you have to memorise yet.
You typed: The date on each blog card shows the raw timestamp. Make it read like '11 August 2026'.
Claude ran: Search: blog card date
Claude ran: Read components/blog/blog-card.tsx
WhyNobody told Claude which file to open. It searched the project, found the component and read it. This is the part a chat window cannot do, because it has no access to your project.
Claude replied: The card renders post.publishedAt directly. I'll format it with Intl.DateTimeFormat and add a test.
Claude ran: Edit components/blog/blog-card.tsx
Claude ran: Run: npm test blog-card
Output: FAIL blog-card.test.tsx expected '11 August 2026', received '11 Aug 2026'WhyIt got it wrong. This is the interesting moment — watch what does not happen next. It does not stop and ask you to paste the error.
Claude ran: Edit components/blog/blog-card.tsx
Claude ran: Run: npm test blog-card
Output: PASS blog-card.test.tsx (3 tests)Claude replied: Fixed — month was set to 'short' rather than 'long'. Tests pass.
Count the round trips you would have made yourself: find the file, read it, write the change, run the test, read the failure, spot the wrong option, fix, re-run. You made one. That compression is the whole product.
What it can reach
Being honest about this early matters, because the power and the risk are the same sentence. When you start Claude Code in a project, it can work with:
- Your files. Everything in that directory and below it, and anywhere else you permit.
- Your terminal. Any command you could run yourself — builds, tests, git, package managers, scripts.
- Your git state. The current branch, what has changed, recent history.
- The web, to look up documentation and error messages.
That is a real amount of access, and it is not granted blindly. Claude Code asks before doing things that change your machine, and every file edit is snapshotted so you can undo it. Two whole lessons are devoted to those controls, because understanding them is what lets you relax and let it work.
What your job becomes
The uncomfortable part. If the agent writes most of the code, what are you for?
You move up a level. Your work becomes deciding what should exist and establishing whether what came back is right. Neither is a small job, and the second one is where people new to this consistently underinvest.
Here is why. A language model produces output that is plausible — text shaped like a correct answer, because that is what it was trained to produce. Usually plausible and correct coincide. When they do not, the result does not look wrong. It looks fine. It reads well, it uses your conventions, it has a confident commit message, and it fails on an input nobody tried.
Reading code is a weak defence against this, because well-formed wrong code reads exactly like well-formed right code. What works is anything that produces a pass or a fail without an opinion: a test, a build, a type check, a script that compares output against a fixture, a screenshot next to the design.
This is the single most important habit in the course, and there is a whole lesson on it later. For now just carry the instinct: if nothing checked it, it is not done.
What it is not
A few corrections worth making now, because each one causes a specific kind of disappointment.
It is not a mind reader. It sees your files and your words, not the conversation you had last week or the constraint that is obvious to you. Most bad results trace back to context the person had and the agent did not.
It is not deterministic. The same prompt twice can produce different work. This is why "it worked yesterday" is not evidence of anything, and why the verification habit matters more than it would with a compiler.
It is not only for writing new code. A lot of its value is in reading: explaining an unfamiliar codebase, tracing why a function exists, summarising what changed in a release. Some of the best uses produce no diff at all.
And it is not confined to the terminal. The same engine runs in VS Code and JetBrains, in a desktop app, in your browser, and in CI. This course teaches the terminal, because everything else is the same ideas with a different frame around them.
What to take away
An agent is a model with tools and the ability to read what those tools returned, which is what lets it act, check and correct without you relaying every step. Claude Code can reach your files, your terminal and your git state, with permissions and undo standing between it and anything you did not want. Your job shifts towards describing intent and verifying results, and verifying means something that returns a pass or a fail — because plausible code and correct code look identical.
Next: getting it installed and running your first session, which takes about five minutes.
Check yourself
4 questions · pass 3/4 to unlock Installing Claude Code
1.What most clearly separates an agent from a chatbot?
2.Why does it matter that Claude Code can read the result of its own commands?
3.What happens to your role when you work with an agent?
4.Claude Code produces a fix that looks reasonable. What should you assume?
4 left to answer