"Dive Into Python" by Mark Pilgrim, Apress 2004, 413 pages, ISBN 1-59059-356-1


This is a great book for experienced programmers who are looking to learn Python, and for Python programmers looking for a second Python book after an introductory text such as O'Reilly's "Learning Python". The book wastes no time with unnecessarily basic explanations but thoroughly covers what a programmer needs to know when learning a new language. The book makes excellent use of a reader's knowledge of other languages by using illustrations from C, Java, VB and Perl.

I found the book's coverage of internet and web programming to be particularly useful. Who could possibly be better then Mark Pilgrim, the creator of pyGoogle, to do this? There are five thorough chapters about such subjects, and the author's knowledge and explanations of SOAP and web services benefit from his extensive personal experience and expertise.

The author's style strikes a perfect chord with me, in that he offers clear explanations that always seem to dig deeply into topics that I find difficult, without ever wasting words on concepts I already understand. While your mileage may vary, this style allows me to make the most of my reading time, and it allows the author to cover several relatively advanced topics without creating an overly long book.

As one aspect of this direct and concise style, each major section of the book begins with a complete working program's source code, and that source code is then explained in its entirety, line by line, in brief but perfectly clear language that makes it impossible to not understand what the code is doing. The explanations are straight to the point and reading them tends to flow along smoothly, partly becuase of the author's superb sense of what a learning programmer really wants to know, and partly because he never wastes our time; and with all that he still manages to display a modest sense of humor.

The advanced topics covered include chapters on Unit Testing, Test-First Programming, Refactoring, Functional Programming, Dynamic Functions, and Performance Tuning; as well as the aforementioned coverage of internet programming that includes chapters on HTML Processing, XML Processing, Scripts and Streams, HTTP Web Services, and SOAP Web Services.

Another chapter that was very useful to me was "The Power of Introspection" that covers some of Python's special and built-in functions and methods. Everything in Python is an object, and Python's flexible and dynamic nature allows some interesting and creative techniques that may not be apparent to a casual observer. While I had certainly been exposed to everything in this chapter before, I have a much better insight into these kinds of techniques than I had before reading this book.

Mark Pilgrim is a master Python programmer. He has produced a work that is a very worthy tool for those who are serious about learning and using Python. True to his helpful style, he has made the book freely available on his web site, along with three other free, online books and numerous of his useful open source programs that have become popular standards in the Python community.