I have read some books about development the last 15 years. Some I can't remember reading, but some of them have influenced how I develop today. One of the books that pops up in my mind is Code Complete. This book really made me think of how I should develop applications. It touches on most of the subjects it's important to know about when developing; like how to debug effective, how to comment your code, how to write good loops etc.
I remember working for an organization some years ago. We didn't have any senior developers working in the company, at least seniors doing development. This resulted in a lot of code that where, well lets say, not as good as it could have been. I remember spending a lot of time in the debugger. We didn't use any development metrology. I was sure we could get a lot of benefits from following one. So I started to look into the new and hot metrology at that time; Extreme programming. The book I started reading was Extreme programming Explained. I remember trying to get the other developers to follow the practices explained in this book and I think we managed to start doing a bit of test driven development. Not long after this I changed my job, but what I read in this book stuck with me. Today I'm completely test driven!
When I started working in the company I'm currently working for I was recommended to read a book called Ship it! This is a book where the writer have collected best practices from years of development. It basically describes best practices when developing, and the environment around developing efficiently. A must read for a developer. After reading this book I was really inspired and wanted to read more books in the same category, so I started to read a book called The pragmatic programmer. If you still haven't read this book follow my link to Amazon and order it today. It's one of the most inspiring programming books a developer can read. The last year I have read some books. One of the favorite books are Clean Code. It's a good read, and I recommend it too. If I should compare it to an other book I have read, it must be Code Complete. Clean Code is a easier/faster read than Code Complete.
Ahh..I need to remember to mention a book that describes much of the practices I follow today; Code Leader. A great book written by Patrick Cauldwell. It describes things like how to set up a continuous integration server. How to write your build script and how to structure your development tree.
Domain Driven Design
At the customer I work for at the moment, we use Domain Driven Development. I must say I'm a big fan of capturing the requirements using DDD. There are three books I have read/browsed through on this topic. They are Domain-Driven Design: Tackling Complexity in the Heart of Software written by Eric Evans. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET written by Jimmy Nilsson and .NET Domain-Driven Design with C#: Problem - Design - Solution (Programmer to Programmer) written by Tim McCarthy. I recommend reading all of this books to really understand what DDD is. I first started reading Nilssons book, and it's a great book. It uses a lot of code examples, but he often refers to Evans book, so it's a good thing to also have this book at hand. Evans book is considered the bible for DDD. I think it's a bit vague on some areas but it's a must read if you want to learn DDD. The last book, written by Tim McCarthy, is the most concrete book on the topic, and I have used many of the ideas from this book to create the application for the client I'm currently working for. If you want to get an introduction to DDD, you should take a look at the free book called Domain Driven Design Quickly. It's a summary of Evans book and is hosted at InfoQ.
I have been practicing SCRUM for a while now. The book that got me up to speed in this area, is a free book by a Swedish guy called Henrik Kinberg. The book is called Scrum from the trenches.
This post is a response to Gørans post; A software craftsman’s bookshelf. At the end of his post he encourage other Norwegian developers to write about their recommendations when it comes to programming books. I picked up some good tips from his post and some of the other guys he linked to.
Do you have any book recommendations for me?