8 Books every developer should read

10 years ago, books were the most important medium for developers to learn new things, and to keep up with the innovation in the industry. This has changed completely. In our fast-paced industry, blog posts and social media are the superior medium because they are much faster. Especially some of my younger colleagues don’t read books at all. But when it comes to basics, this can be a problem. Blogs and social media are much faster – but normally they are not that deep and intense.

I stumbled about this a few weeks ago, when I was talking about Domain Driven Design with some colleagues. I’m not an expert in DDD – but I read the book from Eric Evans – so I’m at least familiar with the concepts and terms and I can talk about them with others. Most of my colleagues didn’t even know the book! That’s why I decided to put together a list of books that I expect all my developers to read.

The list represents my personal opinion and has a strong focus on the developers in my business line. I also only present books that I see relevant for today’s coding challenges. Normally list like this start with “The Gang of Four”. But in modern languages, like C#, most of the patterns are already included as a language feature. It’s a very good book – but in my opinion, it is not a must read. If you think there are books missing – please leave a comment. I’m really looking forward to the discussions here.

Note: if you buy a book with one of the links here you will support this blog. If you don’t want to support the blog, just search for the title on amazon yourself.

1. Clean Code: A Handbook of Agile Software Craftsmanship

Author: Robert C. Martin
Publisher: Prentice Hall 2008

51bPR2V9fBL._SX404_BO1,204,203,200_
So this is really THE book every developer must read. If you haven’t done it yet – buy the book, read it and thank me later. It’s an epic book about software craftsmanship and clean code. It does not only tell you how to write good code – it also provides an effective way to approach software development. It describes principles, patterns and practices for writing clean code.

The examples are in Java – but that doesn’t matter. You can perfectly understand the code as a C# developer.

2. Domain-Driven Design: Tackling Complexity in the Heart of Software

Author: Eric J. Evans
Publisher: Pearson Professional 2003
51sZW87slRL._SX375_BO1,204,203,200_This is a book about tackling the complexity in software by bridging the gap between the abstract problem domain and the concrete implementation. Every developer – especially when working for different clients and different problem domains like we do – should know what a Ubiquitous Language and a Bounded context is.

3. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win

Authors: Gene Kim, Kevin Behr and George Spafford
Publisher: Nbn Tradeselect 2014


51Muw70krLL._SX332_BO1,204,203,200_
This one might surprise you in my list. It’s a novel about IT – and if you work in IT, no matter if you are a developer or an IT-Pro, you will find this book very entertaining. But it’s not only entertaining – it really explains perfectly what DevOps is all about. If DevOps is still just a buzzword or a synonym for automation for you – buy the book and read it! It’s a small book and you can read it in one or two days. It’s absolutely worth the time and money.

4. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

Authors: Gene Kim, Johm Willis, Patrick Debois
Publisher: It Revolution Press 2016


51Z6uQ57ilL._SX324_BO1,204,203,200_
If you’ve read “The Phoenix Project” and you want to learn more about DevOps – this is the book to read. It’s the DevOps bible, so to say. Since DevOps is the future of software development – I encourage every developer to evolve in this direction.

5. Agile Principles, Patterns, and Practices in C#

Authors: Robert C. Martin, Micah Martin
Publisher: Prentice Hall 2006
51rdbk2iTQL._SX372_BO1,204,203,200_This book is about agile software development. It explains the basic principles, patterns, and practices of agile development. The book explains things like spiking, splitting, velocity, planning iterations and releases, Test-driven development etc. It’s very “hands-on” and includes many source code samples.

6. Effective C#

Author: Bill Wagner
Publisher: Pearson Education (Us) 2016

51ga39m0W5L._SX381_BO1,204,203,200_

This is the deep-dive book for the language of your choice. If you use JavaScript replace it in the list with a deep-dive book for JS. I read this book in an older version some years ago and benefited a lot from it. I hope the new version is as good.

7. Refactoring: Improving the Design of Existing Code

Authors: Martin Fowler, Kent Beck
Publisher: Pearson 1999

51K-M5hR8qL._SX392_BO1,204,203,200_I really like the style of this book. It’s written very precise and clear and has good samples. It does not matter that the samples are in Java. The book goes beyond TDD and shows how you can refactor and redesign code to become “clean”.

8. Art of Unit Testing

Autor: Roy Osherove
Publisher: Manning; 2013

51VAZ9BwcvL._SX397_BO1,204,203,200_

This was my first book about unit testing and it’s for me “the book” about this topic. If you preach TDD and unit testing – like I do – you get a lot of different opinions from other people. It’s really good to have a reference that you can refer to.

Summary

So, does the world need another list of “books that every developer must read”? I thought not – but the last month showed me the opposite. This is my personal top 8 and I sure it is not complete. What do you think? Do you have any books that are missing? Leave a comment or contact me on Twitter. I’m interested in what you all think.

2 comments

  1. I would add Code Complete by Steve McConnell to the every developer must read list. He overlaps with Uncle Bob’s Clean Code, but has lots of really useful advice for new and old developers.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s