1. Never screw over your team.
  2. Always use source control.
  3. Always have good backups.
  4. Test your backups.
  5. Never believe you understand the problem, you don’t.
  6. Users have delusions of grandeur, make sure you don’t.
  7. Don’t worry so much about normalization (disk space is cheep now).
  8. Don’t waste good code.
  9. Never schedule a cron job between 2:00AM and 3:00AM.
  10. Software can be Fast, Good or Cheap you can only pick two.
  11. Never interrupt a programmer “In the Zone”.
  12. Sometimes – you’re wrong.
  13. Refactor before you release to QA.
  14. Know how to use your debugger.
  15. Know your tools.
  16. Never let server management and server hosting be the same company. – Bill Bush
  17. Clean up the mess that you make. (Never leave behind loose ends)
  18. Never merge broken code into a team branch.
  19. Give back to Open Source.
  20. Resist releasing on a Friday.
  21. Some clicks cannot be undone, check your SQL syntax.
  22. With great power comes complexity, but complexity dose not equal great power.
  23. Never let your employer decide your career.
  24. “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler
  25. Upgrades are part of the job, keep up. (Keep your skills and your tools up to date)
  26. Clever is the enemy of clear.
  27. Comments are mostly evil.
  28. Always know what your code is supposed to do before you start writing it.
  29. Best practices are context dependent.
  30. Always strive to simplify.
  31. Only write code if you absolutely have to.
  32. Packaging of you Applications, Modules and Libraries matters.
  33. Security code should execute as early as possible.
  34. Always use Semantic Versioning.
  35. Always include roave/security-advisories:dev-master in your composer.json for PHP.  https://github.com/Roave/SecurityAdvisories 
  36. Always store dates in UTC.  (https://www.timeanddate.com/time/aboututc.html)
  37. Avoid naming classes (Something)Manager.  (https://blog.codinghorror.com/i-shall-call-it-somethingmanager/)
  38. Don’t marry the framework, you just date it.  (Uncle Bob)
  39. Know when to use pass by reference and when to use pass by value.
  40. CI/CD is a technique not a tool.

Unnumbered: Train the User, and we all are Users.
Unspoken: Family comes first.


Other Lists:

The Joel Test: 12 Steps to Better Code