-
[Act with Prudence](http://programmer.97things.oreilly.com/wiki/index.php/Act with Prudence)Notes: Act with prudence and not accrue technical debt by accomplishing things in a quick and dirty manner.
-
Ask "What Would the User Do?" (You Are not the User)Notes: We as programmers don't see things the same way as the users do. Need to get better at seeing past one's own experience / perceptions, and learn to see things the way users do. Best way to gather requirements is to watch users do the same activity - better than asking them about it.
-
[Automate Your Coding Standard](http://programmer.97things.oreilly.com/wiki/index.php/Automate Your Coding Standard)
-
[Beauty Is in Simplicity](http://programmer.97things.oreilly.com/wiki/index.php/Beauty Is in Simplicity)
-
[Before You Refactor](http://programmer.97things.oreilly.com/wiki/index.php/Before You Refactor)Notes: Good set of suggestions for dealing with legacy code. I think I have not followed a couple of suggestions there in an upgrade project I completed recently.
-
[Beware the Share](http://programmer.97things.oreilly.com/wiki/index.php/Beware the Share)
-
[The Boy Scout Rule](http://programmer.97things.oreilly.com/wiki/index.php/The Boy Scout Rule)
Notes: Agreed. I need to get better at refactoring code + writing clean code in the first place.
-
[Check Your Code First before Looking to Blame Others](http://programmer.97things.oreilly.com/wiki/index.php/Check Your Code First before Looking to Blame Others)
-
[Choose Your Tools with Care](http://programmer.97things.oreilly.com/wiki/index.php/Choose Your Tools with Care)
-
[Code in the Language of the Domain](http://programmer.97things.oreilly.com/wiki/index.php/Code in the Language of the Domain)
-
[Code Is Design](http://programmer.97things.oreilly.com/wiki/index.php/Code Is Design)
-
[Code Layout Matters](http://programmer.97things.oreilly.com/wiki/index.php/Code Layout Matters)Notes: OK. I use vim auto formatting ... :-)
-
[Code Reviews](http://programmer.97things.oreilly.com/wiki/index.php/Code Reviews)
-
[Coding with Reason](http://programmer.97things.oreilly.com/wiki/index.php/Coding with Reason)
-
[A Comment on Comments](http://programmer.97things.oreilly.com/wiki/index.php/A Comment on Comments)Notes: Comments are not evil by themselves.
-
[Comment Only What the Code Cannot Say](http://programmer.97things.oreilly.com/wiki/index.php/Comment Only What the Code Cannot Say)Notes: A far better treatment of the topic than the previous one; with a much more nuanced handling of the issues. Code Only What the Code Cannot Say
-
[Continuous Learning](http://programmer.97things.oreilly.com/wiki/index.php/Continuous Learning)
-
[Convenience Is not an -ility](http://programmer.97things.oreilly.com/wiki/index.php/Convenience Is not an -ility)
-
[Deploy Early and Often](http://programmer.97things.oreilly.com/wiki/index.php/Deploy Early and Often)
-
[Distinguish Business Exceptions from Technical](http://programmer.97things.oreilly.com/wiki/index.php/Distinguish Business Exceptions from Technical)
-
[Do Lots of Deliberate Practice](http://programmer.97things.oreilly.com/wiki/index.php/Do Lots of Deliberate Practice)
-
[Domain-Specific Languages](http://programmer.97things.oreilly.com/wiki/index.php/Domain-Specific Languages)
-
[Don't Be Afraid to Break Things](http://programmer.97things.oreilly.com/wiki/index.php/Don't Be Afraid to Break Things)
-
[Don't Be Cute with Your Test Data](http://programmer.97things.oreilly.com/wiki/index.php/Don't Be Cute with Your Test Data)
-
[Don't Ignore that Error!](http://programmer.97things.oreilly.com/wiki/index.php/Don't Ignore that Error!)
-
[Don't Just Learn the Language, Understand its Culture](http://programmer.97things.oreilly.com/wiki/index.php/Don't Just Learn the Language, Understand its Culture)
-
[Don't Nail Your Program into the Upright Position](http://programmer.97things.oreilly.com/wiki/index.php/Don't Nail Your Program into the Upright Position)
-
[Don't Rely on "Magic Happens Here"](http://programmer.97things.oreilly.com/wiki/index.php/Don't Rely on "Magic Happens Here")
-
[Don't Repeat Yourself](http://programmer.97things.oreilly.com/wiki/index.php/Don't Repeat Yourself)
-
[Don't Touch that Code!](http://programmer.97things.oreilly.com/wiki/index.php/Don't Touch that Code!)
-
[Encapsulate Behavior, not Just State](http://programmer.97things.oreilly.com/wiki/index.php/Encapsulate Behavior, not Just State)
-
[Floating-point Numbers Aren't Real](http://programmer.97things.oreilly.com/wiki/index.php/Floating-point Numbers Aren't Real)
-
[Fulfill Your Ambitions with Open Source](http://programmer.97things.oreilly.com/wiki/index.php/Fulfill Your Ambitions with Open Source)
-
[The Golden Rule of API Design](http://programmer.97things.oreilly.com/wiki/index.php/The Golden Rule of API Design)
-
[The Guru Myth](http://programmer.97things.oreilly.com/wiki/index.php/The Guru Myth)
-
[Hard Work Does not Pay Off](http://programmer.97things.oreilly.com/wiki/index.php/Hard Work Does not Pay Off)
-
[How to Use a Bug Tracker](http://programmer.97things.oreilly.com/wiki/index.php/How to Use a Bug Tracker)
Summary : Extra code snowballs over time into a large piece of work that requires maintenance. Avoid adding code unnecessarily. YAGNI.
-
[Install Me](http://programmer.97things.oreilly.com/wiki/index.php/Install Me)
-
[Inter-Process Communication Affects Application Response Time](http://programmer.97things.oreilly.com/wiki/index.php/Inter-Process Communication Affects Application Response Time)
-
[Keep the Build Clean](http://programmer.97things.oreilly.com/wiki/index.php/Keep the Build Clean)
-
[Know How to Use Command-line Tools](http://programmer.97things.oreilly.com/wiki/index.php/Know How to Use Command-line Tools)
-
[Know Well More than Two Programming Languages](http://programmer.97things.oreilly.com/wiki/index.php/Know Well More than Two Programming Languages)
-
[Know Your IDE](http://programmer.97things.oreilly.com/wiki/index.php/Know Your IDE)
-
[Know Your Limits](http://programmer.97things.oreilly.com/wiki/index.php/Know Your Limits)
-
[Know Your Next Commit](http://programmer.97things.oreilly.com/wiki/index.php/Know Your Next Commit)
-
[Large Interconnected Data Belongs to a Database](http://programmer.97things.oreilly.com/wiki/index.php/Large Interconnected Data Belongs to a Database)
-
[Learn Foreign Languages](http://programmer.97things.oreilly.com/wiki/index.php/Learn Foreign Languages)
-
[Learn to Estimate](http://programmer.97things.oreilly.com/wiki/index.php/Learn to Estimate)
-
[Learn to Say "Hello, World"](http://programmer.97things.oreilly.com/wiki/index.php/Learn to Say "Hello, World")
-
[Let Your Project Speak for Itself](http://programmer.97things.oreilly.com/wiki/index.php/Let Your Project Speak for Itself)
-
[The Linker Is not a Magical Program](http://programmer.97things.oreilly.com/wiki/index.php/The Linker Is not a Magical Program)
-
[The Longevity of Interim Solutions](http://programmer.97things.oreilly.com/wiki/index.php/The Longevity of Interim Solutions)
-
[Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly](http://programmer.97things.oreilly.com/wiki/index.php/Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly)
-
[Make the Invisible More Visible](http://programmer.97things.oreilly.com/wiki/index.php/Make the Invisible More Visible)
-
[Message Passing Leads to Better Scalability in Parallel Systems](http://programmer.97things.oreilly.com/wiki/index.php/Message Passing Leads to Better Scalability in Parallel Systems)
-
[A Message to the Future](http://programmer.97things.oreilly.com/wiki/index.php/A Message to the Future)
-
[Missing Opportunities for Polymorphism](http://programmer.97things.oreilly.com/wiki/index.php/Missing Opportunities for Polymorphism)
-
[News of the Weird: Testers Are Your Friends](http://programmer.97things.oreilly.com/wiki/index.php/News of the Weird: Testers Are Your Friends)
-
[One Binary](http://programmer.97things.oreilly.com/wiki/index.php/One Binary)
-
[Only the Code Tells the Truth](http://programmer.97things.oreilly.com/wiki/index.php/Only the Code Tells the Truth)
-
[Pair Program and Feel the Flow](http://programmer.97things.oreilly.com/wiki/index.php/Pair Program and Feel the Flow)
-
[Prefer Domain-Specific Types to Primitive Types](http://programmer.97things.oreilly.com/wiki/index.php/Prefer Domain-Specific Types to Primitive Types)
-
[Prevent Errors](http://programmer.97things.oreilly.com/wiki/index.php/Prevent Errors)
-
[The Professional Programmer](http://programmer.97things.oreilly.com/wiki/index.php/The Professional Programmer)
-
[Put Everything Under Version Control](http://programmer.97things.oreilly.com/wiki/index.php/Put Everything Under Version Control)
-
[Put the Mouse Down and Step Away from the Keyboard](http://programmer.97things.oreilly.com/wiki/index.php/Put the Mouse Down and Step Away from the Keyboard)
-
[Read Code](http://programmer.97things.oreilly.com/wiki/index.php/Read Code)
-
[Read the Humanities](http://programmer.97things.oreilly.com/wiki/index.php/Read the Humanities)
-
[Reinvent the Wheel Often](http://programmer.97things.oreilly.com/wiki/index.php/Reinvent the Wheel Often)
-
[Resist the Temptation of the Singleton Pattern](http://programmer.97things.oreilly.com/wiki/index.php/Resist the Temptation of the Singleton Pattern)
-
[The Road to Performance Is Littered with Dirty Code Bombs](http://programmer.97things.oreilly.com/wiki/index.php/The Road to Performance Is Littered with Dirty Code Bombs)
-
[Simplicity Comes from Reduction](http://programmer.97things.oreilly.com/wiki/index.php/Simplicity Comes from Reduction)
-
[The Single Responsibility Principle](http://programmer.97things.oreilly.com/wiki/index.php/The Single Responsibility Principle)
-
[Start from Yes](http://programmer.97things.oreilly.com/wiki/index.php/Start from Yes)
-
[Step Back and Automate, Automate, Automate](http://programmer.97things.oreilly.com/wiki/index.php/Step Back and Automate, Automate, Automate)
-
[Take Advantage of Code Analysis Tools](http://programmer.97things.oreilly.com/wiki/index.php/Take Advantage of Code Analysis Tools)
-
[Test for Required Behavior, not Incidental Behavior](http://programmer.97things.oreilly.com/wiki/index.php/Test for Required Behavior, not Incidental Behavior)
-
[Test Precisely and Concretely](http://programmer.97things.oreilly.com/wiki/index.php/Test Precisely and Concretely)
-
[Testing Is the Engineering Rigor of Software Development](http://programmer.97things.oreilly.com/wiki/index.php/Testing Is the Engineering Rigor of Software Development)
-
[Thinking in States](http://programmer.97things.oreilly.com/wiki/index.php/Thinking in States)
-
[Two Heads Are Often Better than One](http://programmer.97things.oreilly.com/wiki/index.php/Two Heads Are Often Better than One)
-
Two Wrongs Can Make a Right (and Are Difficult to Fix)
Notes: Interesting case to be aware of.
-
[Ubuntu Coding for Your Friends](http://programmer.97things.oreilly.com/wiki/index.php/Ubuntu Coding for Your Friends)
-
[The Unix Tools Are Your Friends](http://programmer.97things.oreilly.com/wiki/index.php/The Unix Tools Are Your Friends)
-
[Use the Right Algorithm and Data Structure](http://programmer.97things.oreilly.com/wiki/index.php/Use the Right Algorithm and Data Structure)
-
[Verbose Logging Will Disturb Your Sleep](http://programmer.97things.oreilly.com/wiki/index.php/Verbose Logging Will Disturb Your Sleep)
-
[WET Dilutes Performance Bottlenecks](http://programmer.97things.oreilly.com/wiki/index.php/WET Dilutes Performance Bottlenecks)
-
[When Programmers and Testers Collaborate](http://programmer.97things.oreilly.com/wiki/index.php/When Programmers and Testers Collaborate)
-
[Write Code as If You Had to Support It for the Rest of Your Life](http://programmer.97things.oreilly.com/wiki/index.php/Write Code as If You Had to Support It for the Rest of Your Life)
-
[Write Small Functions Using Examples](http://programmer.97things.oreilly.com/wiki/index.php/Write Small Functions Using Examples)
-
[Write Tests for People](http://programmer.97things.oreilly.com/wiki/index.php/Write Tests for People)
-
[You Gotta Care about the Code](http://programmer.97things.oreilly.com/wiki/index.php/You Gotta Care about the Code)
-
[Your Customers Do not Mean What They Say](http://programmer.97things.oreilly.com/wiki/index.php/Your Customers Do not Mean What They Say)
Your links are dead