How to debug anything without guessing
By the end of today you can take a bug you cannot explain and narrow it to a single line by halving the search space, rather than changing things until the symptom disappears.
YesterdayOn Day 6 you learned to read a trace when Python tells you what broke. Today handles the harder case, where nothing crashes and the answer is simply wrong.
TomorrowTomorrow you leave the editor and learn the terminal, where most debugging actually happens.
Why this matters
Debugging is the skill you will use most and be taught least. Everything from a failed test on Day 47 to a wrong retrieval on Day 76 is the same method applied to a bigger system.
- Reproduce first
- A bug you cannot trigger on demand cannot be fixed, only disturbed.
- Bisecting
- Halving the search space rather than reading top to bottom.
- Hypothesis debugging
- Predict, check, narrow. Every attempt produces evidence instead of noise.
- Using a debugger
- Breakpoints, stepping and inspecting, for when prints stop scaling.
See it first
5 minOne small thing, worked through here before you go anywhere. Guess the answer before you open it.
An invoice total is wrong. Not crashing, not erroring, just wrong: it says 118.80 and it should say 108.00. The number passes through six functions on its way to the page.
read_order()
-> apply_discount()
-> add_shipping()
-> apply_tax()
-> round_money()
-> render()You can print one value, one time, and then you have to guess. Where do you print?
Decide before you open it. Being wrong here is the point.
Show me what happens
In the middle, after add_shipping. Not at the start, and not at the end. Checking the middle throws away half the suspects whichever answer comes back. If the number is already wrong there, the bug is in the first three functions. If it is still right, the bug is in the last three. One print, six candidates down to three. Do it again and it is three down to one or two. Six functions take about three prints to corner, and twenty functions take about five. Printing at the start instead tells you the input was fine, which you already believed, and leaves all six suspects standing. That is the difference between halving the problem and merely poking it.
Where you meet this at work
This is the whole method, and it does not care how big the system is. git bisect finds the commit that broke a test the same way, across a thousand commits, in about ten steps. Commenting things out until the symptom moves is the alternative, and it is how an hour turns into an evening.
Learn it
70 minCopy this into Claude or ChatGPT. It quizzes you before it explains anything, which is deliberate. The resources under it are how you check what it told you.
Today's Master Prompt
Free · sign inA prompt written for this day alone: your level, the exact scope, what to leave out, and an instruction to quiz you before it explains anything. Paste it into Claude or ChatGPT and it teaches you today's material.
Check it against something that is not a model
An assistant can be fluent and wrong, and on a topic you met today you will not catch it. These cover the same ground and were made by people who do this for a living, so they are what you hold the explanation up against. They are other people's work and we only link to them, so judge them for yourself.
3 hand-picked resources
Free · sign inVideos, official docs and articles covering the same ground, each opened and annotated by hand. They are what you check the assistant against on a day you cannot yet catch it being wrong.
Build it
40 minTake any script you have written this week and deliberately break it in a way that does not raise an exception, for example an off-by-one in a slice or a wrong comparison operator. Leave it overnight if you can. Then find it by bisection, writing down each hypothesis before you test it.
Recall it
20 minAnswer out loud, reveal, then mark honestly whether you had it. That score is the only thing on this page you do not get to choose.
4 recall questions
Free · sign inQuestions you answer from memory, then grade yourself against the real answer. The score is carried into the mastery rating below it, so an honest miss cannot quietly become a tick.
Rate it
Finishing a day and understanding it are two different things, and this page counts them separately.
Mastery tracking
Free · sign inRate yourself against five named criteria per concept. Completion and mastery are tracked separately, and anything you rate shakily comes back automatically on a spaced schedule.
Recap
- 01A bug you cannot reproduce cannot be fixed, only disturbed
- 02Predict before you check, so every attempt produces evidence
- 03Halve the search space instead of reading top to bottom
- 04Silent wrong answers need the same method, not more staring
Your progress
Free · sign inMark days complete, pick up where you left off across devices, and watch completion and mastery diverge. Free, and the account exists only so ninety days of work cannot vanish with a cleared browser.