Christopher Diggins list the three things he’s leanred in 20 years of programming:
1. Your code will change
2. No matter how simple you think your code is, it is complete nonsense to almost everyone else.
3. If you haven't tested your code then it's probably wrong.