Mateus Costa

The Pragmatic Programmer


Clean Code it’s a book that tells you what to do with your code and this book tells you how a developer should behavior with it. The Pragmatic Programmer it’s a book that explore a lot of situations that can occur on a day to day in a project and give you some suggestions in how you could answer in this scenarios. It also teaches you in how to improve your skills with what you already work in your routine, improving your skills with your tools and the way that you handle your code.

The book is from 1999, so in my opinion there are some advices that is kind of mandatory in these days like use version control system or debug an application. Besides this old advices, I would resume the book in the following learnings that I got when I read it:

  • Provide solutions, not excuses; (don’t take too serious this one, but it’s a good philosophy);
  • The parody of the broken window: A broken window is a excuse to accept a broken door, so take care of your code to incentivate others to do the same;
  • Be critical and think hard about what you are learning and reading;
  • Avoid duplication, unless there is no other way;
  • There is no definitive decisions;
  • Try with spikes or a MPV;
  • Use a DSL when there are configurable things;
  • Know your editor or IDE;
  • Fix the problem, forget the guilty (another to don’t take too serious);
  • Don’t suppose, test;
  • You will not build the perfect software, no one will;
  • Be flexible and use metaprogramming when possible;
  • Don’t do premature improvements too soon;
  • Refactor early, refactor always;
  • Be a catalyst for change;
  • Be aware about what’s happening around you, not just what you personally are doing;
  • Test your software or the users will;
  • Have a basic glossary in your project for common definitions and terms;
  • Be aware of the things that can be automated;
  • Do some extra for your users;

Off course that is somehow unfair to resume a book in bullet points, but again, it was a book that I read some years later than I should, but it was still good to reinforce a good behavior in a project and avoid just be a developer that is typing all day long without criticizing or make the product and his environment better. Read it and you will discover if besides been a pragmatic programmer, if you are also a passionate programmer.