Home » Recommended Books
People
The Mythical Man-Month: Essays on Software Engineering
Frederick P. Brooks
The granddaddy of all books on the human element in software engineering. Brooks' central argument is that large programming projects suffer different management problems from small ones due to the division of labor, and that conceptual integrity of the product is critical. A must read.
Peopleware - Productive Projects and Teams
Tom DeMarco, Timothy Lister
A long-time favorite. This book is a compendium of commonsense wisdom on the people issues that affect software development. Though the original publication dates back to the 1980s, its message is as relevant today as ever.
Constantine on Peopleware
Larry L. Constantine
A collection of more than thirty essays and articles offering a wealth of practical insights into the human side of software development. Included are topics such as quality and productivity, teamwork, group dyanmics, personality and programming, project management and organizational issues, interface design, human-machine interaction, cognition, and psychology.
Practice
Algorithms
Robert Sedgewick
This is actually a series of books by Princeton professor Robert Sedgewick. Multiple editions are available, including language-specific editions for C, C++, and Java. Generally, these books provide efficient algorithms for fundamental practical problems faced during software development.
The Practical Guide to Structured Systems Design
Meilir Page-Jones
An older book that does an excellent job of teaching the fundamentals of structured systems design. Admittedly, structured analysis and design harkens back to an older generation of thought processes. However, its tenants form the foundation for newer paradigms like object-oriented analysis and design. The lessons presented by this book are often applicable at both the coding and architectural levels. Read this book if you want to enhance your understanding and appreciation of the techniques commonly used today.
Design Patterns - Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
An instant classic that illustrates an assortment of solutions to problems commonly encountered in software development.
Assessment and Control of Software Risks
Capers Jones
Software development remains, to this day, a field riddled with failures. This book examines a multitude of common risks that contribute to these failures. If you find yourself responsible for assessing the current state of software systems, this book can be an invaluable resource.
Wicked Problems, Righteous Solutions - A Catalogue of Modern Software Engineering Paradigms
Peter DeGrace, Leslie Hulet Stahl
An irreverent, yet effective, look at the unrealistic assumptions and expectations associated with most popular software methodologies.