If I had to give one piece of advice as to what you should do to be a good developer, it’s this: be careful of what you checkin.

This means:

  1. Use source control. It’s hard to look at you are changing without source control.
  2. Always diff the code yourself. I also recommend checking in fairly frequently (at least to some sort of personal branch), so that your code diffs don’t become so large that you won’t spot anything.
  3. Always step through your code.

I think the first two are pretty standard pieces of advice, but too few people adhere to #3. I don’t trust unit tests, I don’t trust functionality tests – I have too often made the mistake of incorrectly deploying new code such that I didn’t actually test it, or just having a bug that the test didn’t check for.

I caught way too many bugs by stepping through the code prior to checkin, so now I always step through the code.