👉🏼 Pragmatic Programmer

What distinguishes Pragmatic Programmer? We feel it's an attitude, a style, a philosophy of approaching problems and their solutions. They think beyond the immediate problem, placing it in its larger context and seeking out the bigger picture.

-- The Pragmatic Programmer


  • It's your life. You own it. You run it. You create it.
  • Try to fix it. But don't try forever.
  • If technology seems to be passing you by, make time to study new stuff that looks interesting.
  • Pragmatic programmers take charge of their own career, and aren't afraid to admit ignorance or error.
  • Responsibility is something you actively agree to. You make a commitment to ensure that something is done right, but you don't necessarily have direct control over every aspect of it.
  • When you make a mistake or an error in judgement, admit it honestly and try to offer options. Don't blame someone or something else, or make up an excuse.
  • Before you approach anyone to tell them why something can't be done, is late, or is broken, stop and listen to yourself.
  • Don't say it can't be done; explain what can be done to salvage the situation.
  • When you find yourself saying, "I don't know," be sure to follow it up with "but I'll find out."
  • Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired. Fix each one as soon as it is discovered.
  • Don't be like the fabled frog. Keep an eye on the big picture. Constantly review what's happening around you, not just what you personally are doing.
  • Don't spoil a perfectly good program by overembellishment and overrefinement. Move on, and let your code stand in its own right for a while. It may not be perfect. Don't worry: it could never be perfect.
  • Artists will tell you that all the hard work is ruined if you don't know when to stop. If you add layer upon layer, detail over detail, the painting becomes lost in the paint.
  • All the facts programmers know about computing, the application domains they work in, and all their experience is their knowledge portfolios.