Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Developer Reading List

, August 20, 2013 New books on Windows internals, JavaScript, Groovy, Python, and P=NP
  • E-mail
  • Print

Think Python

by Allen B. Downey

This book is a quick and easy introduction to programming and to Python. It is among the clearest introductions to both topics that I have seen in a long time. The author, a university professor, assembled the material in this book after needing a better introductory text for non-programmer students. He succeeded well in this concise (260 page) tome and follows very much in the K&R mold of short, lucid explanations with code snippets to back them up. The pedagogical dimension is especially visible in the many exercises scattered through the text.

What I particularly like is that each chapter has a section on debugging, which is inevitably the bane of new programmers. Conversely, I found that the absence of anything longer than a snippet to be a limitation. The snippets rarely exceed 10 lines and are mostly shown as REPL-based examples, rather than scripts or programs.  It's one thing to understand concepts; it's another to be able to string them together in a larger piece of software. The latter challenge and the issues of building programs are simply not discussed.

Unlike other books that are introductory, the explanations of basic programming concepts do not substantially interfere with learning about Python, although advanced topics are not tackled. Hard-core readers who have no tolerance for this and want to dive right into Python will probably be better served by Learn Python the Hard Way, which is free online. But for all others, Think Python will be an enjoyable and instructive tutorial.

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.