Advanced
Advanced Python is where the language stops feeling like a list of syntax rules and starts feeling like a practical toolkit. This path assumes you are comfortable with the Beginner path (Units 1–3) and most of the Intermediate path (Units 4–6): functions, lists and dictionaries, files, and small programs.
The units below run in a deliberate order, each building on the one before. Nothing is locked, though, so you can start wherever your current problem is. Coming for data analysis? That is Unit 12, and you can go straight there.
Unit 7 | Working with APIs and JSON
- APIs Explained Simply 9 min ✓ completed
- Calling Web APIs with Requests 13 min ✓ completed
- Building a JSON API Endpoint 11 min ✓ completed
- HTTP Methods and CRUD 9 min ✓ completed
- API Keys, Secrets, and Safe Configuration 10 min ✓ completed
- Django and FastAPI: What Comes After Flask? 9 min ✓ completed
Unit 8 | Databases and Text Patterns
- Why Programs Need Databases 8 min ✓ completed
- SQLite with Python: Tables, Inserts, and Queries 13 min ✓ completed
- Safe Queries and When to Reach for an ORM 11 min ✓ completed
- Regular Expressions: Finding Patterns in Text 13 min ✓ completed
- Unit 8 Project: Parse a Log File into a Database 15 min ✓ completed
Unit 9 | Code That Holds Up
- From print() to Real Logging 11 min ✓ completed
- Error Handling That Holds Up 12 min ✓ completed
- Type Hints and What mypy Catches 11 min ✓ completed
- Dataclasses: Structure Without Boilerplate 12 min ✓ completed
- Unit 9 Project: Harden a Script You Already Wrote 15 min ✓ completed
Unit 10 | Python Power Features
- How for Loops Really Work: The Iterator Protocol 12 min ✓ completed
- Building Pipelines with itertools 10 min ✓ completed
- Decorators: Wrapping Functions Without Rewriting Them 14 min ✓ completed
- Context Managers and the with Statement 12 min ✓ completed
- Unit 10 Project: A Retry-and-Timer Toolkit 15 min ✓ completed
Unit 11 | Doing Many Things at Once
- Waiting vs Working: Why Programs Are Slow 12 min ✓ completed
- Doing Many Things at Once with Thread Pools 14 min ✓ completed
- async and await Explained Simply 14 min ✓ completed
- The GIL, Processes, and Shared State 14 min ✓ completed
- Unit 11 Project: Fetch Many Pages Politely 16 min ✓ completed
Unit 12 | Data Science Basics
- Python for Data: The Big Picture 12 min ✓ completed
- NumPy Arrays Explained Simply 13 min ✓ completed
- Pandas DataFrames: Tables in Python 15 min ✓ completed
- Cleaning Data: Missing Values and Messy Text 15 min ✓ completed
- Charts with Matplotlib 14 min ✓ completed
- Unit 12 Project: Analyze a Small CSV 18 min ✓ completed
Unit 13 | Machine Learning Basics
- What Machine Learning Really Means 13 min ✓ completed
- Regression: Predicting Numbers 13 min ✓ completed
- Classification: Predicting Categories 13 min ✓ completed
- Train/Test Split and Overfitting 14 min ✓ completed
- Using scikit-learn Without Panic 14 min ✓ completed
- Unit 13 Project: First Tiny ML Model 18 min ✓ completed
Unit 14 | Games and Desktop Apps
- How Interactive Programs Think 13 min ✓ completed
- Build a Better Number Guessing Game 14 min ✓ completed
- Pygame Basics: Windows, Loops, and Drawing 14 min ✓ completed
- Pygame Movement, Collisions, and Scores 14 min ✓ completed
- Tkinter Basics: Windows, Buttons, and Inputs 13 min ✓ completed
- Unit 14 Project: Build a Tiny Quiz App 18 min ✓ completed
Unit 15 | Debugging, Testing, and Shipping
- Python Concepts Review: From Variables to APIs 15 min ✓ completed
- A Debugging Playbook That Always Works 16 min ✓ completed
- Tests That Catch Real Bugs: assert to pytest 16 min ✓ completed
- Writing Clean Python: Names, Functions, and Docstrings 14 min ✓ completed
- Packaging: Turn Your Script Into an Installable Tool 18 min ✓ completed
- Continuous Integration with GitHub Actions 15 min ✓ completed
- Containers in Plain English (and a First Dockerfile) 14 min ✓ completed
- Your Portfolio, and How to Ask a Question That Gets Answered 13 min ✓ completed
- Unit 15 Project: Plan a Capstone You Will Actually Finish 17 min ✓ completed
Unit 16 | What to Learn Next
- Choosing Your Next Python Path 13 min ✓ completed
- Advanced Python: What's Left, and When You'll Need It 17 min ✓ completed
- Reading Documentation Without Getting Lost 14 min ✓ completed
- Is This Library Worth Installing? 14 min ✓ completed
- Unit 16 Project: Build and Ship Your Capstone 20 min ✓ completed
- Careers, Interviews, and Whether Certificates Matter 15 min ✓ completed
- You Finished. Here Is What Happens Next. 10 min ✓ completed
What to know first
Before diving in, make sure you are solid on:
- Functions and scope, defining functions, arguments, return values, and where names live.
- Core data structures, lists, dictionaries, sets, and tuples, and when to use each.
- Files and paths, reading and writing text with
pathlib, covered in the Intermediate path. - Errors and exceptions, using
try/exceptto handle the things that go wrong.
Every topic below assumes these are familiar, and links back to the relevant lessons where it helps.
How this path is ordered
The units above run in a deliberate sequence. Each one leaves you with a problem the next one solves:
- Unit 7, APIs and JSON — pull real data off the web. It ends with a script full of data and nowhere to put it.
- Unit 8, databases and regular expressions — store what you fetched so it survives the script ending, and pull structure out of messy text.
- Unit 9, code that lasts — logging, real error handling, type hints, and dataclasses, applied to the script you just wrote.
- Unit 10, power features — iterators, decorators, and context managers, the tools that delete repeated logic.
- Unit 11, concurrency — stop fetching one thing at a time.
- Units 12 and 13, data analysis and machine learning — pandas, charts, and a first model, now that you can fetch and store real data to work on.
- Unit 14, games and GUIs — a change of pace, and a different way to think about program state.
- Unit 15, review and shipping — consolidate everything, debug and test properly, then turn a script into something other people can install, with CI and containers behind it.
- Unit 16, what to learn next — choose one of seven directions, meet the features that lie past this course, learn to read documentation and judge a library, then ship the capstone you planned in Unit 15.
Nothing is locked. Jump straight to whatever solves your current problem; the order above is a sensible default, not a gate.
Advanced topics worth learning
Each of these solves a real category of problem, and each note says what it helps you build. Learn them as you need them.
- Working with APIs, use the
requestslibrary to call web services, send query parameters and headers, check status codes, and handle pagination and rate limits. Build: scripts that pull live data, weather, prices, search results, your own dashboards. Unit 7: APIs explained and calling them with requests. - Working with JSON, parse nested API responses, validate their shape, and turn messy responses into clean records. Build: tools that connect two services together. Unit 7: parsing nested responses and serving JSON of your own.
- Tabular data at scale, go beyond the
csvmodule into an introduction to data analysis with pandas. Build: reports and summaries from spreadsheets and exports. Unit 12: DataFrames, cleaning messy data, and charts. - Databases — store and query data with
sqlite3, write simple queries, and learn when to reach for an ORM. Build: apps that remember data between runs. Unit 8: SQLite basics and safe queries and ORMs. - Iterators, build your own iterable objects, a natural step after generators and
yield. Build: memory-efficient pipelines over large data. Unit 10: the iterator protocol and itertools pipelines. - Decorators, wrap functions to add behavior such as timing, caching, or validation without changing their code. Build: reusable, cross-cutting features. Unit 10: decorators.
- Context managers, write your own
withblocks usingcontextlibor__enter__/__exit__to manage setup and cleanup safely. Build: code that always releases files, connections, and locks. Unit 10: context managers. - Type hints, annotate functions and run a checker like
mypyto catch mistakes before the code runs. Build: larger projects that stay easy to change. Unit 9: type hints and mypy. - Dataclasses, concise classes for structured data, building on the object-oriented Python from Unit 4. Build: clean models for the things your program works with. Unit 9: dataclasses.
- Logging, replace scattered
print()calls with configurable, leveled logs. Build: scripts you can debug once they run unattended. Unit 9: logging and error handling. - Regular expressions, match and extract text patterns. Build: tools that pull structured details out of messy text and logs. Unit 8: regular expressions.
- Concurrency basics — speed up I/O-bound work with
async/awaitor threads. Build: scripts that fetch many things at once instead of one at a time. Unit 11: waiting vs working, thread pools, and async/await. - Packaging and distribution, turn a script into an installable tool with
pyproject.tomland entry points. Build: tools other people can install and run. Unit 15: packaging and distribution, plus CI with GitHub Actions and containers. - Testing and debugging properly, a repeatable debugging method and a
pytestsuite that catches the bugs which never raise. Build: projects you can change without fear. Unit 15: the debugging playbook and tests that catch real bugs. - Learning without a curriculum — reading documentation without getting lost, judging whether a library is worth installing, and choosing which direction to take next. Build: whatever you decide to, once nobody is setting the syllabus. Unit 16: reading documentation, evaluating libraries, and choosing a path.
How these topics show up in real scripts
These ideas rarely appear alone. A realistic small project might:
- Call an API and parse its JSON response,
- Validate the data with type hints and dataclasses,
- Store it in a SQLite database,
- Wrap the network calls in a decorator that retries on failure and logs what happened,
- And ship as an installable command-line tool.
That is the real goal of advanced Python: combining a handful of these tools into something genuinely useful.
Practice ideas
- Fetch data from a free public API and save a cleaned-up version to a CSV file.
- Take an existing script and add
loggingplus atry/exceptstrategy so it fails clearly. - Model some real data (books, expenses, tasks) with a
dataclass, then store it in SQLite. - Write a decorator that times any function it wraps.
- Package one of your scripts so you can
pip installit locally and run it as a command.
Pick one that matches a real itch you have. You will learn far more building something you actually want.
What to learn next
The lessons above are the path, and Unit 16 is the one about this question: it lays out seven directions and helps you pick by what you want to build. Alongside it:
- Build and ship a capstone — five sessions, one smallest useful version.
- Try the guided builds on the Projects page, then take one somewhere new.
- Revisit the Intermediate path projects and extend them with what you learn here.
- Use the Glossary to firm up any term above that is unfamiliar.