Most helpful positive review
27 of 28 people found the following review helpful
An excellent reference to get the maximum out of Python
on 13 August 2009
The author of Python Essential Reference is David Beazley, who among other occupations created the open-source SWIG tool and the WAD mixed-languages debugger. His background is pervading throughout the book, in which the reader gets a clear sense of what is happening behind the Python programming language and learns how to use it efficiently instead of considering it as a black box.
The first 20 pages give an overview of the language and although it is called a "tutorial introduction", it should be understood that its purpose is for a programmer to see what Python looks like, and not for a novice to get their first programming course.
The next 156 pages offer a thorough review of the language and its environment. This is a very interesting part and should not be skipped even by people who already know Python. I said "review" but an experienced programmer should be able to learn the language by reading those chapters and putting them into practice with extra exercises.
Instead of simply describing the language, the author also hands out tricks of the trade, showing how to acquire good coding habits while using an sensible approach regarding the performance, which is often essential in a dynamic language. The fourth edition is focusing on version 2.6 but offers some historical perspective by pointing out several elements that were recently improved, or which are about to change in upcoming versions.
The first part of the book concludes with useful recommendations on program debugging and profiling.
The second part contains 388 pages and goes through the Python library, presenting the essential modules together with examples, notes and advices. After all, this is a reference, so we shouldn't expect any less.
Last but not least, the third part comprises 30 pages of precious information on Python/C interface for extending the language or embedding it in larger applications.
An appendix introduces version 3 for those who are ready to make the leap.
For the sake of completeness, if I were to make any reproach or wish for improvement, it would probably be on the overall presentation (and would be a very minor one). The style in the code excerpts could be more consistent in the first part of the book, and the second part could do with more emphasis on the ... reference ... character of the text, perhaps by providing a more convenient way to navigate through the different modules and by using more obvious styles for the different parts. I sometimes had the impression of reading a long listing of modules and methods instead of looking through a reference book. While the contents is superior to other references like "Python in a Nutshell", I found it easier to retrieve what I needed with the latter - a bit on the brink of obsolescence today - than I do now with the former.
I would definitely recommend this book to anyone desirous of improving their programming skills in Python, or having to write optimized code because performance is an issue.