
Tutorials, videos and courses will teach you Python, and none of them will teach you Python in order. A good book has a path through the subject and stays with you for the weeks it takes to walk it, and that continuity is what tutorials cannot give. These are the books I would hand to someone, sorted by where they are, with what I thought of each, and the one habit that makes any of them stick.
The list, by level
Starting out
- Automate the Boring Stuff with Python (Sweigart). Practical automation projects. I found it too long and, at times, just boring; it is also showing its age.
- Python Crash Course (Matthes). The fundamentals with hands-on projects. Not exciting, but it gets your feet wet.
- Think Python (Downey). Computational thinking first. A very cool, mathematical and academic approach.
Intermediate
- Fluent Python (Ramalho). A deep dive into Pythonic code. A wonderful book: detailed but balanced, so it never overwhelms.
- Effective Python (Slatkin). Ninety-odd tips for better Python. Great tips, some of which would now be controversial.
Advanced
- Python Cookbook (Beazley and Jones). Real-world problem-solving recipes. Huge, but very useful; I dip into it rather than read it through.
- High Performance Python (Gorelick and Ozsvald). Optimisation and efficiency. I was reading this when I wrote the list.
- Mastering Python Design Patterns (Ayeva and Kasampalis). Software design patterns in Python.
The habit is to type everything
What has worked for me is reading, practice and other people, in that order of frequency and the reverse order of importance. Read actively rather than passively: type out the examples, tweak them, break them. Keep notes of the concepts, the pitfalls and the things that surprised you, because the surprise is the signal that the book is ahead of you. Apply what a chapter taught in a small project of your own before the next chapter, since a book’s exercises are the book’s problems and yours are the ones you will remember. Explain what you learned to someone, which is the fastest test of whether you did. And find a community, a forum or a study group, where the questions are asked in the open.
A book fits a level; the reading is what fits the reader. Choose one that matches where you are, read it with the interpreter open, and it will do what a tutorial cannot.
Books. Give. Structure. Tutorials. Give. Fragments. Read. Actively. Type. Everything.
References
- Sweigart, A. (2019). Automate the Boring Stuff with Python, 2nd ed. No Starch Press.
- Matthes, E. (2023). Python Crash Course, 3rd ed. No Starch Press.
- Downey, A. B. (2024). Think Python, 3rd ed. O’Reilly.
- Ramalho, L. (2022). Fluent Python, 2nd ed. O’Reilly.
- Slatkin, B. (2019). Effective Python, 2nd ed. Addison-Wesley.
- Beazley, D. and Jones, B. K. (2013). Python Cookbook, 3rd ed. O’Reilly.
- Gorelick, M. and Ozsvald, I. (2020). High Performance Python, 2nd ed. O’Reilly.
- Ayeva, K. and Kasampalis, S. (2024). Mastering Python Design Patterns, 3rd ed. Packt.