Chapter 4
Programming in the Age of AI
What AI Coding Can Actually Do
AI can write useful code. It can explain a program, draft tests, change a dozen files at once, run the test suite, read the failures, and fix them. I use it every day, and I think anyone learning to program should too.
But if AI can do all that, why spend time learning to program?
What the tools do now
This is a field that is moving very fast. It may well be out of date by the time you read it. But as of mid 2026, here’s the situation.
Let’s start with the prompt: a request you give an AI tool. What comes back has grown enormously.
Code completion suggests what might come next while you type. It has been around for a long time, but has become more powerful with AI. Instead of completing a word, it can now complete an entire function.
An AI conversation explains an unfamiliar codebase, talks through an approach, or works out why something failed, which is a wonderful way into a project you did not write. A generated change is code the tool proposes across one or more files.
And then there is the one that has changed fastest. A coding agent is given a goal and permission to act on it: read the project, form a plan, edit files, run commands and tests, read what broke, and try again. It can work for a long stretch without you and hand back a complete proposed change.
That last capability has taken a genuine leap, and it is still moving. Work that would have been a careful afternoon two years ago is now something you can delegate and review. Anyone telling you AI coding is overblown has not been paying attention.
Assistance and vibe coding are different things
In this course, AI-assisted programming means using AI for part of the work while a person stays responsible for what the result should do and for the checks that decide whether to accept it.
Vibe coding is something else. You describe what you want, the output looks right, and you accept it without inspecting the actual code. Many software engineers will frown upon it, but an increasing number of people create products entirely by vibe coding. In the hands of the right person, it can work. In the hands of someone with practically zero knowledge about programming, it’s a disaster waiting to happen.
The better these tools get, the more the difficult part moves somewhere else. It stops being “can this be written” and becomes “is this the right thing, and how would I know?”
What is at stake?
For a throwaway experiment, accept whatever works. If the color is wrong or it breaks, nothing is lost, and exploring fast may be the entire point.
Now move the same workflow somewhere else. The software handles money, or health records, or a team maintains it for six years. Plausible stops being good enough, and you need requirements, inspection, tests, and somebody accountable for the decision.
How much checking you owe depends on what happens when the code turns out to be wrong, not on who or what wrote it.
I would not advise anyone to compete with a tool at typing familiar patterns from memory. I would advise learning how programs hold information, make decisions, talk to other systems, and fail, because that is what lets you ask for the right thing, notice when an explanation does not match the code, and choose the test that would expose a problem.
So it is worth knowing what is actually on offer. The next two lessons walk through it: first the tools that work beside you, then the ones you can send off on their own.
Go deeper
GitHub’s documentation keeps a current map of AI coding tools, and its responsible-use guidance for coding agents describes what agents can do and where the limits are. Both optional.