Author: Tim Hall & J-P Stacey
Aimed at: Beginners
Pros: Plenty of examples
Cons: Introduces ideas that will confuse a beginner
Reviewed by: Mike James
Books for absolute beginners are hard to write. Mainly because the author has to have some idea what sort of order to present the ideas so that they make sense to an absolute beginner and, almost as important, they have to suppress the desire to explain everything. For a beginner completeness is not the most important factor because they are usually very willing to fill in the missing details at a later date.
This introduction to Python suffers from the usual problems of presenting idea that could wait until later and not emphasising the important ideas. It also tries to engage the interest of the reader by presenting examples that are "exciting" - like a text adventure game. Of course the examples turn out to be lame - they have to be because they are aimed at beginners.
The ideas are presented slowly enough but the author tends to suddenly feel the need to explain binary and octal when the reader is probably still struggling with the idea of a variable or what assignment means. There is also a lot of use of undefined terms and overall a fairly chaotic order of presentation.
A particular problem with this book is a misplaced emphasis on process, i.e. how you should go about writing a program, rather than getting on and actually writing something. Methodology is something that the beginner can come back to after they have made enough mistakes for it to make sense and seem desirable.
The book also quickly loses sight of the fact that it supposed to be for the beginner and by later chapters we are treated to objects and code reuse and all sorts of semi-advanced topics, illustrated with overlong examples that make it next to impossible for the beginner to extract any goodness.
If you are a complete beginner you will have to work very hard to get much from this book and if you are a sophisticated programmer then the pace will be too slow until you reach the later chapters.