Getting started

Your first week with Claude Code

Nine lessons for someone who has never used an AI coding agent, ending with a small app that is actually live on the internet.

What it actually is

Claude Code is not a chat window you copy code out of. It runs in your project folder — a terminal, or a panel in VS Code — and it can read your files, edit them, run your build, run your tests, run git, and read the error messages that come back. You describe the outcome; it does the typing and the fixing.

That difference is the whole thing. Most of the skill in using it well is about giving it enough rope to be useful and enough structure that you always know what it changed.

You will still be the engineer. It is very fast and quite often wrong, in the way a capable contractor on their first day at your site is often wrong: it does not know what you know, unless you tell it.

Before you start

You need Node.js 18 or newer, a GitHub account, and a folder to work in. Then:

# install it once, globally
$ npm install -g @anthropic-ai/claude-code

# go to your project folder and start
$ cd ~/projects/stockroom
$ claude

The first run walks you through signing in. After that, claude in any folder drops you into that project. There is also a VS Code extension and a desktop app if a terminal isn't your happy place — same tool, same rules below.

Try this first

Before you ask it to build anything, ask it a question: "what's in this folder, and what does this project do?" Watching it read around is the fastest way to understand what it can see.

The nine lessons

Roughly in the order you'll need them on day one.

01

Put it in git before you let it touch anything

This is the single most important habit. Git is your undo button, and without it you have none. Commit before every sizeable request, so "throw all that away" is one command instead of an afternoon.

$ git init
$ git add -A && git commit -m "empty project"

Once you're working, commit whenever a change is good. If a change is bad, git restore . and try the request again with better wording — that is usually faster than arguing it back to correctness.

02

Describe the outcome, not the keystrokes

Weak: "create a file called stock.ts and add an interface." You're doing the thinking and getting a typist.

Strong: "Add a stock list page. Each item has a code, a description, a quantity and a location. I should be able to add one, edit the quantity inline, and delete one. Keep it in local state for now — no backend yet."

Constraints are the useful part. "No backend yet", "don't add new dependencies", "match the style of the settings page" all steer it more than another paragraph of description would.

03

Make it plan before it edits

Press Shift+Tab to cycle modes until it says plan mode. In plan mode it reads and investigates but doesn't change files — it comes back with what it intends to do, and you approve or redirect before a single line is written.

Use it for anything you can't describe in one sentence. Reviewing a wrong plan takes thirty seconds; reviewing a wrong implementation takes an hour.

04

One task at a time, then clear

Finish a job, commit it, then type /clear to start the next one with a clean slate. A long session drags the whole history of what you've been doing into every new answer, and quality drifts.

Bundling helps nobody either. "Add the stock page, fix the login bug and change the colours" gets you three half-done things and a diff you can't review.

05

Write things down in CLAUDE.md

Run /init once at the start of a project. It reads your codebase and writes a CLAUDE.md file — notes that get loaded automatically every session.

Keep adding to it as you go: the command that runs your app, the command that runs your tests, the rules that aren't obvious from the code. Every time you find yourself explaining the same thing twice, that's a line for CLAUDE.md.

# CLAUDE.md

## Commands
npm run dev    # local server on :5173
npm run build  # production build
npx tsc -b     # typecheck (build does NOT check types)

## Rules
- Quantities are integers. Never round them for display.
- Every new page needs a route in src/routes.tsx.

That last line is a real example of the kind of thing worth recording: something true about the project that no amount of reading the code would tell you quickly.

06

Make it prove the thing works

"Done" from an agent means "I wrote what I believe is correct." It is not evidence. The fix is to make verification part of the request:

"…then run the build and the tests, and show me the output." Or: "start the dev server, open the stock page, and take a screenshot." It can do all of that, and it will find its own mistakes far more often than you'd expect.

Watch for

An agent that's stuck will sometimes make the test pass instead of making the code work. If a fix looks like it changed the test rather than the behaviour, ask why.

07

Read the diff — you're the reviewer now

It shows you every edit as it makes it. Read them. If you don't understand a change, ask: "explain what this function does and why you added it" — a genuinely good way to learn a language you don't know yet.

Things worth catching early: a new dependency you didn't ask for, a config file quietly rewritten, a "temporary" hardcoded value, a chunk of code that duplicates something you already have.

Press Esc at any point to stop it mid-flight and redirect. You don't have to let a wrong approach finish out of politeness.

08

Let it do the git and GitHub work

Committing, branching, and opening pull requests are exactly the kind of fiddly, well-documented work to hand over. Install the GitHub CLI (gh), sign in once with gh auth login, and then plain English is enough:

> commit this with a sensible message
> push it to a new branch and open a PR describing what changed

It will not commit or push unless you ask — that's deliberate. Ask often; small commits are the thing that makes all of this recoverable.

09

Deploy on day one, not at the end

Get something live while it's still trivial. A blank page on a real URL is worth more than a finished app on your laptop, because every deployment problem you'll ever have is easier to solve when the app is five files long.

For a frontend-only app, GitHub Pages is free and takes one workflow file. Ask for it directly:

> add a GitHub Actions workflow that builds this on every push
  to main and deploys it to GitHub Pages, then explain what I
  need to switch on in the repo settings

From then on, git push is your deploy. When you later add a database and a server, the same pattern holds — one workflow file, triggered by a push.

Cheat sheet

The handful worth memorising on day one.

Key / commandWhat it does
Shift+TabCycle between asking permission, auto-accepting edits, and plan mode
EscInterrupt it mid-task and say something else
Esc EscJump back to an earlier point in the conversation
@Reference a file by name, with autocomplete — @src/App.tsx
!Run a shell command yourself without leaving the session
#Save a note to CLAUDE.md, mid-conversation
/initGenerate the CLAUDE.md for this project
/clearStart fresh — do this between unrelated tasks
/reviewReview a pull request
/modelSwitch which model you're talking to
/helpEverything else
claude -cResume your last session instead of starting a new one

Five ways people get burned

A first project that actually finishes

If the goal is a stock or warehouse app, do not start with the warehouse. Start with one list, get it online, and grow it. Roughly a weekend:

Step 1

An empty page, live on the internet

Ask for a Vite + React + TypeScript project, a git repo, and the Pages workflow from lesson 09. Stop when the URL loads. This is the hardest step and it's all downhill afterwards.

Step 2

One table you can edit

Stock items with a code, description, quantity and location. Add, edit, delete. Keep it in the browser's local storage — no server, no login, no database yet.

Step 3

The one thing your app is for

Every stock system has a single core move — goods in, goods out, cut, dispatch. Build that one action and the history it leaves behind. This is where the real design questions live, so use plan mode.

Step 4

A real backend, once you miss it

You'll know the moment: two people need the same data. Then ask for a small API and a hosted database, and to migrate what you have. Doing it in this order means you're replacing something that works, rather than guessing up front.

Rule of thumb

If you can't describe what the next hour's work should produce, that's the thing to ask about — not to build. "What are my options for X, and what would you recommend?" is a perfectly good prompt.