Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

Problem-solving recipes

A step-by-step procedure for every problem type this course teaches — what to do first, what to do next, and how to tell which case you're in.

What are you being asked to do?

What's in front of you right now?

  • The program stopped and printed a report → Read a traceback. It runs but gives the wrong answer → Find a bug systematically.
  • A task says "each", "every", "how many", or "until" → Write a loop to solve a problem.
  • The same few lines appear twice, or one block does three jobs → Turn repeated code into a function. You want the function right the first time → Build a function test-first.
  • Text typed by a person or read from a file has to match something → Normalize text before comparing it.
  • A file of records needs summarising or converting → Write a program that processes a data file.
  • You're starting a new project, or it needs a package from PyPI → Set up a Python project with uv.
  • The package works and other people should be able to install it → Build and publish a library.

When something goes wrong

Writing the code

Programs that work with data and projects

Shipping it