Python: How to Program by Deitel and Deitel, Prentice Hall 2002, 1292 pages.

This is a very different kind of Python book. Personally, I got a lot out of it for the following reasons.

The book has a different pedagogical approach, no doubt due to the fact that Deitel and Deitel have a long line of such books meant to be used as text books. For me, this particular pedagogical approach worked well. It is based on repetition, highlighting, and sort of pounding the facts into the reader. Reading the book, I felt like I was back in college. There are questions and answers, reviews, and lists of terminology. But most of all, the book used just the right amount of repetition to pound the facts into my brain.

I think the book will be more useful for relative newbies than for accomplished Pythonistas. The repetition will probably be infuriating to those who are already knowledgeable. But if you already know something about Python, but still need to review and learn, and you like to learn by absorbing information presented in multiple ways, this book might be quite useful for you.

Of course, it also costs $74 (list price), making it the most expensive Python book of which I am aware! Whether it is worth that to you I do not know. For me, it was worthwhile; but I am an extreme case who really enjoys learning Python, for fun, and who is a slow learner at this stage of my life, and who therefore wants and needs review and repetition.

The book is attractively printed on quality glossy paper. I think the style of printing, and the way of highlighting the code, is exceptionally good; as it should be given the cost and the experience of the firm producing so many programming texts.

There is an awful lot of stuff covered in the book, but it is also full of "filler" material in its later chapters. The filler includes four chapters on and X, two on each, and the and X chapters are nearly identical.

I got a lot out of the first half of the book, which is a good college text style coverage of the basic language. There are also chapters covering 'advanced' or unusual topics, including XML, Database Application Programming Interfaces, Security, Data structures, Multimedia, Python Server Pages (using Webware), and Unicode. Some of these chapters are no more than very brief introductions, such as the Multimedia one; others genuinely offer a little more than is commonly found in a general book form, such as the Data Structures chapter.

Then again, much of this 'extra' material has the feel that it is adapted from such chapters in other Deitel and Deitel books on other languages. Still, it can be of educational use for the right students.

On balance, I would not recommend this book as a first book on Python. Neither would I recommend it to a Python programmer looking for a book to learn advanced topics. I would recommend it to a Python programmer who has read several books, but still wants and needs more review of both beginning and intermediate topics.

If you are a beginner, Learning Python or Core Python might be better choices for a first book. If you are an experienced Pythonista looking for in depth and advanced topics, Programming Python is a better choice. But if you are a serious student of Python and are looking for yet more material to use for acquiring in depth understanding of the language, then I can and do recommend this book.