Learning Python, 3rd Edition by Mark Lutz
Publisher: O'Reilly Media, Inc
What attracts me about Python is its simplicity. And I mean simple in the right way through a minimum of accidental complexity and not, like Java, by limiting the possible design space. I plan to use Python for much of my everyday scripting and was looking for a book that quickly got me up to speed. With that goal, Learning Python was far from a perfect choice.
Sure, Learning Python is well-written and covers most of the language. Taken chapter by chapter, each one of them is clear and informative. The problem I have with the book is that it fails to communicate the whole picture. This is a far too common problem with introductory texts; features are introduced chapter-wise and we never get the opportunity to see how they work together and how larger programs are written. I would rather turn the whole thing upside down; start by a small, yet real-world example, and walk us through the program design step by step. Features and idioms are introduced as needed. After that, subsequent chapters can dive deeper into specific language features. The difference is that the reader now has a foundation and context for his learning.
With the recent release of Python 3.0, Learning Python is already slightly outdated (the book covers version 2.5). Most of it is still valid, but as a newcomer to the language, it gets pretty frustrating as a hello-world program fails (I quickly learned that the old print statement is a function now...).
If you already know a few programming languages, Learning Python is probably too basic and slow paced. I found the online manual An Introduction to Python more useful. That said, credit to Mark Lutz for all his enthusiasm about Python; it shines through the pages and is inspiring.
Reviewed April 2009