Top critical review
18 people found this helpful
on 31 March 2014
The first thing that strikes you about this book is that it's big. 1500 pages big. Big enough that physically handling the book is inconvenient.
Upon reading it, you'll see that much of the size comes from repetition. Many of the chapters present alternative ways to do the same thing, often using this technique as an explanatory device; yet somehow, the author manages the doublethink of continually repeating the Python "There should be one-- and preferably only one --obvious way to do it" mantra.
The order in which the material is presented is wrong. The book explains Python's basic types before its syntax; this means it's 300 pages in before you can actually start writing code that does anything. It's 473 pages in before the concept of a function is introduced; even if this text was written for those who had done no previous programming at all, this seems bizarre. Obviously the sections on types have to talk a little bit about syntax and functions (otherwise you wouldn't be able to say anything about what those types actually do in the first few chapters), which is yet again a recipe for repetition.
Exercises are few and far between. There are "quizzes" at the end of each chapter, but they're very simple, knowledge-based questions which don't require you to write code. Programming is learned by doing, so you'll need to invent your own projects to do if you want to learn with this book.
If you can ignore the structural defects, the book is beautifully written at the detailed level, and the code examples are of a high standard. It is highly readable - you won't need to continually re-read to understand what's going on - but the repetition means you will find yourself skimming or skipping large sections of the text.
The book is a broad overview of a vast language; it is not a detailed API reference, and doesn't have examples of every possible API call. And neither should it be; all that stuff is online. It does explain the concepts well and give you an insight into why Python has evolved to be the way it is. However, if you're an experienced programmer looking for a quick way to break into the Python world, you might want to look for something a little more concise.