avatarBirat Rai

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

5586

Abstract

</li><li><a href="https://readmedium.com/step-25-dont-be-cute-with-your-test-data-rod-begbie-4d94aba1565f"><b>Don’t Be Cute with Your Test Data</b></a> <i>~ Rod Begbie</i></li><li><a href="https://readmedium.com/step-26-dont-ignore-that-error-pete-goodliffe-10e1929b1ac4"><b>Don’t Ignore That Error!</b> <i></i></a><i>~ Pete Goodliffe</i></li><li><a href="https://medium.com/@biratkirat/step-27-dont-just-learn-the-language-understand-its-culture-anders-nor%C3%A5s-b94cf7fcac43"><b>Don’t Just Learn the Language, Understand Its Culture</b></a> <i>~Anders Norås</i></li><li><a href="https://readmedium.com/step-28-dont-nail-your-program-into-the-upright-position-verity-stob-5da43efbc62d"><b>Don’t Nail Your Program into the Upright Position</b></a> <i>~Verity Stob</i></li><li><a href="https://readmedium.com/step-29-dont-rely-on-magic-happens-here-alan-griffiths-10b421878a04"><b>Don’t Rely on “Magic Happens Here”</b></a> <i>~ Alan Griffiths</i></li><li><a href="https://readmedium.com/step-30-dont-repeat-yourself-steve-smith-ae98fe7943f"><b>Don’t Repeat Yourself</b></a> <i>~</i> <i>Steve Smith</i></li><li><a href="https://readmedium.com/step-31-dont-touch-that-code-cal-evans-bf70fc41e155"><b>Don’t Touch That Code!</b></a> <i>~</i> <i>Cal Evans</i></li><li><a href="https://readmedium.com/step-32-encapsulate-behavior-not-just-state-einar-landre-c076485b9c9a"><b>Encapsulate Behavior, Not Just State</b></a> <i>~ Einar Landre</i></li><li><a href="https://readmedium.com/step-33-floating-point-numbers-arent-real-chuck-allison-cc61a624330a"><b>Floating-Point Numbers Aren’t Real</b></a> <i>~Chuck Allison</i></li><li><a href="https://readmedium.com/step-34-fulfill-your-ambitions-with-open-source-richard-monson-haefel-89dcd1eefcfd"><b>Fulfill Your Ambitions with Open Source</b></a> <i>~</i> <i>Richard Monson-Haefel</i></li><li><a href="https://readmedium.com/step-35-the-golden-rule-of-api-design-michael-feathers-6ec7b56726f9"><b>The Golden Rule of API Design</b></a> <i>~Michael Feathers</i></li><li><a href="https://readmedium.com/step-36-the-guru-myth-ryan-brush-9fb3aea13154"><b>The Guru Myth</b></a> <i>~Ryan Brush</i></li><li><a href="https://readmedium.com/step-37-hard-work-does-not-pay-off-olve-maudal-36b27a455354"><b>Hard Work Does Not Pay Off</b></a><b> </b><i>~Olve Maudal</i></li><li><a href="https://readmedium.com/step-38-how-to-use-a-bug-tracker-matt-doar-bde93b13c03"><b>How to Use a Bug Tracker</b></a> <i>~</i> <i>Matt Doar</i></li><li><a href="https://readmedium.com/step-38-improve-code-by-removing-it-pete-goodliffe-12acc50e97a"><b>Improve Code by Removing It</b></a> <i>~Pete Goodliffe</i></li><li><a href="https://readmedium.com/step-40-install-me-marcus-baker-5c898d9b842"><b>Install Me</b></a> <i>~</i> <i>Marcus Baker</i></li><li><a href="https://readmedium.com/step-41-interprocess-communication-affects-application-response-time-randy-stafford-c5bb3de9c350"><b>Interprocess Communication Affects Application Response Time</b> <i></i></a><i>~Randy Stafford</i></li><li><a href="https://readmedium.com/step-42-keep-the-build-clean-johannes-brodwall-97164757ddd1"><b>Keep the Build Clean</b></a> <i>~Johannes Brodwall</i></li><li><a href="https://readmedium.com/step-43-know-how-to-use-command-line-tools-carroll-robinson-ddb712378c7"><b>Know How to Use Command-Line Tools</b></a><b> </b><i>~Carroll Robinson</i></li><li><a href="https://readmedium.com/step-44-know-well-more-than-two-programming-languages-russel-winder-d1ee585c17e"><b>Know Well More Than Two Programming Languages</b></a> <i>~Russel Winder</i></li><li><a href="https://readmedium.com/step-45-know-your-ide-heinz-kabutz-b52a465759ac"><b>Know Your IDE</b></a> <i>~Heinz Kabutz</i></li><li><a href="https://readmedium.com/step-46-know-your-limits-greg-colvin-5a01c09748bc"><b>Know Your Limits</b></a> <i>~</i> <i>Greg Colvin</i></li><li><a href="https://readmedium.com/step-47-know-your-next-commit-dan-bergh-johnsson-e381ea51cb27"><b>Know Your Next Commit</b></a> <i>~Dan Bergh Johnsson</i></li><li><a href="https://readmedium.com/step-48-large-interconnected-data-belongs-to-a-database-diomidis-spinellis-53f92d0a9289"><b>Large, Interconnected Data Belongs to a Database</b></a> <i>~Diomidis Spinellis</i></li><li><a href="https://readmedium.com/step-49-learn-foreign-languages-klaus-marquardt-643dea33a5f4"><b>Learn Foreign Languages</b></a> <i>~Klaus Marquardt</i></li><li><a href="https://readmedium.com/step-50-learn-to-estimate-giovanni-asproni-cfa15fcebddb"><b>Learn to Estimate</b></a> <i>~</i> <i>Giovanni Asproni</i></li><li><a href="https://readmedium.com/step-51-learn-to-say-hello-world-thomas-guest-bc4f5ddd6890"><b>Learn to Say, “Hello, World”</b></a> <i>~</i> <i>Thomas Guest</i></li><li><a href="https://readmedium.com/step-52-let-your-project-speak-for-itself-daniel-lindner-e45a0b1ce2c7"><b>Let Your Project Speak for Itself</b></a> <i>~</i> <i>Daniel Lindner</i></li><li><a href="https://readmedium.com/step-53-the-linker-is-not-a-magical-program-daniel-lindner-a2b3bf7fd00e"><b>The Linker Is Not a Magical Program</b></a> <i>~Walter Bright</i></li><li><a href="https://readmedium.com/step-54-the-longevity-of-interim-solutions-klaus-marquardt-6521c820cddd"><b>The Longevity of Interim Solutions</b></a> <i>~Klaus Marquardt</i></li><li><a href="https://readmedium.com/step-55-make-interfaces-easy-to-use-correctly-and-hard-to-use-incorrectly-scott-meyers-fe4374d174e"><b>Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly</b></a> <i>~</i> <i>Scott Meyers</i></li><li><a href="https://readmedium.com/step-56-make-the-invisible-more-visible-jon-jagg

