Daily Archives: November 21, 2007

The Effective Software Developer’s Book List

What books should all serious developers read and study? This is a list of books that I have either found particularly helpful in my own growth as a programmer, or that are popular on various required-reading lists. I have bolded books I consider absolute required reading (probably multiple times) for all software developers.

I’ve gathered these books from multiple sources, beginning with Steve McConnell’s list in the back of Code Complete.

By the way, just because a book is listed in the Introductory section does not mean you shouldn’t read it because you’re advanced.

Why the Have I Read? column? To keep me honest, and to serve as my own checklist.

(Updated 11/28 – PeopleWare)
(Updated 12/7 – Design of Everyday Things)
(Updated 1/26 – Beautiful Code, Essay section)
(Updated 6/3 – Pragmatic Unit Testing in C# with NUnit)

Introductory

Book

Have I Read?

Code Complete: A Practical Handbook of Software Construction
Steve McConnell
Y
Conceptual Blockbusting: A Guide to Better Ideas
James L. Adams
 
Programming Pearls (2nd Edition) (ACM Press)
Jon Bentley
Y
Facts and Fallacies of Software Engineering
Robert Glass
 
The Pragmatic Programmer: From Journeyman to Master
Andrew Hunt and David Thomas
Y
Object-Oriented Design Heuristics
Arther Riel
Y
UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) (The Addison-Wesley Object Technology Series)
Martin Fowler
 
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Craig Larman
 
Refactoring Workbook
William Wake
 
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
Frederick Brooks
Y
Introduction to Algorithms
Thomas Cormen
 

Intermediate

Book Have I Read?
Software Configuration Management Patterns: Effective Teamwork, Practical Integration
Stephen Berczuk and Brad Appleton
 
Software Creativity 2.0
Robert Glass
 
Testing Computer Software, 2nd Edition
Cem Kaner, Jack Falk, Hung Q. Nguyen
 
Rapid Development
Steve McConnell
 
Software Requirements, Second Edition
Karl Wiegers
 
“Manager’s Handbook for Software Development” (PDF)
NASA Goddard Space Flight Center
 
Patterns of Enterprise Application Architecture (The Addison-Wesley Signature Series)
Martin Fowler
 
Test Driven Development: By Example (The Addison-Wesley Signature Series)
Kent Beck
Y
Pragmatic Unit Testing in C# with NUnit, 2nd Edition
Andy Hunt, Dave Thomas, Matt Hargett
Y
Refactoring to Patterns (The Addison-Wesley Signature Series)
Joshua Kerievsky
 
Head First Design Patterns (Head First)
Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra
 
User Stories Applied: For Agile Software Development (The Addison-Wesley Signature Series)
Mike Cohn
 
Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series)
Robert Martin
 
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET
Jimmy Nilsson
 
Extreme Programming Explained: Embrace Change (2nd Edition) (The XP Series)
Kent Beck
 
The Design of Everyday Things
Donald A. Norman
Y
Beautiful Code: Leading Programmers Explain How They Think  

Professional

Book Have I Read?
Software Architecture in Practice (2nd Edition) (The SEI Series in Software Engineering)
Len Bass, Paul Clements, and Rick Kazman
 
Refactoring: Improving the Design of Existing Code (The Addison-Wesley Object Technology Series)
Martin Fowler
Y
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)
Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides
Y
Principles Of Software Engineering Management
Tom Gilb
 
Writing Solid Code
Steve Maguire
 
Domain-Driven Design: Tackling Complexity in the Heart of Software
Eric Evans
 
Working Effectively with Legacy Code (Robert C. Martin Series)
Michael Feathers
 
Agile Estimating and Planning (Robert C. Martin Series)
Mike Cohn
 
Lean Software Development: An Agile Toolkit (The Agile Software Development Series)
Mary Poppendieck and Tom Poppendieck
 
Implementing Lean Software Development: From Concept to Cash (The Addison-Wesley Signature Series)
Mary Poppendieck and Tom Poppendieck
 

Essays

Essay Have I Read?
Teach Yourself Programming in Ten Years
Peter Norvig
Y
They Write the Right Stuff
Charles Fishman
Y
The Humble Programmer
Edsger Dikstra
Y

Management

Book Have I Read?
Peopleware: Productive Projects and Teams
Tom DeMarco
Y

Windows

Book Have I Read?
Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000 (Pro-Developer)
Mark Russinovich and David Solomon
Y
Programming Windows, Fifth Edition
Charles Petzold
Y
Programming Applications for Microsoft Windows
Jeff Richter
Y
Programming Windows With MFC
Jeff Prosise
Y

.Net

Book Have I Read?
Inside C#, Second Edition
Tom Archer and Andrew Whitechapel
Y
CLR via C#, Second Edition (Pro Developer)
Jeff Richter
Y

Technorati Tags: , , ,