Software Design
Refactoring: Improving the Design of Existing Code
Martin Fowler
The Art of Readable Code: Simple and Practical Techniques for Writing Better Code
Dustin Boswell, Trevor Foucher
Clean Code: A Handbook of Agile Software Craftsmanship
Robert Martin
Domain-Driven Design: Tackling Complexity in the Heart of Software
Eric Evans
Patterns of Enterprise Application Architecture
Martin Fowler
Java Modeling In Color With UML: Enterprise Components and Process
Peter Coad, Eric LeFebvre, Jeff De Luca
Art of UNIX Programming
Eric Raymond