97 Things Every Programmer Should Know

97 Things Every Programmer Should Know

These 97 contributions will be picked from the Edited Contributions and published in O’Reilly’s 97 Things series.


Get 97 short and extremely useful tips from some of the most experienced and respected practitioners in the industry, including Uncle Bob Martin, Scott Meyers, Dan North, Linda Rising, Udi Dahan, Neal Ford, and many more. They encourage you to stretch yourself by learning new languages, looking at problems in new ways, following specific practices, taking responsibility for your work, and becoming as good at the entire craft of programming as you possibly can.

Table of Contents

  • Act with Prudence by Seb Rose
  • Apply Functional Programming Principles by Edward Garson
  • Ask “What Would the User Do?” (You Are not the User) by Giles Colborne
  • Automate Your Coding Standard by Filip van Laenen
  • Beauty Is in Simplicity by Jørn Ølmheim
  • Before You Refactor by Rajith Attapattu
  • Beware the Share by Udi Dahan
  • The Boy Scout Rule by Uncle Bob
  • Check Your Code First before Looking to Blame Others by Allan Kelly
  • Choose Your Tools with Care by Giovanni Asproni
  • Code in the Language of the Domain by Dan North
  • Code Is Design by Ryan Brush
  • Code Layout Matters by Steve Freeman
  • Code Reviews by Mattias Karlsson
  • Coding with Reason by Yechiel Kimchi
  • A Comment on Comments by Cal Evans
  • Comment Only What the Code Cannot Say by Kevlin Henney
  • Continuous Learning by Clint Shank
  • Convenience Is not an -ility by Gregor Hohpe
  • Deploy Early and Often by Steve Berczuk
  • Distinguish Business Exceptions from Technical by Dan Bergh Johnsson
  • Do Lots of Deliberate Practice by Jon Jagger
  • Domain-Specific Languages by Michael Hunger
  • Don’t Be Afraid to Break Things by Mike Lewis
  • Don’t Be Cute with Your Test Data by Rod Begbie
  • Don’t Ignore that Error! by Pete Goodliffe
  • Don’t Just Learn the Language, Understand its Culture by Anders Norås
  • Don’t Nail Your Program into the Upright Position by Verity Stob
  • Don’t Rely on “Magic Happens Here” by AlanGriffiths
  • Don’t Repeat Yourself by Steve Smith
  • Don’t Touch that Code! by Cal Evans
  • Encapsulate Behavior, not Just State by Einar Landre
  • Floating-point Numbers Aren’t Real by Chuck Allison
  • Fulfill Your Ambitions with Open Source by Richard Monson-Haefel
  • The Golden Rule of API Design by Michael Feathers
  • The Guru Myth by Ryan Brush
  • Hard Work Does not Pay Off by Olve Maudal
  • How to Use a Bug Tracker by Matt Doar
  • Improve Code by Removing It by Pete Goodliffe
  • Install Me by Marcus Baker
  • Inter-Process Communication Affects Application Response Time by Randy Stafford
  • Keep the Build Clean by Johannes Brodwall
  • Know How to Use Command-line Tools by Carroll Robinson
  • Know Well More than Two Programming Languages by Russel Winder
  • Know Your IDE by Heinz Kabutz
  • Know Your Limits by Greg Colvin
  • Know Your Next Commit by Dan Bergh Johnsson
  • Large Interconnected Data Belongs to a Database by Diomidis Spinellis
  • Learn Foreign Languages by Klaus Marquardt
  • Learn to Estimate by Giovanni Asproni
  • Learn to Say “Hello, World” by Thomas Guest
  • Let Your Project Speak for Itself by Daniel Lindner
  • The Linker Is not a Magical Program by Walter Bright
  • The Longevity of Interim Solutions by Klaus Marquardt
  • Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly by Scott Meyers
  • Make the Invisible More Visible by Jon Jagger
  • Message Passing Leads to Better Scalability in Parallel Systems by Russel Winder
  • A Message to the Future by Linda Rising
  • Missing Opportunities for Polymorphism by Kirk Pepperdine
  • News of the Weird: Testers Are Your Friends by Burk Hufnagel
  • One Binary by Steve Freeman
  • Only the Code Tells the Truth by Peter Sommerlad
  • Own (and Refactor) the Build by Steve Berczuk
  • Pair Program and Feel the Flow by Gudny Hauknes, Ann Katrin Gagnat, and Kari Røssland
  • Prefer Domain-Specific Types to Primitive Types by Einar Landre
  • Prevent Errors by Giles Colborne
  • The Professional Programmer by Uncle Bob
  • Put Everything Under Version Control by Diomidis Spinellis
  • Put the Mouse Down and Step Away from the Keyboard by Burk Hufnagel
  • Read Code by Karianne Berg
  • Read the Humanities by Keith Braithwaite
  • Reinvent the Wheel Often by Jason P Sage
  • Resist the Temptation of the Singleton Pattern by Sam Saariste
  • The Road to Performance Is Littered with Dirty Code Bombs by Kirk Pepperdine
  • Simplicity Comes from Reduction by Paul W. Homer
  • The Single Responsibility Principle by Uncle Bob
  • Start from Yes by Alex Miller
  • Step Back and Automate, Automate, Automate by Cay Horstmann
  • Take Advantage of Code Analysis Tools by Sarah Mount
  • Test for Required Behavior, not Incidental Behavior by Kevlin Henney
  • Test Precisely and Concretely by Kevlin Henney
  • Test While You Sleep (and over Weekends) by Rajith Attapattu
  • Testing Is the Engineering Rigor of Software Development by Neal Ford
  • Thinking in States by Niclas Nilsson
  • Two Heads Are Often Better than One by Adrian Wible
  • Two Wrongs Can Make a Right (and Are Difficult to Fix) by Allan Kelly
  • Ubuntu Coding for Your Friends by Aslam Khan
  • The Unix Tools Are Your Friends by Diomidis Spinellis
  • Use the Right Algorithm and Data Structure by JC van Winkel
  • Verbose Logging Will Disturb Your Sleep by Johannes Brodwall
  • WET Dilutes Performance Bottlenecks by Kirk Pepperdine
  • When Programmers and Testers Collaborate by Janet Gregory
  • Write Code as If You Had to Support It for the Rest of Your Life by Yuriy Zubarev
  • Write Small Functions Using Examples by Keith Braithwaite
  • Write Tests for People by Gerard Meszaros
  • You Gotta Care about the Code by Pete Goodliffe
  • Your Customers Do not Mean What They Say by Nate Jackson

Book Details

Author(s): Kevlin Henney
Format(s): HTML
Link: Read online.

Leave a Reply