A Blog about Business, Enterprise Architecture and Software Design by the Founders of ZenModeler

Books Recommendations

Design

Universal Principles of Design

Universal-Principles-Of-Design

The Design of Design

The-Design-Of-Design-Frederick-Brooks


Domain Driven Design

Domain-Driven Design. Tackling complexity in the Hearth of Software. Eric Evans

Domain-Driven-Design-Eric-Evans

Domain Driven Design Quickly. Infoq

Domain-Driven-Design-Quickly-Infoq

Domain Driven Design Using Naked Objects. Dan Haywood

Domain-Driven-Design-Using-Naked-Objects-Dan-Haywood

Implementing Domain-Driven Design. Vaughn Vernon

Implementing-Domain-Driven-Design-Vaughn-Vernon

Analysis Patterns. Martin Fowler

Analysis-Patterns-Martin-Fowler


Fundamentals

Structure and Interpretation of Computer Programs (Free, get the PDF)

Structure and Interpretation of Computer Programs

A classic one, even if it strongly divide the reviewers about the enlightments that this book contains (See Norvig's review), and a great article about "Why and How to start your SICP Trek". There is also the lecture by Abelson and Sussman themselves at the MIT OpenCourseware, worth watching! there is also an SICP interactive version allowing you to run the Scheme code from the book.

Understanding Computation. Tom Stuart.

Understanding Computation

Tom Stuart explains what it means to compute something using the Ruby language. That book will enlight you about the fundamentals of computation (interpret an AST, parsing with state machine, the turing machine, etc.). I strongly recommend you to have a look at the following papers that perfectly completes that book:


Other paradigms (FP, Logical, ...)

Functional Programming for the Java Developers. Dean Wampler. O'Reilly'

Functional-Programming-For-The-Java-Developers-Dean-Wampler

Functional Programming for the Object-Oriented Programmer. Brian Marick

Functional-Programming-for-the-Object-Oriented-Programmer-Brian-Marick

Seven Languages In Seven Weeks. Bruce Tate. Pragmatic Programmers

Seven-Languages-In-Seven-Weeks

The Joy Of Clojure. Michael Fogus, Chris Houser. Manning.

Joy-Of-Clojure

The Joy Of Clojure. Michael Fogus, Chris Houser. Manning. 2nd Ed.

Joy-Of-Clojure 2nd Edition

Functional Javascript. Michael Fogus. O'Reilly'

Functional Javascript


Modeling and System Thinking

Domain Specific Languages. Martin Fowler. Addison Wesley

Domain-Specific-Languages-Martin-Fowler

Thinking in Systems. Donella H. Meadows.

Thinking-In-Systems-Donella-Meadows


User Interactions

Design of Everyday Things. Donald Norman.

Design-Of-Everyday-Things-Donal-Norman

Don't Make Me Think. Steve Krug

Dont-Make-Me-Think-Steve-Krug


Architectures

Patterns of Enterprise Application Architecture. Martin Fowler. Addison Wesley

Patterns-Of-Enterprise-Application-Architecture-Martin-Fowler

Lean Architecture. James Coplien

Lean-Architecture-James-Coplien

Enterprise Integration Patterns. Gregor Hohpe, Bobby Woolf. Addison Wesley

Enterprise-Integration-Patterns-Gregor-Hohpe-Bobby-Woolf


Concurrency

The art of Multiprocessor Programming. Maurice Herlihy, Nir Shavit. Morgan Kaufmann.

The-Art-Of-MultiProcessor-Programming

Java Concurrency in Practice. Brian Goetz. Addison Wesley

Java-Concurrency-In-Practice


Specification, Test and Validation

Test Driven Development By Example. Kent Beck

Test-Driven-Development-By-Example-Kent-Beck

Specification By Example. Gojko Adzic

Specification-By-Example-Gojko-Adzic


Refactoring and Clean Code

Clean Code. Robert "Bob" Martin

Clean-Code-Robert-Martin

Refactoring. Martin Fowler

Refactoring-Martin-Fowler

Working Effectively with Legacy Code. Michael Feathers

Working-Effectively-With-Legacy-Code-Michael-Feathers

Pragmatic Programmer. Andrew Hunt

Pragmatic-Programmer-Andrew-Hunt

Code Complete. Steven McConnel

Code-Complete-Steven-MacConnel

Refactoring Databases. Scott Ambler

Refactoring-Databases-Steven-McConnell


Continuous Integration and Continuous Delivery

Continuous Delivery. Jezz Humble. Addison Wesley

Continuous-Delivery-Jezz-Humble

Continous Integration, Improving Software Quality and Reducing Risk. Paul Duvall, Steve Matyas, Andrew Glover

Continuous-Integration


Management and Business

Management 3.0. Jurgen Appelo. Addison Wesley

Management-3.0-Jurgen-Appelo

The Personal MBA, mastering the art of business. Josh Kaufmann

The-Personal-MBA-Josh-Kaufman

Rework. Jason Fried, David Heinemeier Hansson

Rework-Jason-Fried

Business Model Generation. Alexander Osterwalder, Yves Pigneur

Business-Model-Generation-

Lean Startup. Eric Ries

lean-startup

The Startup Owner's Manual: The Step-By-Step Guide for Building a Great Company. Steve Blank, Bob Dorf

Startup Owners Manual


Communication

Presentation Zen. Garr Reynolds

Presentation-Zen-Garr-Reynolds

Made to Stick. Chip Heath and Dan Heath

Made-To-Stick-Heath