“Design Patterns by GoF”:http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612
It is definitely an important book. I helped to popularize the concept of design patterns, good solutions for certain frequent-seen problems. And really, it is all about design patterns. I cannot help but thinking the book make the concept much more academic than it is. The authors presented patterns in a elaborate way of a scientific paper; and again design patterns are no science. Recently, I think many design patterns are the direct result of language weaknesses. For example, the book used C++ to illustrate examples, however many patterns will be redundant if you use Python. The reason of many patterns is due to the weakness of current programming languages, particularly C++.