Good Habits for Great Coding

Improving Programming Skills with Examples in Python

  • Michael Stueben

Table of contents

  1. Front Matter
    Pages i-xxix
  2. Not Learned in School

    1. Front Matter
      Pages 1-1
    2. Michael Stueben
      Pages 3-13
    3. Michael Stueben
      Pages 15-25
    4. Michael Stueben
      Pages 27-33
    5. Michael Stueben
      Pages 35-51
  3. Coding Advice

    1. Front Matter
      Pages 53-53
    2. Michael Stueben
      Pages 55-66
    3. Michael Stueben
      Pages 67-90
    4. Michael Stueben
      Pages 91-94
    5. Michael Stueben
      Pages 95-103
    6. Michael Stueben
      Pages 105-110
    7. Michael Stueben
      Pages 111-122
    8. Michael Stueben
      Pages 123-126
    9. Michael Stueben
      Pages 127-143
    10. Michael Stueben
      Pages 145-151
    11. Michael Stueben
      Pages 153-177
  4. Perspective

    1. Front Matter
      Pages 179-179
    2. Michael Stueben
      Pages 181-195
    3. Michael Stueben
      Pages 197-201
    4. Michael Stueben
      Pages 203-207
    5. Michael Stueben
      Pages 209-218
  5. Walk the Walk

    1. Front Matter
      Pages 219-219
    2. Michael Stueben
      Pages 221-239
    3. Michael Stueben
      Pages 241-252
    4. Michael Stueben
      Pages 253-305
  6. Back Matter
    Pages 307-314

About this book


Improve your coding skills and learn how to write readable code. Rather than teach basic programming, this book presumes that readers understand the fundamentals, and offers time-honed best practices for style, design, documenting, testing, refactoring, and more. 

Taking an informal, conversational tone, author Michael Stueben offers programming stories, anecdotes, observations, advice, tricks, examples, and challenges based on his 38 years experience writing code and teaching programming classes. Trying to teach style to beginners is notoriously difficult and can easily appear pedantic. Instead, this book offers solutions and many examples to back up his ideas.

Good Habits for Great Coding distills Stueben's three decades of analyzing his own mistakes, analyzing student mistakes, searching for problems that teach lessons, and searching for simple examples to illustrate complex ideas.  Having found that most learn by trying out challenging problems, and reflecting on them, each chapter includes quizzes and problems in each chapter. The final chapter introduces dynamic programming to reduce complex problems to subcases, and illustrates many concepts discussed in the book. 

Code samples are provided in Python and designed to be understandable by readers familiar with any modern programming language. At the end of this book, you will have acquired a lifetime of good coding advice; the lessons the author wishes he had learned when he was a novice.


coding advice coding style programming philosophy teaching programming testing self-documenting code refactoring code comments step-wise refinement coding tricks algorithms dynamic programming Python

Authors and affiliations

  • Michael Stueben
    • 1
  1. 1.Falls ChurchUSA

Bibliographic information