Learning Python, 5th Edition
By Mark Lutz, O’Reilly, 2013.
This is a comprehensive volume that sets about to teach and explain the core of the Python Language. Mark Lutz has been using Python since its inception, and his expert knowledge is felt on these pages. The book covers versions 3.3 and 2.7, while also giving plenty of information on earlier releases of 3.X and 2.X.
The book consists of 41 chapters over 9 parts:
- Getting Started
- Types and Operations
- Statements and Syntax
- Functions and Generators
- Modules and Packages
- Classes and OOP
- Exceptions and Tools
- Advanced Topics
Each chapter has a set of review questions, and each part has a set of exercises.
I found the book very readable, although the part about ‘Advanced Topics’ appears much more fast-paced than the other parts. The style includes very thorough explanations and illustrating examples throughout, and underway we often get cursory previews of later parts material, to put each topic in perspective.
The book achieves its purpose of teaching Python very well. Among many likeable things is that Lutz takes time to explain not just the ‘what’ and the ‘how’ of each language feature, but also to discuss the ‘why’ and ‘when’ – the rationale and meaningful use cases of each feature. This is an ideal that we always hope to see in this type of book. There is also a though-provoking language critique at the end of the book, where it’s discussed whether the language has devolved away from its original philosophy of simplicity and orthogonality.
The only (very tiny) complaint I have is that in a couple of places the text gets a bit too repetitive in my view. But the positive qualities of this book massively overshadow this.
A must read for prospective Python developers.