Coding with AI

From autocomplete to agents, and how to stay the engineer. About 1 h 30 min, intermediate level.

You'll be able to

From autocomplete to agents

AI coding tools sit on a spectrum of autonomy:

The further along the spectrum, the more code appears per request, and the more you have to review. More autonomy doesn't mean less responsibility: you're still the engineer who ships it.

Before using any of them for coursework, read the course policy. Many programming courses restrict AI help or require disclosure, because writing the code yourself is how you learn it.

Give it context, and keep tasks small

Coding tools fail in the same way chat assistants do: they fill gaps with the most typical guess. Typical may not be what your project needs.

Many tools read a project instruction file, such as a CLAUDE.md or a rules file, so you don't repeat this every time.

Then keep each request small and testable. “Add a function that removes duplicate rows by email, with tests” is reviewable. “Build the whole data pipeline” produces hundreds of lines nobody reads carefully. For bigger jobs, ask for a plan first, correct it, then build it in steps.

Read every change

AI-written code looks tidy and confident, which makes errors easy to miss. Review it the way you'd review a new teammate's work:

If you can't explain what a piece of code does, you're not ready to accept it.

Tests are how you check

Reading catches a lot, but running code against known answers catches more. Tests turn “looks right” into “does what I specified”.

Keep the tests once they work. They let you ask for future changes with confidence, because you'll know immediately if something that used to work breaks.

Security, dependencies and licensing

Some risks aren't visible when the code runs fine:

Build, then review: a CSV-cleaning script

Request: “Write a Python script that cleans contacts.csv: trim spaces, drop rows without an email, remove duplicate emails, and write clean.csv. Use only the standard library. Add tests.”

Review, line by line:

Tests: the generated tests only use tidy input. You add three: an empty file, a file with no email column, and an email with trailing spaces. The empty-file test crashes the script. You ask for a clear error message instead.

Result: a script you can explain, with tests that fail when you break it on purpose.

Try it

A small CSV-cleaning script with your comments on every line you didn't understand at first, a set of tests including deliberately broken inputs, and a note on what the review caught.