Sign in to continue
All 24 modules are open from the start — nothing here is locked, and nothing costs anything. Sign in so your progress, titles and credentials stay with you, on every device you use.
Free forever, with your Google account. No password, no payment.
Checking your account…
Course contents
Four parts. Twenty-four modules. Complete them all to earn the certificate.
Every module is a lesson you read, nine exercises you type into a lab, and one graded assignment that decides whether the module completes. Nothing to install, and nothing you write leaves your browser. Every module is open from the start — the order below is the recommended path, not a queue you have to unlock.
First Steps
6 ModulesEverything you need to write a small program that works: printing, naming things, the handful of value types Python has, text, input, and arithmetic. No prior experience assumed, and nothing skipped.
Hello, Python
Write and run your first program, make it speak with
print(), leave notes with comments, and learn to read an
error instead of panicking at it.
Variables & Names
Store a value under a name so you can use it again, change it later, and describe what it means to the next person who reads the code.
3Numbers, Text & Booleans
Python's four everyday value types, how to tell which one you have, and how to convert between them on purpose rather than by accident.
4Working with Text
Cut, join, search, clean and reshape text with the string methods you will reach for every day, and format results with f-strings.
5Input & Output
Ask a person a question, take their answer, turn it into the right kind of value, and hand back a result they can actually read.
6Math & Comparisons
Arithmetic including the two division operators everybody trips over, comparisons that produce True or False, and the order Python does things in.
Logic & Collections
6 ModulesThe point where a program stops being a list of instructions. Deciding, repeating, and the four containers Python leans on for everything it remembers.
Making Decisions
if, elif and the indentation that makes a
block — plus the branch that can never run, which is the most common
bug in conditional code and raises nothing.
for Loops
Say the work once and apply it to everything. Walking sequences,
counting with range(), and the accumulator shape behind
almost every total you will ever write.
while Loops
Repeating when you do not know how many times. Validation loops, retry with backoff, and two exercises that run forever on purpose so you have watched an infinite loop rather than been told about one.
4Lists
Many values under one name, and the two bugs only a changeable thing can have: a backup that was never a backup, and a filter that misses half of what it should catch.
5Dictionaries
Looking things up by name instead of by position — the shape every JSON response, config file and database row arrives in, and the counting pattern that replaces a row of separate variables.
6Tuples & Sets
Two containers chosen for what they refuse to do: one that cannot be edited, and one that keeps no order and no duplicates. Unpacking, and "what changed" as a single operator.
Building Blocks
6 ModulesWhere programs stop being one long file. Naming pieces of work, handling what goes wrong on purpose, using code other people wrote, and reading and writing real files.
Functions
Give a piece of work a name so the code above can talk about it. From here the lab checks call your functions, with values the exercise never showed you.
2Arguments & Scope
What you can pass and in what order, and the three ways a function quietly stops being repeatable — a shared default, a global, and an argument edited underneath its caller.
3Comprehensions
The loop-and-append shape on one line — and the two very different
places an if can go, which is the mistake that gives you a
result of the wrong length rather than an error.
Errors & Exceptions
Failing in a way somebody can act on — and the far more common mistake in the other direction, where a handler turns a loud failure into a wrong answer nobody notices.
5Modules & the Standard Library
Most of what you need is already installed. Dates, JSON, statistics,
Counter, defaultdict — and two loops from
earlier stages replaced by a single call.
Reading & Writing Files
A real filesystem in the tab. Opening safely, reading without loading a gigabyte, and the mode that empties your file the moment it is opened.
Real Python
6 ModulesModelling a problem rather than scripting one. Classes and dataclasses, lazy pipelines, the syntax the language gained in the last five years, and a finished tool at the end of it.
Classes & Objects
For when data and the things you do to it keep travelling together — and the honest test for when a class was never needed at all.
2Dataclasses & Type Hints
Say the shape once and have Python write the rest. Plus the one place in the language that refuses the shared-mutable trap outright, before your program runs.
3Iterators & Generators
What a for loop has been doing all along, a function that
pauses instead of returning, and the bug that produces empty output
with no traceback at all.
Modern Python
The additions worth adopting — and three bugs they exist to kill,
including the lstrip that turns
staging_server.log into erver.log.
Working with Data
Read a file, work out what is wrong with it, reshape what is left, and write something somebody can act on. No extra libraries needed for any of it.
6Capstone: Your First Sprint
No lesson and no new syntax — a mock engineering job instead. A messy daily CSV export, four colleagues describing what they need in plain English, and fifteen programs between Monday and the tool going into cron on Friday.