These notes are built from the books below, along with my own exercises and material found around the internet.
Read in this order.
| # | Book | Author | Level |
|---|---|---|---|
| 1 | Python Crash Course | Eric Matthes | Beginner |
| 2 | Automate the Boring Stuff | Al Sweigart | Beginner |
| 3 | Python Testing with pytest | Brian Okken | Beginner to intermediate |
| 4 | Robust Python | Patrick Viafore | Intermediate |
| 5 | Fluent Python | Luciano Ramalho | Intermediate to advanced |
| 6 | Architecture Patterns with Python | Percival and Gregory | Advanced |
| 7 | Designing Data-Intensive Applications | Martin Kleppmann | Advanced |
Automate the Boring Stuff is free online. Designing Data-Intensive Applications is not a Python book, but it is the best book on building real systems that I know of.
- Real Python - written tutorials
- The official Python documentation
All exercises and labs here are my own. Where a book's idea inspired one, it is credited in that week's notes.