10) Don’t use exceptions
9) Use unsigned integers for values that can only be positive
8) Design classes parallel to their physical counterparts
7) Make sure your team shares a common coding standard
6) Write lots of comments
5) Use accessors or properties rather than public fields
3) Be tolerant with input and strict with output
2) Code all the corner cases immediately, cause otherwise you’ll never go back and fix things
1) Design first, then code

Via Kristian’s Blog