I often find it strange how some programming books arbitrarily classify content as either “beginner” or “advanced.” The advanced material may not be advanced at all. Maybe by “advanced” the author means “the stuff I didn’t learn right away.” However, Expert Python Programming by Tarek Ziadé objectively is an advanced book. I had heard good things about the book from the Python 411 podcast and had it on my list of books to buy when the book’s publisher gave me a copy to review.
Expert Python Programming assumes the reader has a solid knowledge of Python. In some ways, it is the Python counterpart to Scott Meyers’ Effective C++ series, giving advice about recommended practice. But Ziadé’s Python book is broader than Meyer’s C++ books because Expert Python Programming goes beyond best practices for language use. The latter chapters discuss how to package and distribute Python applications, software life cycle management, documentation, test-driven development, optimization, and design patterns. I’d like to see more books follow this pattern, covering these important topics in the context of a particular language or tool set. I was particularly pleased to see 27 pages devoted to documentation.
True to its name, Expert Python is not for beginners; I’d recommend Wesley Chun’s Core Python for a first book. But I’d heartily recommend Expert Python Programming as a second Python book. The book has an impressive range of practical material including numerous links to even more resources.
Re: “beginner” and “advanced”.
I wonder how “Introduction to Algorithms” (aka CLRS) got its name? Maybe it should be called “Advanced Introduction to Algorithms”? It’s a great book, but not really for beginners.
Re: “beginner” and “advanced”.
It’s all marketing, and only indirectly correlates with consensus reality. It’s just a way to maximize sales. Depending on the publishing house, the author may not even have had much input. You can’t judge a book by it’s cover, and the title is a crucial part of the cover. Traditionally every last detail of the outside of a book is micro-managed to maximize sales, which is the reason for cover art, special typesetting for the title and/or author and/or series, etc.
Speaking of titles, did you know that for a long time there were none? Instead they used incipits, which are no more or less than the first few words of the actual text. The tradition lives on in the naming of traditional prayers such as “Our Father / Pater noster” or “Hail Mary / Ave Maria”.
Perfect timing, John. I’m about to embark on a journey to learn Python, so your recommendations come at the right moment. Your blog has been one of my favorite discoveries. The math writing along makes it worth following in Google Reader. Thanks. Sincerely, %
I was planning to purchase this book until I read Alex Martelli’s review on Amazon .com titled “lots of good stuff, but many infuriating details”. (Mr. Martelli is the author of Python in a Nutshell.) His 2 star rating (out of 5 possible) makes some interesting points.
John,
Everyone else in the world recommends “Dive into Python” for a first Python book (for those not new to programming.) I’m curious what about Chun’s book was preferable in your view. (I’ve not read either.)
I hear good things about Dive into Python; I just haven’t read it.