You’ve learned the basics of Python, but how do you take your skills to the next stage? Even if you know enough to be productive, there are a number of features that can take you to the next level in Python. Pro Python explores concepts and features normally left to experimentation, allowing you to be even more productive and creative. In addition to pure code concerns, Pro Python will develop your programming techniques and approaches, which will help make you a better Python programmer. Not only will this book help your code, it will also help you understand and interact with the many established Python communities, or even start your own. For more information, including a link to the source code referenced in the book, please visit
Any expert Python programmer knows that the selection of books covering advanced topics is quite limited. With its rosy title, Pro Python, whose second edition recently hit the shelves, definitely targets that reduced group of customers. Keeping these few people well fed is not as easy as it may seem. Simply talking about stuff that starts with a double underscore is not enough. Not at all. In this small list of advanced reads, this title stands in the middle: it gives the reader some good gem, but most of the time he will feel like it just another text covering basics concepts.
As just stated, the title suggests Pro Python should feed the reader’s hunger for advanced topics, those that, once you mastered, make you stand out. I must say that I feel like I have been served only an appetizer. While on the one hand the book certainly has some very positive note, on the other there are flaws that greatly lower its overall value, mainly readability.
But let’s start with the bright side. What I have enjoyed most of the book is, by far, the choice of the author to cover, step by step, the Zen of Python. While the interpretation is certainly subjective, I appreciate both his ideas and the choice itself to discuss it. I don’t remember any other title dedicating all that time and words to the subject. Similarly, I have been positively surprised by the chapter dedicated to software licenses, something any programmer should be aware of.
Speaking of more technical material, I think the author gives his best when he discusses multiple inheritance and how, internally, Python resolves it through the MRO. That dedicated to decorators also stands out among others. Here Marty gives details that other texts, such as Effective Python, do not. The real value for the developer comes by combining the information from these different sources, thus getting an even better view of the whole topic.
So, let’s slowly move to what I reckon being deficiencies of this title. First, while the chapters aforementioned do indeed deliver good value to the avid reader, I must admit that the examples that come with the theory are often very spartan, reduced to very few lines.
Most of the subjects covered are not advanced. The chapter dedicated to strings, for example, doesn’t go deep enough and, just like all the last chapters, is very short. Too short. The same is true for garbage collection, just to mention another.
The weakest point of the whole title in instead readability. I think that the there is not a real flow that takes the reader from one concept to another, smoothly. On the contrary, he often finds himself thrown to a very different subject abruptly.
Overall the book is not bad, but there are definitely better alternatives for those seeking advanced knowledge.
Suggested readings: Effective Python: 59 Specific Ways to Write Better Python: this title certainly covers more expert topics that Pro Python does. Still, the two titles are somehow complementary and the reader can benefit combining them. Learning Python Design Patterns: a very good book completely dedicated to design patterns, a subject each programmer must know.
As usual, you can find more reviews on my personal blog: http://books.lostinmalloc.com Feel free to pass by and share your thoughts!
Update: I finally finished this, and refer to it quite a bit since it's easy to carry a bag full of tech books on the kindle now. I think the bits on advanced python code patterns and usage of things like decorators and closures and all the functools stuff were the most useful to me. I was able to begin using these techniques right after reading the chapter, and I am always finding new ways to apply them in both my day job and the game development I'm invariably always working on.
--
I'm about 40% of the way through this book according to my Kindle, and I freakin' love it. I swear I'm 2-3x as productive after the first 5 chapters.
This book is a must-read for anyone who wants to level up their Python skillz.
I think this is an ok book. It covers a lot of python in-depth, but not as much as I would think. There's a lot of basic explanations that I don't think should be on this book.
I've read a similar book by the same author, Pro Django, and looks like some of the parts are borrowed from each book.
It's an interesting book however, but I fell is not a must.
Good. Brief, professional topics from language to code shipping, useful utility code snippets (decorators especially). Well explained super(), metaclasses, bound and unbound functions. Chapter 4 is freaking great! 3rd and 5th are well done too.
Bad. Doesn't explain how to install Python so I son't recommend it to begginers. Kind of dated, gc examples doesn't work the same way in Python 3.4+. Explains gc and weakref, talks about reference counting and doesn't show sys.getrefcount(). Eh... Chapter 8, why bother with explaining reST? It has it's on documentation and author focuses too much on least needed feature for code documenting which are weblinks (instead class/function links). Chapter 11 is a waste of time. Author makes a frameword and doesn't show real usecases for it before starting. Appendixes are copies of PEPs. Really? Is this legal?
Recommended to: advanced programmers, "want to learn Python fast"