Initial Review: Python Essential Reference

Disclosure: I received a free review copy of Python Essential Reference, Fourth Edition.

I’ve never really used reference material, I’ve always loved tutorials, howtos, and guides for learning things, but I’ve usually shunned reference material in favor of reading the source. Therefore, I didn’t think I’d have a huge use for this book. However, so far (I’ve read about half the book so far) I’ve found it to be an exceptional resource, and I definitely plan on keeping it on my bookshelf.

The first third or so of the book is a reference on the syntax and other basic constructs of Python, it’s probably not the part of the book you’ll be consulting very frequently if you’re an experienced Python programmer, however the end of this section is a bit of “Testing, Debugging, Profiling, and Tuning”, this I can see myself flipping back to, as it extensively documents the doctests, unittests, pdb, cProfile, and dis modules.

The next third of the book is all about the Python library, including both the builtins and the standard library. This section is organized by functionality and I can definitely see myself using it. For example it has sections on “Python Runtime Services” (like atexit, gc, marshal, and weakref), “Data Structures, Algorithms, and Code Simplification” (bisect, collections, heapq for example), “String and Text Handling” (codecs, re, struct), and “Python Database Access” (PEP249, sqlite, and dbm). There’s more, but this is as far as I’ve read. Reading through like a novel each of these sections has exposed me to things I wasn’t aware of or don’t use as frequently as I should, and I plan on using this book as a resource for exploring them. David Beazley has painstakingly documented the details of these modules, paying particular attention to the functions and classes you are likely to need most.

All in all I’ve found the Python Essential Reference to be a good book, especially for people who like reference documentation. Depending on how you use Python this book can serve as an excellent eye opener into other parts of the language and standard library, and for me I think that’s where a ton of value will come from, as a day to day Python user I don’t need a reference for most of the language, but for the bits it’s introducing me to, having it handy will be a leg up.