This is just a list of architecture and design books that are generally useful to have on your bookshelf. Most are recent, some are starting to show their age, and some are good for their historical perspective. I'll lump them into groups, but sometimes there are interesting intersections.
Quick note: Searching Amazon by ISBN isn't always possible. Use the full title name and author to narrow down your search if the ISBN results don't make sense.
This collection covers a number of reference books for understanding the generic styles and patterns of software architecture. The POSA books comprise a reasonably thorough overview of the patterns you will run across in the wild, so the list starts with them.
Pattern-Oriented Software Architecture, A System of Patterns vol. 1
A System of Patterns
Buschmann, Frank et. al.
ISBN: 0471958697
Pattern-Oriented Software Architecture, A System of Patterns vol. 2
Patterns for Concurrent and Networked Objects
This book contains patterns related to service access and configuration, event handling, synchronization, and concurrency.
Schmidt, Douglas C. et. al.
ISBN: 0470059028
Pattern-Oriented Software Architecture, A System of Patterns vol. 3
Patterns for Resource Management
Resource acquisition, life cycle, and release patterns are presented in this book.
Kircher, Michael et. al.
ISBN: 0470845252
Pattern-Oriented Software Architecture, A System of Patterns vol. 4
A Pattern Language for Distributed Computing
This book adds to the patterns that I discuss in Parts III and IV of this book, providing patterns related to the technical aspects of distributed systems. The patterns in this
volume create a pattern language.
Buschmann, Frank et. al.
ISBN: 0470059028
Pattern-Oriented Software Architecture, A System of Patterns vol. 5
On Patterns and Pattern Languages
This volume, which wraps up the series, is an excellent source of detailed information about patterns, expanding on what you find in Part II of this book.
Buschmann, Frank et. al.
ISBN: 0471486485
Patterns of Enterprise Application Architecture
Fowler, Martin et. al.
ISBN: 0321127420
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Hohpe, Gregor et. al.
ISBN: 0133065103
Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services
Daigneau, Robert
ISBN: 032154420X
The Data Model Resource Book, Vol. 1: A Library of Universal Data Models for All Enterprises
Silverston, Lenb
ISBN: 0471380237
The Data Model Resource Book, Vol. 2: A Library of Data Models for Specific Industries
Silverston, Lenb
ISBN: 0471353485
The Data Model Resource Book, Vol. 3: Universal Patterns for Data Modeling
Silverston, Lenb
ISBN: 0470178450
Software Architecture: Foundations, Theory and Practice
Taylor, Richard et. al.
ISBN: 978-0470-16774-8
Software Architecture in Practice (3rd Edition)
Bass, Len et. al.
ISBN: 978-0321815736
Design Patterns: Elements of Reusable Object-Oriented Software
This book is also known as the Gang of Four book. It contains 23 patterns that explain how to solve many problems associated with object-oriented programming.
Gamma, Erich et. al.
ISBN: 0201633612
Object-Oriented Modeling and Design
Rumbaugh, James et. al.
ISBN:
Object-Oriented Analysis and Design with Applications (2nd Edition)
Booch, Grady
ISBN: 978-0805353402
Object Oriented Analysis (2nd Edition)
Coad, Peter
ISBN: 978-0136299813
Object Oriented Design
Coad, Peter
ISBN: 978-0136300700
Object Oriented Programming
Coad, Peter
ISBN: 978-0130326164
Analysis Patterns: Reusable Object Models
Fowler, Martin
ISBN: 978-0201895421
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Larman, Craig
ISBN: 978-0131489066
Documenting Software Architectures: Views and Beyond
Clements, Paul et. al.
ISBN: 978-0321552686
Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
Cwalina, Krzysztof et. al.
ISBN: 978-0321545619
The Java Programming Language
Arnold, Ken; Gosling, James
ISBN:
Java Language Specification (2nd Edition)
Gosling, James; Joy, Bill; Steele, Guy; Bracha, Gilad
ISBN: 978-0201310085
The Pragmatic Programmer: From Journeyman to Master
Hunt, Andrew
Programming Pearls (2nd Ed.)
Bentley, Jon
Structure and Interpretation of Computer Programs (1st ed.)
Abelson, Harold
This is the book to start programming with, which is unfortunate because you've all started out the wrong way. But read this anyway. The first edition is much better in my opinion, but get either. This is available online and in print.
The Algorithm Design Manual 2nd Edition
Skiena, Steven
Get a book on algorithms and algorithm design and read it.
Introduction to Algorithms, 3rd Edition
Cormen, Thomas
The Art of Computer Programming, Volumes 1-4A Boxed Set
Knuth, Donald
This is the classic series on algorithm design. Buy it, read it, read it again.
The Art of Computer Programming, Volume 4B, Fascicle 5: Mathematical Preliminaries Redux; Introduction to Backtracking; Dancing Links
Knuth, Donald
The Art of Computer Programming, Volume 4, Fascicle 6: Satisfiability
Knuth, Donald
The MMIX Supplement: Supplement to The Art of Computer Programming Volumes 1, 2, 3
Ruckert, Martin
The Design of Everyday Things: Revised and Expanded Edition
Norman, Don
This one isn't a computing text at all. It's a short book that talks about design and why the human being who uses your product is so important
Hacker's Delight
Warren, Henry
Elements of Programming
Stepanov, Alexander
This will be the hardest book you read from this list. But read it.
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
Tate, Bruce
Seven More Languages in Seven Weeks: Languages That Are Shaping the Future
Tate, Bruce
The Haskell School of Music: From Signals to Symphonies
Hudak, Paul and Quick, Donya
Some light reading on building a type system from the ground up to support musical composition.
Computer Networks, 5th ed
Tanenbaum, Andrew
There are a number of editions of this book. I do not have a copy of the international edition. It's supposed to be identical the US hardcover edition. This book is expensive, see if you can get it on the used market. I have a 1st edition of this text and it still holds up at the lower layers in the ISO model.
The following three books are a series that walks from the bottom of the TCP/IP stack up through current application protocols. Do the coding exercises in them to get an undersatnding how the underlying networking software works. Plus, it's fun to write code in C that fiddles with the bits.
TCP/IP Illustrated, Vol. 1: The Protocols
Addison-Wesley
Stevens, W. Richard and Fall, Kevin R.
TCP/IP Illustrated, Volume 2: The Implementation
Addison-Wesley
Stevens, W. Richard and Wright, Gary
TCP/IP Illustrated: v. 3: TCP for Transactions, HTTP, NNTP and the Unix Domain Protocols
Addison-Wesley
Stevens, W. Richard
Unix Network Programming, Volume 1: The Sockets Networking API
Addison-Wesley
Stevens, W. Richard