Design Patterns: Elements of Reusable Object-Oriented Software
Comments and mentions from HN threads:
Ask HN: What language-agnostic programming books should I read?
beat: There are lots of good books on design patterns, but you should really read the one that started it all. (For extra credit, read A Pattern Language, by Christopher Alexander - a book about urban architecture that inspired it.)
Ask HN: What books had the greatest effect on how you structure your code?
Mentions by: robinphilip1989 : fusiongyro : gnaritas : BJanecke
Ask HN: What are the books you wish your colleagues had read?
conjecTech: Even if some of the particulars are not as relevant, it still provides a useful framework for thought.
Ask HN: What books do you keep on your desk?
sg0: This book is all about design, someday I aim to really understand all the patterns.
Mentions by: protomok
Ask HN: Which books teach mental models?
apo: Would be an example from software architecture. It catalogs a couple of dozen patterns that recur in projects regardless of their specific domains.