Author: Mark Pilgrim
Publisher: Apress, 2009
Aimed at: Supposedly at intermediate level
Pros: Covers collection of advanced topics
Cons: Lacks structure and focus
Reviewed by: Ian Elliot
This is supposed to be aimed at intermediate level programmers as there is already a complete beginners book in the same series.Even so the early chapters seem to be written for the beginner and detail how to download and install Python. When it comes to getting started with Python the author says:
"Books on programming usually start with a bunch of boring chapters about fundamentals and eventually build up to building something useful. Let's skip all of that."
Of course there is a reason why books take this approach and if you prefer a logical step-by-step presentation that builds on what you already know then you might find the fairly random introduction of topcis less than perfect. For example the very first program that you are presented with is a little on the long side and you are encouraged simply to read it through and see what you understand. If the author had provided even a few words about what the program was doing before asking you to read it then you might have a better chance.In the real world it is very rare that you meet any code without having some idea what it is doing. The problem is generally figuring out how it does things rather than what it does.
Surprisingly after the statement that the book isnt going to follow the usual course of boring stuff this is precisely what it actaully does. The early chapters deal with variable and data typing, strings, regular expressions and unit testing - yes unit testing. Before you have even got to grips with the language you are thrown into methodology. If you are ready for a consideration of methodologies you might well find the discussion interesting but if so what are you doing reading an introductory or even intermediate book on Python.
From here on in the book just hops about from advanced topic to advanced topic with no particular logic - refactoring, files, XML, serialising objects,web services and packaging Python. There is also a chapter devoted to a case study.
This book reads more like a collection of essays than a coherent introduction to a language. If you know Python 2 then you might find the later parts of the book useful in converting to Python 3.