Learning Python by Mark Lutz; O’Reilly Media
Learning Python, now in its fifth edition, is a humongous tome that covers Python 2 and 3. In covering both versions of Python, it does a tremendous service to the beginner. As a new Python programmer who’s well-versed with other programming languages, I found the book easy to get up to speed with, and its verbosity and thoroughness an asset rather than a liability.
Part 2 of the book has excellent coverage of basic types and data structures. Having read Parts 1 and 2, Parts 3, 4, and 5 seem repetitive sometimes, and are probably most useful as a reference.
Chapter 3 makes a quick reference to pdb and Winpdb, but the coverage of debuggers is otherwise quite sparse. Debugging multithreaded apps without a good debugger is a pain. Not a huge omission as the book does not cover multithreading.
Chapter 9 covers the json module briefly, but the book covers neither socket nor httplib/http.client modules. Network and web programming are required knowledge even for beginners these days. Programming Python, by the same author, does cover these topics in great detail.
Chapter 25 covers advanced topics regarding modules, such as using dual mode code for implementing tests, but that is about the only coverage of unit testing you’ll find in the book. It refers you to the official documentation for modules such as unittest and doctest.
I found Test Your Knowledge Quiz and Answers at the end of each chapter useful. After having read syntax highlighted code in books such as Python Cookbook, I found the code samples in the book rather dull.
I thank O’Reilly Media for providing the book for review.