What are some of the most basic things every programmer should know?

  1. If it’s not tested, it doesn’t work.
  2. Source control is your friend - make sure you use it.
  3. Just because you wrote it doesn’t mean you own it — don’t be offended if someone else on your team has to change your code.
  4. Don’t reinvent the wheel, library code is there to help.
  5. The fastest code is code that’s never executed — look for early outs.
  6. Just because you didn’t write it doesn’t mean it’s crap.
  7. Source code is just a hint to the compiler about what you want to do, it won’t necessarily do it (e.g. You might declare a function as inline but the compiler doesn’t have to obey).

  8. Code that’s hard to understand is hard to maintain.
  9. Code that’s hard to maintain is next to useless.
  10. “Whilst I’m editing this file I’ll just…” is a great way to introduce feature creep and bugs.
  11. The neater your code layout, the easier it is to read. The easier it is to read, the easier it is to understand and maintain.
  12. Code is not self documenting. Help others by adding comments to guide them. You may understand it now but what about in 5 years time?
  13. Bad Code can and will come back to haunt you.
  14. There is no such thing as a 5 minute job. It’ll always take at least half a day.
  15. Magic numbers are bad.
  16. Constants don’t take up storage, they’re compile time text substitutions.
  17. Project management will always want you to do twice as much in half the time.
  18. If there is a bug, the user will find it.
  19. A code review is not a criticism.
  20. It’s not the quantity of code that matters, it’s the quality. Any idiot can bang out 40kloc but that doesn’t make it fit for purpose.
  21. The true cost of poorly written code is in the maintenance.
  22. Eat your own dog food — fixing bugs in your own code helps you code better and improves your understanding.
  23. Code rots over time.
  24. If the user didn’t ask for a feature, don’t add it.
  25. If it’s not tested, it doesn’t work (yes, I know I’ve included that twice but it’s really important).