
* Practices of the Python Pro (https://www.manning.com/books/practices-of-the-python-pro) — learn to design professional-level, clean, easily maintainable software at scale, includes examples for software development best practices
* Intuitive Python (https://pragprog.com/titles/dmpython/intuitive-python/) — productive development for projects that last
Another really cool introduction that's filled with intermediate tricks is "Python Distilled" by Dave Beazley [1] (2021).
A couple of nice intermediate books:
"Intuitive Python - Productive Development for Projects that Last" by David Muller [2] (2021).
"Serious Python" by Julien Danjou [3] (2018).
References:
[0]: https://www.oreilly.com/library/view/introducing-python-2nd/...
[1]: http://www.dabeaz.com/python-distilled/
* Serious Python (https://nostarch.com/seriouspython) — deployment, scalability, testing, and more
* Practices of the Python Pro (https://www.manning.com/books/practices-of-the-python-pro) — learn to design professional-level, clean, easily maintainable software at scale, includes examples for software development best practices
* Intuitive Python (https://pragprog.com/titles/dmpython/intuitive-python/) — productive development for projects that last
* Advanced Python Mastery (https://github.com/dabeaz-course/python-mastery) — exercise-driven course on Advanced Python Programming that was battle-tested several hundred times on the corporate-training circuit for more than a decade
Last year, I was lucky enough to sign a book deal with The Pragmatic Bookshelf to write an intermediate level book on Python. (The Pragmatic Bookshelf is the publishing company founded by the authors of one of my favorite programming books: The Pragmatic Programmer.)
Having written Python most of my professional career, I wanted a resource that I could give to engineers who might have deeper experience in some language that wasn't necessarily Python. I wanted to help teammates newer to Python quickly discover its virtues (and limitations). I think there are tremendous Python resources available online, but wanted to capture another perspective to help teammates level up their skills.
The book ("Intuitive Python: Productive Development for Projects that Last") went through a beta release this spring, and was officially released this month.
It's available (including a few free sections) here: https://pragprog.com/titles/dmpython/intuitive-python/
In case anyone is thinking of becoming an author with the The Pragmatic Bookshelf, I'd be happy to share my thoughts about the publishing experience there (spoiler: I had a positive experience).
I'm proud to have released this book, and excited to share it here.
Thanks!
-David
Intuitive Python does cover some things that aren't present in Fluent Python (as far as I can tell): checking your code for errors with flake8 + mypy, using pdb to debug, profiling with cprofile, running external programs with subprocess, using the sqlite3 module, tempfile module, datetime + timezones, the Python official Docker images, and pip.
Fluent Python's ~800 pages really give great coverage for much of the standard library and patterns your students will see in wild Python, but the more compact ~140 page Intuitive Python might layer on some additional knowledge too.