Options

er-b54756c03976"><b>Make the Invisible More Visible</b></a><b> </b><i>~Jon Jagger</i></li><li><a href="https://readmedium.com/step-57-message-passing-leads-to-better-scalability-in-parallel-systems-russel-winder-f254e31df1"><b>Message Passing Leads to Better Scalability in Parallel Systems<i> </i></b></a><i>Russel Winder</i></li><li><a href="https://readmedium.com/step-58-a-message-to-the-future-linda-rising-2397f834323e"><b>A Message to the Future</b></a> <i>Linda Rising</i></li><li><a href="https://readmedium.com/step-59-missing-opportunities-for-polymorphism-kirk-pepperdine-15826c857641"><b>Missing Opportunities for Polymorphism</b></a> <i></i> <i>Kirk Pepperdine</i></li><li><a href="https://readmedium.com/step-60-news-of-the-weird-testers-are-your-friends-burk-hufnagel-d1e02b8d5d8e"><b>News of the Weird: Testers Are Your Friends</b></a> <i>Burk Hufnagel</i></li><li><a href="https://readmedium.com/step-61-one-binary-steve-freeman-5dc2826e413f"><b>One Binary</b></a> <i></i> <i>Steve Freeman</i></li><li><a href="https://readmedium.com/step-62-only-the-code-tells-the-truth-peter-sommerlad-33b289fa7915"><b>Only the Code Tells the Truth</b></a> <i></i> <i>Peter Sommerlad</i></li><li><a href="https://readmedium.com/step-63-own-and-refactor-the-build-steve-berczuk-8d85ba39e146"><b>Own (and Refactor) the Build</b></a> <i>~Steve Berczuk</i></li><li><a href="https://readmedium.com/step-64-pair-program-and-feel-the-flow-e643a3936d2e"><b>Pair Program and Feel the Flow</b></a> <i>~Gudny Hauknes, Kari Røssland, and Ann Katrin Gagnat</i></li><li><a href="https://readmedium.com/step-65-prefer-domain-specific-types-to-primitives-312d2a28ccd2"><b>Prefer Domain-Specific Types to Primitive Types</b></a> <i>~Einar Landre</i></li><li><a href="https://readmedium.com/step-66-prevent-errors-giles-colborne-140c3234d43f"><b>Prevent Errors</b></a> <i>Giles Colborne</i></li><li><a href="https://readmedium.com/step-67-the-professional-programmer-uncle-bob-e9cf4814dfcb"><b>The Professional Programmer</b></a> <i></i> <i>Robert C. Martin (Uncle Bob)</i></li><li><a href="https://readmedium.com/step-68-put-everything-under-version-control-diomidis-spinellis-bec203888f64"><b>Put Everything Under Version Control</b></a> <i>~Diomidis Spinellis</i></li><li><a href="https://readmedium.com/step-69-put-the-mouse-down-and-step-away-from-the-keyboard-burk-hufnagel-856856732d2b"><b>Put the Mouse Down and Step Away from the Keyboard</b></a> <i>~Burk Hufnagel</i></li><li><a href="https://readmedium.com/step-70-read-code-karianne-berg-3cd426f1f951"><b>Read Code</b></a> <i>~Karianne Berg</i></li><li><a href="https://readmedium.com/step-71-read-the-humanities-keith-braithwaite-3f6756bd015a"><b>Read the Humanities</b></a> <i>~Keith Braithwaite</i></li><li><a href="https://biratkirat.medium.com/step-72-reinvent-the-wheel-often-jason-p-sage-eeeadf8d01f1"><b>Reinvent the Wheel Often</b></a> <i>~Jason P. Sage</i></li><li><a href="https://biratkirat.medium.com/step-73-resist-the-temptation-of-the-singleton-pattern-sam-saariste-566f2cc3f9c2"><b>Resist the Temptation of the Singleton</b></a> <i>~Sam Saariste</i></li><li><a href="https://biratkirat.medium.com/step-74-the-road-to-performance-is-littered-with-dirty-code-bombs-kirk-pepperdine-727a334bfce6"><b>The Road to Performance Is Littered with Dirty Code Bombs</b></a> <i>~Kirk Pepperdine</i></li><li><b>Simplicity Comes from Reduction</b> <i>~Paul W. Homer</i></li><li><b>The Single Responsibility Principle</b> <i>~Robert C. Martin (Uncle Bob)</i></li><li><b>Start from Yes</b> <i>~Alex Miller</i></li><li><b>Step Back and Automate, Automate, Automate</b> <i>~Cay Horstmann</i></li><li><b>Take Advantage of Code Analysis Tools</b> <i>~Sarah Mount</i></li><li><b>Test for Required Behavior, Not Incidental Behavior</b> <i>~Kevlin Henney</i></li><li><b>Test Precisely and Concretely </b><i>~Kevlin Henney</i></li><li><b>Test While You Sleep (and over Weekends) </b><i>Rajith Attapattu</i></li><li><b>Testing Is the Engineering Rigor of Software Development</b> <i></i> <i>Neal Ford</i></li><li><b>Thinking in States</b> <i>~Niclas Nilsson</i></li><li><b>Two Heads Are Often Better Than One</b> <i>~Adrian Wible</i></li><li><b>Two Wrongs Can Make a Right (and Are Difficult to Fix)</b> <i>~Allan Kelly</i></li><li><b>Ubuntu Coding for Your Friends </b><i>~Aslam Khan</i></li><li><b>The Unix Tools Are Your Friends</b> <i>~Diomidis Spinellis</i></li><li><b>Use the Right Algorithm and Data Structure</b> <i>~Jan Christiaan “JC” van Winkel</i></li><li><b>Verbose Logging Will Disturb Your Sleep</b> <i>Johannes Brodwall</i></li><li><b>WET Dilutes Performance Bottlenecks</b> <i></i> <i>Kirk Pepperdine</i></li><li><b>When Programmers and Testers Collaborate</b> <i>~Janet Gregory</i></li><li><b>Write Code As If You Had to Support It for the Rest of Your Life</b> <i>Yuriy Zubarev</i></li><li><b>Write Small Functions Using Examples</b> <i>Keith Braithwaite</i></li><li><b>Write Tests for People</b> <i></i> <i>Gerard Meszaros</i></li><li><b>You Gotta Care About the Code</b> <i></i> <i>Pete Goodliffe</i></li><li><b>Your Customers Do Not Mean What They Say</b> <i>~Nate Jackson</i></li></ol><blockquote id="de21"><p><b>References:</b></p></blockquote><ul><li><a href="https://www.gitbook.com/book/97-things-every-x-should-know/97-things-every-programmer-should-know/details"><i>97 things Every Programmer Should Know</i></a> ~ Git Book</li><li><a href="https://www.amazon.com/Things-Every-Programmer-Should-Know/dp/0596809484"><i>97 Things Every Programmer Should Know</i></a> ~ Paperback</li></ul></article></body>

