in reply to How 'n' why
All of the above suggestions are great. One that I will add is
to write code, trash it, and rewrite it. I have seen
this suggested in many places. When you rewrite it take
the time to look up a new function or use a different module.