Top critical review
34 people found this helpful
Not suitable for beginners
on 29 August 2013
This book is huge and goes into vast detail. There is considerable repetition, and it is jargon heavy. If you are an experienced programmer who came up via the computer science route, it will all make sense and you will be able to relate it to things you already know about. If not, you could find yourself drowning in a sea of words.
I'm leaving this review because I think the title is a bit misleading. The blurb describes it as an "easy to follow self-paced tutorial". I would not use this book as a general textbook to learn Python in this way. It is quite abstract. For instance, when the author starts on OOP, he seems to focus on how Python implements OO internally. The way that the interpreter searches for class members up a tree is part of the technical detail of the language itself, but it isn't much use to a programmer who just wants to convert some OO code from another language into Python, or someone who doesn't yet understand OO. At one point the author seems to be reassuring his audience that this OO stuff isn't really a new paradigm, it's just a slightly different way of doing the same thing that is already done by modules and packages.
I think the main use for this book is for someone who finds himself in a new job where there is a lot of pre-existing Python code to be maintained and added to, and where over the years a number of different approaches have been used so that he is constantly coming across new usage patterns, or the same thing done in different ways. For this, it is very good because of its exhaustive attention to detail. For someone who just wants to learn the basics of a programming language, this book could be extremely off-putting. For instance, although the author claims that the Python syntax makes it easier to understand than Java, there are plenty of excellent Java textbooks which explain OO and its Java implementation very clearly. Putting them side by side might well convince the beginner that Java is much easier to learn.
It certainly has a place and it is valuable that so much information is available in one place.