97 Journey Every Programmer should Accomplish

“A journey of a thousand miles begins with a single step.”

~ Lao Tzu

Life is a journey, not a destination”, programming is also a journey, not an end product. As we begin this journey from a novice programmer towards more accomplished professional, we learn through our mistakes, practice and programming enlightenment.

This is an effort to make traversing of this journey in sweet small steps. I have tried to learn and share 97 Things Every Programmer Should Know into byte sizes.

I am making a promise to my self, to learn the pearls of wisdom discussed in the book each day until my 97th day. Hope you can add few hours for the “10,000-Hour Rule” and accompany in this programming pilgrimage.

Below are the 97 programming path to attain the nirvāṇa.

“Do or Do Not. There is No Try” ~ Yoda
  1. Act with Prudence ~ Edward Garson
  2. Apply Functional Programming Principles ~ Edward Garson
  3. Ask, “What Would the User Do?” (You Are Not the User) ~ Giles Colborne
  4. Automate Your Coding Standard~ Filip van Laenen
  5. Beauty Is in Simplicity ~ Jørn Ølmheim
  6. Before You Refactor ~ Rajith Attapattu
  7. Beware the Share ~Udi Dahan
  8. The Boy Scout Rule ~Robert C. Martin (Uncle Bob)
  9. Check Your Code First Before Looking to Blame Others~Allan Kelly
  10. Choose Your Tools with Care ~ Giovanni Asproni
  11. Code in the Language of the Domain ~Dan North
  12. Code Is Design ~ Ryan Brush
  13. Code Layout Matters ~ Steve Freeman
  14. Code Reviews ~Mattias Karlsson
  15. Coding with Reason ~ Yechiel Kimchi
  16. A Comment on Comments ~ Cal Evans
  17. Comment Only What the Code Cannot Say ~ Kevlin Henney
  18. Continuous Learning ~ Clint Shank
  19. Convenience Is Not an -ility ~ Gregor Hohpe
  20. Deploy Early and Often ~ Steve Berczuk
  21. Distinguish Business Exceptions from Technical ~Dan Bergh Johnsson
  22. Do Lots of Deliberate Practice ~Jon Jagger
  23. Domain-Specific Languages ~ Michael Hunger
  24. Don’t Be Afraid to Break Things ~ Mike Lewis
  25. Don’t Be Cute with Your Test Data ~ Rod Begbie
  26. Don’t Ignore That Error! ~ Pete Goodliffe
  27. Don’t Just Learn the Language, Understand Its Culture ~Anders Norås
  28. Don’t Nail Your Program into the Upright Position ~Verity Stob
  29. Don’t Rely on “Magic Happens Here” ~ Alan Griffiths
  30. Don’t Repeat Yourself ~ Steve Smith
  31. Don’t Touch That Code! ~ Cal Evans
  32. Encapsulate Behavior, Not Just State ~ Einar Landre
  33. Floating-Point Numbers Aren’t Real ~Chuck Allison
  34. Fulfill Your Ambitions with Open Source ~ Richard Monson-Haefel
  35. The Golden Rule of API Design ~Michael Feathers
  36. The Guru Myth ~Ryan Brush
  37. Hard Work Does Not Pay Off ~Olve Maudal
  38. How to Use a Bug Tracker ~ Matt Doar
  39. Improve Code by Removing It ~Pete Goodliffe
  40. Install Me ~ Marcus Baker
  41. Interprocess Communication Affects Application Response Time ~Randy Stafford
  42. Keep the Build Clean ~Johannes Brodwall
  43. Know How to Use Command-Line Tools ~Carroll Robinson
  44. Know Well More Than Two Programming Languages ~Russel Winder
  45. Know Your IDE ~Heinz Kabutz
  46. Know Your Limits ~ Greg Colvin
  47. Know Your Next Commit ~Dan Bergh Johnsson
  48. Large, Interconnected Data Belongs to a Database ~Diomidis Spinellis
  49. Learn Foreign Languages ~Klaus Marquardt
  50. Learn to Estimate ~ Giovanni Asproni
  51. Learn to Say, “Hello, World” ~ Thomas Guest
  52. Let Your Project Speak for Itself ~ Daniel Lindner
  53. The Linker Is Not a Magical Program ~Walter Bright
  54. The Longevity of Interim Solutions ~Klaus Marquardt
  55. Make Interfaces Easy to Use Correctly and Hard to Use Incorrectly ~ Scott Meyers
  56. Make the Invisible More Visible ~Jon Jagger
  57. Message Passing Leads to Better Scalability in Parallel Systems ~Russel Winder
  58. A Message to the Future ~Linda Rising
  59. Missing Opportunities for Polymorphism ~ Kirk Pepperdine
  60. News of the Weird: Testers Are Your Friends ~Burk Hufnagel
  61. One Binary ~ Steve Freeman
  62. Only the Code Tells the Truth ~ Peter Sommerlad
  63. Own (and Refactor) the Build ~Steve Berczuk
  64. Pair Program and Feel the Flow ~Gudny Hauknes, Kari Røssland, and Ann Katrin Gagnat
  65. Prefer Domain-Specific Types to Primitive Types ~Einar Landre
  66. Prevent Errors ~Giles Colborne
  67. The Professional Programmer ~ Robert C. Martin (Uncle Bob)
  68. Put Everything Under Version Control ~Diomidis Spinellis
  69. Put the Mouse Down and Step Away from the Keyboard ~Burk Hufnagel
  70. Read Code ~Karianne Berg
  71. Read the Humanities ~Keith Braithwaite
  72. Reinvent the Wheel Often ~Jason P. Sage
  73. Resist the Temptation of the Singleton ~Sam Saariste
  74. The Road to Performance Is Littered with Dirty Code Bombs ~Kirk Pepperdine
  75. Simplicity Comes from Reduction ~Paul W. Homer
  76. The Single Responsibility Principle ~Robert C. Martin (Uncle Bob)
  77. Start from Yes ~Alex Miller
  78. Step Back and Automate, Automate, Automate ~Cay Horstmann
  79. Take Advantage of Code Analysis Tools ~Sarah Mount
  80. Test for Required Behavior, Not Incidental Behavior ~Kevlin Henney
  81. Test Precisely and Concretely ~Kevlin Henney
  82. Test While You Sleep (and over Weekends) ~Rajith Attapattu
  83. Testing Is the Engineering Rigor of Software Development ~ Neal Ford
  84. Thinking in States ~Niclas Nilsson
  85. Two Heads Are Often Better Than One ~Adrian Wible
  86. Two Wrongs Can Make a Right (and Are Difficult to Fix) ~Allan Kelly
  87. Ubuntu Coding for Your Friends ~Aslam Khan
  88. The Unix Tools Are Your Friends ~Diomidis Spinellis
  89. Use the Right Algorithm and Data Structure ~Jan Christiaan “JC” van Winkel
  90. Verbose Logging Will Disturb Your Sleep ~Johannes Brodwall
  91. WET Dilutes Performance Bottlenecks ~ Kirk Pepperdine
  92. When Programmers and Testers Collaborate ~Janet Gregory
  93. Write Code As If You Had to Support It for the Rest of Your Life ~Yuriy Zubarev
  94. Write Small Functions Using Examples ~Keith Braithwaite
  95. Write Tests for People ~ Gerard Meszaros
  96. You Gotta Care About the Code ~ Pete Goodliffe
  97. Your Customers Do Not Mean What They Say ~Nate Jackson

References:

Software Development
Programming
Developer
Java
Android
Recommended from ReadMedium