Book in categories:
computer science

Design Patterns: Elements of Reusable Object-Oriented Software

Books recommended with this one:

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 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.