Learn to code
Python · Zero to hero
Start at stage 1 if you are new to coding. Build confidence with small projects, then explore the specialist pathways that interest you.
CHOOSE YOUR ROUTE
Work through stages 1–7 in order. Then choose desktop apps and games, web development, or data science. Stage 12 helps you plan and finish an independent project.
01 | FIRST STEPS
No experience needed.
- 01.1 GETTING SET UP: EDITOR AND PYTHON
- 01.2 YOUR FIRST PROGRAM: PRINT AND COMMENTS
- 01.3 VARIABLES AND DATA TYPES
- 01.4 INPUT AND TYPE CONVERSION
- 01.5 ARITHMETIC OPERATORS
- 01.6 PROJECT: A PERSONALISED CALCULATOR
EXTRAS
02 | DECISIONS AND REPETITION
Complete stage 1 first.
- 02.1 COMPARISONS AND BOOLEAN LOGIC
- 02.2 SELECTION: IF, ELIF AND ELSE
- 02.3 FOR LOOPS AND RANGE
- 02.4 WHILE LOOPS AND LOOP CONTROL
- 02.5 TRACING, ERRORS AND DEBUGGING
- 02.6 PROJECT: A NUMBER GUESSING GAME
EXTRAS
03 | STRINGS AND COLLECTIONS
Complete stage 2 first.
- 03.1 STRING INDEXING, SLICING AND METHODS
- 03.2 LISTS, INDEXING AND SLICING
- 03.3 TUPLES AND SETS
- 03.4 DICTIONARIES AND KEY-VALUE DATA
- 03.5 NESTED COLLECTIONS AND COMPREHENSIONS
- 03.6 PROJECT: A QUIZ WITH A SCOREBOARD
EXTRAS
04 | FUNCTIONS AND PROBLEM SOLVING
Complete stage 3 first.
- 04.1 DEFINING FUNCTIONS AND RETURNING VALUES
- 04.2 PARAMETERS AND VARIABLE SCOPE
- 04.3 DECOMPOSITION AND REUSABLE MODULES
- 04.4 SEARCHING AND SORTING
- 04.5 ALGORITHM EFFICIENCY AND RECURSION
- 04.6 PROJECT: A MODULAR TEXT ADVENTURE
EXTRAS
05 | FILES AND RELIABLE PROGRAMS
Complete stage 4 first.
- 05.1 TEXT FILES AND CONTEXT MANAGERS
- 05.2 CSV FILES AND JSON DATA
- 05.3 VALIDATION AND EXCEPTION HANDLING
- 05.4 WORKING WITH PATHLIB AND DATES
- 05.5 UNIT TESTS AND TEST DATA
- 05.6 PROJECT: AN EXPENSE TRACKER
EXTRAS
06 | OBJECTS AND SOFTWARE DESIGN
Complete stage 5 first.
- 06.1 CLASSES, OBJECTS AND CONSTRUCTORS
- 06.2 METHODS AND ENCAPSULATION
- 06.3 INHERITANCE AND POLYMORPHISM
- 06.4 COMPOSITION AND DATACLASSES
- 06.5 TYPE HINTS AND DOCUMENTATION
- 06.6 PROJECT: A LIBRARY LENDING SYSTEM
EXTRAS
07 | DEVELOPER TOOLS AND DATABASES
Complete stage 6 first.
- 07.1 TERMINAL COMMANDS AND VIRTUAL ENVIRONMENTS
- 07.2 PACKAGES, PIP AND DEPENDENCY MANAGEMENT
- 07.3 GIT AND VERSION CONTROL
- 07.4 SQLITE, QUERIES AND PARAMETERISED SQL
- 07.5 HTTP, REQUESTS AND CONSUMING APIS
- 07.6 PROJECT: A DATABASE-BACKED APPLICATION
EXTRAS
08 | DESKTOP APPS AND GAMES
Choose this pathway after stage 7.
- 08.1 TKINTER: WINDOWS, WIDGETS AND LAYOUTS
- 08.2 TKINTER: EVENTS AND APPLICATION STATE
- 08.3 PYGAME: THE GAME LOOP AND INPUT
- 08.4 PYGAME: SPRITES, COLLISIONS AND SCORES
- 08.5 PROJECT: A DESKTOP STUDY PLANNER
- 08.6 PROJECT: A COMPLETE ARCADE GAME
EXTRAS
09 | WEB APPS WITH FLASK
Use stages 1–7 and HTML & CSS basics.
- 09.1 FLASK SETUP, ROUTES AND RESPONSES
- 09.2 JINJA TEMPLATES AND STATIC FILES
- 09.3 FORMS, VALIDATION AND DATABASES
- 09.4 AUTHENTICATION, SESSIONS AND ACCESS RULES
- 09.5 TESTING AND DEPLOYING A WEB APP
- 09.6 PROJECT: A STUDENT PROJECT PORTAL
EXTRAS
10 | WEB APPS WITH DJANGO AND FASTAPI
Build a small Flask app first.
- 10.1 DJANGO: PROJECTS, APPS AND URLS
- 10.2 DJANGO: MODELS, MIGRATIONS AND ADMIN
- 10.3 DJANGO: TEMPLATES, FORMS AND AUTHENTICATION
- 10.4 FASTAPI: ROUTES, SCHEMAS AND VALIDATION
- 10.5 FASTAPI: DATABASES AND API TESTING
- 10.6 PROJECT: A BOOKING APP OR A REST API
EXTRAS
11 | DATA SCIENCE AND MACHINE LEARNING
Use stages 1–7; practise with small datasets.
- 11.1 NUMPY: ARRAYS AND NUMERICAL OPERATIONS
- 11.2 PANDAS: LOADING, CLEANING AND ANALYSING DATA
- 11.3 MATPLOTLIB: VISUALISING DATA
- 11.4 SCIKIT-LEARN: TRAINING AND EVALUATING MODELS
- 11.5 BIAS, PRIVACY AND RESPONSIBLE USE OF DATA
- 11.6 PROJECT: INVESTIGATE A REAL DATASET
EXTRAS
12 | INDEPENDENT PROJECTS
Bring your skills together.
- 12.1 PLANNING REQUIREMENTS AND SUCCESS CRITERIA
- 12.2 ASYNC PROGRAMMING AND CONCURRENCY
- 12.3 PROFILING, PERFORMANCE AND REFACTORING
- 12.4 CONFIGURATION, SECRETS AND APPLICATION SECURITY
- 12.5 PACKAGING, DEPLOYMENT AND MAINTENANCE
- 12.6 CAPSTONE: BUILD AND DOCUMENT YOUR OWN APPLICATION