First off, I agree with others that the title is a bit misleading. I’d personally call it a “Python study roadmap,” because that’s how I perceived it. Secondly, I think you’ll benefit most from this book if you’re already familiar with at least one other programming language. Given that, I think this is a really solid book in that specific context.
The book mirrors my own journey in learning Python—from the fundamentals to building small- and medium-sized applications. Since it reads more like a roadmap, you’ll encounter core concepts but will often need to do your own research to deepen your understanding. Keep in mind that the book was published in 2014, so many enhancements have occurred since then, especially in popular packages. That said, I believe there’s value in grinding through things with a rough tool first—it helps you understand the mechanics before switching to sharper tools that make life easier.
Chapter Highlights 🔹 Chapter 1 introduces Python’s core features: data types, syntax, and how to write functions, classes, modules, and packages. 🔹 Chapter 2 focuses on automating tasks with Python scripting. It covers the standard library, os, subprocess (for invoking CLI applications), time, datetime, calendar, and file manipulation (CSV, config, HTML, XML). It also touches on using ctypes to access C functions from dynamic libraries. You can even send OS-level events to GUI applications, though this is error-prone and should be a last resort. 🔹 Chapter 3 explores ways to store application data: flat files, indexed files, pickles, shelves, and SQL databases. For new learners, I’d recommend exploring pandas as an alternative after this chapter. 🔹 Chapter 4 discusses structuring your app—from CLI to GUI. It introduces the MVC model, UML, and the concept of a containment tree in GUI design. There’s a fun Tic-Tac-Toe game example, and the logging module is introduced to help record significant events. 🔹 Chapter 5 dives into web applications. It explains what an API is, introduces web programming with Python, and walks through the Flask framework and basic networking concepts. 🔹 Chapter 6 covers unit testing and the concept of test-driven development. It also introduces the Python debugger, exception handling, virtual environments, requirements.txt for package management, and how to release your package to PyPI. 🔹 Chapter 7 showcases how Python can support a wide range of programming areas—from drawing and graphics processing to scientific computing, game development, multimedia, and even programming physical devices like the Raspberry Pi.
I thought this would be a book on managing Python projects: packing, distribution, testing, ways to manage a proper project instead of a pile of code. Instead, it's a summary of the language and some third-party modules. Emphasis on summary: it would be hard to go far without turning to other references, and many modules are only mentioned in passing. Some don't even get that, with a few instances of "it's possible to do x" with no idea of how. Not bad as a very high-level view of what's available in the ecosystem, but not useful as a reference, and middling as a tutorial. Some screamingly bad style (lots of import *) and other bad ideas (put your database constraints in your code instead of in the db? What's the point of having the RDBMS if you don't have it do the work?)
Extremely messy book! It pretended to cover a lot of topics including syntax, TDD, frameworks and so on. It is just mess of generic Python information. Highly disappointing!