Read The '97 Things Every Programmer Should Know'

97 Things Every Programmer Should Know

  • 1 - Act with Prudence
  • 2 - Apply Functional Programming Principles
  • 3 - Ask, “What Would the User Do?” (You Are Not the User)
  • 4 - Automate Your Coding Standard
  • 5 - Beauty Is in Simplicity
  • 6 - Before You Refactor
  • 7 - Beware the Share
  • 8 - The Boy Scout Rule
  • 9 - Check Your Code First Before Looking to Blame Others
  • 10 - Choose Your Tools with Care
  • 11 - Code in the Language of the Domain
  • 12 - Code Is Design
  • 13 - Code Layout Matters
  • 14 - Code Reviews
  • 15 - Code with Reason
  • 16 - A Comment on Comments
  • 17 - Comment Only What the Code Cannot Say
  • 18 - Continuous Learning
  • 19 - Convenience Is Not an -ility
  • 20 - Deploy Early and Often
  • 21 - Distinguish Business Exceptions from Technical
  • 22 - Do Lots of Deliberate Practice
  • 23 - Domain-Specific Languages
  • 24 - Don’t Be Afraid to Break Things
  • 25 - Don’t Be Cute with Your Test Data
  • 26 - Don’t Ignore That Error!
  • 27 - Don’t Just Learn the Language, Understand Its Culture
  • 28 - Don’t Nail Your Program into the Upright Position
  • 29 - Don’t Rely on “Magic Happens Here”
  • 30 - Don’t Repeat Yourself
  • 31 - Don’t Touch That Code
  • 32 - Encapsulate Behavior, Not Just State
  • 33 - Floating-Point Numbers Aren’t Real
  • 34 - Fulfill Your Ambitions with Open Source
  • 35 - The Golden Rule of API Design
  • 36 - The Guru Myth
  • 37 - Hard Work Does Not Pay Off
  • 38 - How to Use a Bug Tracker
  • 39 - Improve Code by Removing It
  • 40 - Install Me
  • 41 - Interprocess Communication Affects Application Response Time
  • 42 - Keep the Build Clean
  • 43 - Know How to Use Command-Line Tools
  • 44 - Know Well More Than Two Programming Languages
  • 45 - Know Your IDE
  • 46 - Know Your Limits
  • 47 - Know Your Next Commit
  • 48 - Large, Interconnected Data Belong to a Database
  • 49 - Learn Foreign Languages
  • 50 - Learn to Estimate
  • 51 - Learn to Say, “Hello, World”
  • 52 - Let Your Project Speak for Itself
  • 53 - The Linker Is Not a Magical Program
  • 54 - Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly
  • 55 - Make the Invisible More Visible
  • 56 - Message Passing Leads to Better Scalability in Parallel Systems
  • 57 - A Message to the Future
  • 58 - Missing Opportunities for Polymorphism
  • 59 - News of the Weird: Testers Are Your Friends
  • 60 - One Binary
  • 61 - Only the Code Tells the Truth
  • 62 - Own (and refactor) the Build
  • 63 - Pair Program and feel the Flow
  • 64 - Prefer Domain-Specific Types to Primitive Types
  • 65 - Prevent Errors
  • 66 - The Professional Programmer
  • 67 - Put Everything Under Version Control
  • 68 - Put The Mouse Down and Step Away from the Keyboard
  • 69 - Read Code
  • 70 - Read the Humanities
  • 71 - Reinvent the Wheel Often
  • 72 - Resist the Temptation of the Singleton Pattern
  • 73 - The Road to Performance Is Littered with Dirty Code Bombs
  • 74 - Simplicity Comes from Reduction
  • 75 - The Single Responsibility Principle
  • 76 - Start from Yes
  • 77 - Step Back and Automate, Automate, Automate
  • 78 - Take Advantage of Code Analysis Tools