Kernighan & Plauger The Elements of Programming Style 2nd Edition (There are much much more wisdom and great words in this book than I collected here. These are just some examples.) As we have said several times, the hard part of programming is controlling complexity -- keeping the pieces decoupled so they can be dealt with separately instead of all at once. And the need to separate into pieces is not some academically interesting point, but a practical necessity, to keep things from interacting with each other in unexpected ways. (p. 95) The best documentation for a computer program is a clean structure. (p. 141) And when a program cannot speak for itself, it is seldom the case that greater realiability or understanding will result by interposing yet another insulting layer of documentation between the code and reader. (p. 151)