Tuesday, May 22, 2007

Mark Lutz & David Ascher :: Learning Python

“Learning Python,” by Mark Lutz and David Ascher, is successful not only as an introduction to the Python programming language, but also as a model of what every introductory programming text should be. Accessible and relevant to absolute beginners and expert programmers alike, “Learning Python” quickly accelerates the reader from simple ‘hello world’ examples, through the core language, and towards advanced features, libraries, and tools.

Clear and concise, “Learning Python” proceeds at a pace that allows for adequate coverage of difficult programming concepts, while not overwhelming the reader with unnecessary details. Additionally, Lutz and Ascher’s tone, often light and sometimes conversational, results in an enjoyable reading experience. Examples are utilized in order to illustrate key concepts, and are, for the most part, simple enough to be read inline with the primary text. Exercises are deferred to the conclusion of each section, where they may incorporate multiple concepts and broader contexts. Exercises, however, are not prohibitively complex, and example solutions are provided to assist the reader. In addition to examples and exercises, the authors provide common coding ‘gotchas’ and ‘why you will care’ blocks, to provide assistance and context for difficult concepts.

Unfortunately, despite the best efforts of Lutz and Ascher, a small number of sections pertaining to difficult topics remain confusing. These sections, however, are often noted as such, and multiple explanations are given at different levels of abstraction. Perhaps the greatest improvement to the text could be made through the addition of a general reference section. This would greatly simplify the use of the text as a basic reference in addition to an introductory guide.

Despite the aforementioned shortcomings, “Learning Python” is a fantastically written and well-organized introduction to the Python programming language. In fact, “Learning Python” is a fantastically written and well-organized introduction to programming in general. Given its pronounced successes, one must wonder, could “Learning Python’s” authors be persuaded to write texts in other subject areas? Perhaps quantum mechanics? Or electromagnetics?

No comments: