I usually hate lists that say “x things that y” whenever x is larger than 7 (or if I think that y is boring). But “97 Things Every Programmer Should Know” [uk, de] is a great, if completely unorganized, collection of software engineering ideas. The complete content is available online for free. It should be read more like a software engineering calendar with the idea of the day than a systematic introduction to a topic. As an example, I liked “The Golden Rule of API Design” which says that if you want your API to be truly useful, you have to make sure that programs that use it can be tested. That is, you have to test programs that use the API, in addition to the API itself.
[Source: Raja Kannappan]