Favorite Developer Books
Date Published: 26 September 2008
I’ve written a few posts recently about various books, and recently while interviewing a candidate for Nimble Software Professionals it occurred to me that for an experienced developer (e.g. not a new grad out of college), asking what their favorite (or most recently read) programming book is could tell a lot about them as a developer. If their favorite book is something like Expert Programming in 21 Hours (not a real title) that paints a very different picture than if their favorite book is Design Patterns or a similarly respected title.
Of course, flipping the question around, I started to think about what I would list among my own favorites, and naturally that seemed like a reasonable blog post, so here goes. Anyone interested in a wider poll of favorites should check out this StackOverflow thread(andthis one).
Steve’s Top 4 For Developers
Agile Principles, Patterns, and Practices in C# is a must-read for any C# developer. Some of the concepts are repeated in Clean Code, below, but it’s certainly worth reading both books. This book essentially defines how modern software development should be performed.
Clean Code replaces Code Complete (below) as my required book on the micro- aspects of writing good code. Code Complete remains in my top 4 as an excellent book in its own right, but Clean Code is shorter and focuses more on the pieces that I find to be most important.
This book is also required reading for all of NimblePros‘ developers. I really wish I had read it about four years ago when it was first published (and sooner than that if he’d written it sooner) as it fundamentally changed my approach to developing flexible and maintainable software. I’ve reviewed it elsewhere more completely, but it’s good. The title stinks, though – don’t let that throw you.
A classic. Should be a companion text in intro to programming courses around the country, I think. This book will help you to write better code at the method level and below. It’s low level but extremely practical and while you may not agree with or adopt 100% of the practices it recommends, you’ll be a better programmer for having read McConnel’s analysis and then made an informed choice about how you do things.
Note that I don’t really care what language you’re writing in – these books are just fantastic for any software developer.
Steve’s Top 2 For Project Managers
I’ve written a few blog posts based on this book recently, and I have a few more notes that will turn into future blog posts. I think this book has given me more blog fodder than any other I’ve read recently. I still need to write a full review, but it’s definitely worth a read if you’re interested in improving the overall productivity of your development team.
Another classic title, this one is great for technical managers of all sorts who want to have productive teams. If your organization is one in which people say (or believe) they like working early in the morning / late at night / on weekends because "it’s the only time they can get real work done" then you really should read (and act on) this book.
Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.