Software Engineering Books

Tips and Techniques of Software Development

Design Patterns

The "Gang of Four Book" covers re-usable solutions to common problems.

Test Driven Development

Write unit tests first, make them pass, then refactor. This book takes you through examples via test driven development.

Refactoring

Learn to make your existing code simpler and easier to use.

Clean Code

Filled with code samples and explanations about what's clean and what's not.

Continuous Delivery

Explains why continuous deployment is ideal and how to do it via automation.

Continuous Integration

Automate your software tests and integration and enjoy constant feedback. This book explains why CI is good and shows you how to do it.

Version Control with Git

Version control is a key part to software development. Git is a popular distributed version control system.

Mercurial: The Definitive Guide

Mercurial is another popular distributed version control system.

Version Control with Subversion

Subversion is a popular centralized version control system.

Pragmatic Programmer

Advice on the craft of programming. Tips range from tools to good practices. Highly recommended.

Code Complete

Advice on software development covering a huge breadth of subjects. Topics include OO, clean code, agile methods, and more.

Mythical Man Month

Essays blending software engineering facts with thought-provoking opinions.

The Lean Startup

Not strictly software engineering related, but still a good read for startups.

The Elements of Scrum

Falling under project management, Scrum is an iterative framework for product development.

Extreme Programming Explained

The classic book on agile techniques for software development.