Review: Expert Python Programming by Packt (2008)

Before Christmas I was asked if I’d like to review Packt’s new Expert Python Programming (at Packt).

I’ve always recommended Beginning Python – From Novice to Professional to Python first-timers (new 2nd ed) along with Python in a Nutshell for those who want a thorough reference guide.

I sat on the review for a while as at first I figured the book was a bit light on interesting material.  My mistake – upon proper investigation I realised there’s quite a lot in there, I’ll definitely be using the book in the future.

Here’s a summary by Chapter:

  1. Installing Python and iPython, not much here if you’re comfy installing Python
  2. Lower-level code basics including list comprehensions, iterators and decorators
  3. Subclassing and use of ‘super’
  4. Naming – a very important topic!  This is something I pick-up on in my ShowMeDo videos with Pep 008, getting new developers to name consistently and sensibly is very important.  Includes a short description of building eggs, deprecating code, pyLint and CloneDigger (a useful-looking tool to find repeated code segments that could be refactored)
  5. Using DistUtils and SetupTools to creates eggs and upload them to the PyPI (CheeseShop of old). I’ve never done this and this guide looks useful
  6. Building a new application using virtualenv.  This focuses on setting up a package to aggregate RSS feeds with feedparser and SQLAlchemy
  7. Distributing the entire app using zc.buildout using a self-contained directory structure
  8. Version control, focuses on the distributed version control tool Mercurial and the continuous integration tool BuildBot
  9. Project Lifecycle – covers Waterfall and Agile techniques, I thought this was a very light chapter.
  10. Documentation – how to document for others to read, writing using reSructuredText
  11. Test Driven Development – a very important chapter for any longer-running project, covers unittest, doctest and nose
  12. Optimisation introduction – profiling speed, memory usage (Guppy-PE) and network usage – a good intro if this is new to you
  13. Optimisation techniques – focuses on using more efficient collections, multi-processing with pyProcessing and caching
  14. Design Patterns – a simple overview of some of the more obvious patterns

Do I recommend the book?  I think if the above topics are new to you then you’d benefit from the book.  My main criticism is that the chapters aren’t very deep, sometimes the topics provide little more than an intro to further on-line research.  That said, if the topics are new then the advice generally seems helpful.

A nit pick is that the editorial control needs improvement, I came across typos and odd grammar.  Maybe I’m spoiled by O’Reilly books where you rarely find typos.

For anyone coming to the Brighton Python usergroup on Feb 18th (google group) I’ll bring along my copy.

Here’s a free chapter and a set of other reviews.


Ian is a Chief Interim Data Scientist via his Mor Consulting. Sign-up for Data Science tutorials in London and to hear about his data science thoughts and jobs. He lives in London, is walked by his high energy Springer Spaniel and is a consumer of fine coffees.