Book Review: Expert Python Programming
Date/Time: April 8, 2009 at 21:04 PMExpert Python Programming
By Tarek Ziade
ISBN: 978-1-847194-94-7
Release date: September 2008
Packt Publishing
A couple of weeks ago, Niraja Mulye from Packt Publishing sent me a copy of Expert Python Programming by Tarek Ziade and asked me to review it.
To put it simple, the book is fabulous, not because it's full of advanced python programming tricks and practices, but also because they're presented in a way that makes them easy and interesting to follow.
As the name of the book intends, it's aimed for python developers who want to be more efficient and productive. The book is divided to 14 chapters, and even though some of them might seem like they've slipped from the beginners' edition or a little out of place, all of these chapters are really useful and full of information, which makes the time you spend on reading really worth it.
Chapter 1 represents this case really well, which is on Installing Python. Through this chapter you'll probably find some ideas that you haven't heard of or maybe forgot about.
The second and third chapters talk about syntax best practices above and below the class level, from Iterators, Generators and Decorators to Superclasses, descriptors and meta-programming, these two chapters are full of useful information.
Chapter 4 is all about following the rules and conventions, best naming practices, styles and guides.
Chapter 5 and 6 are about writing packages and applications, common patterns and approaches and some good tips on making applications more efficient and packages easier to use.
Chapter 7 is on working with zc.buildout, which pretty much covers all what you need to know about it.
Chapter 8 is great for beginners who really want to start working on the expert level. It talks about managing code and projects, everything you need to know to keep your code under control. It focuses on Mercurial which is a great python based revision control system. Chapter 9 also talks different approaches and ways to manage software development and software life cycle
Chapter 10 is about documenting your project, which is really great because I think that a project without a good documentation is definitely missing something. It's not like that you'll be a super technical writer after reading this chapter, but I like the idea of letting developers know that it matters.
Chapter 11 is about Test-Driven development, another great chapter that's very well presented.
Chapter 12 shows some techniques and principles for optimizing your code. Then, Chapter 13 presents some solutions for you to optimize your code the right way.
Chapter 14 shows some useful design patterns you can follow to solve common problems you might encounter.
Though a lot of the ideas are very well explained, I think that some of them got a little less than what they deserve.
In general, I really enjoyed reading the book, very well presented by Tarek Ziade. If you're a beginner python developer, this book is a great to develop your skills. And even if you are an expert, consider this book as a good light reading to remember some old - but important- stuff.
You can read a sample chapter [Chapter 10: Documenting your project] from here.
That was an inspiring post,
this is a great review i have recently oreddered a copy of this book and it this is interesting... keep up the good work
Thanks for writing, most people don't bother.
