This is a list of books that I have read and that I recommend for others to read. Some books may have come out in a later addition after I read them, so make sure to look for the latest version if you also want to read them.
From Journeyman to Master
Author: Andrew Hunt and David Thomas
This was the first software development book that really gave med a deep impression and fundamentally changed the way I think about how software should be developed. The book is about how you develop as a craftsman and explains a lot of small techniques and tools that will help you become a master developer. As I understand it this book was one of the first collecting the techniques and tools that could make you a developer master. Some of the techniques that are described in the book are refactoring, code that’s easy to test, source control, automated builds and so on. One of the headings that I clearly remember was “Dead Program Tell No Lies”, this means that it’s better to crash the program instead of showing the wrong result in the application. The book still is a very short and simple way to get started to be a master developer. Even that book is quite old now and they have split up the contents of this book into several new editions at the pragmatic bookshelf now a days, it could be a good first read.
Reliable Software Releases through Build, Test and Deployment Automation
Author: Jez Humble, David Farley
This book will give you a very good overview of Continuous Delivery and that means everything from Build to Test to Deployment in an automated way. The book does not only theoretically explain how to continuously deliver software it also gives real world examples and real solutions and strategies. For the solution suggestion you also get organizational and process specific suggestions. You also get suggestions on what tools you can use and what is god and bad with them. The practices given in the book could be used from small projects to very large corporate development projects.
The Continuous Deliver book is interesting and gives new knowledge all the way to the last page and that is really a strength that I don’t see in many other computer related books.
Getting Started With the Arcane Art of Writing Awesome JavaScript for C# Developers
Author: Jaime González García
In the year 2017 almost all developers need to write at least some JavaScript, even if they mainly work in another programming language. You also hear other developers talk about JavaScript like, it's a strange language and some also say that it's not a real programming language.
If you are a C# developer that needs to write a little or a lot of JavaScript, I will recommend you to read this book, if you think that JavaScript is behaving strange. The book will show you a lot of the strange things and why it behaves like it does, it will also show you how you can recreate common C# constructs in JavaScript.
Author: Douglas Crockford
Why don't all programming languages have a book like this? If you already are a developer, this kind of book is a very good way to learn a new programming language; in this case it's JavaScript.
The title of the boom actually very clearly describes what the book actually is about. In a very dense way it goes through the good parts of the JavaScript language. With the good parts of JavaScript Douglas refer to the parts that you should use. The book actually also describes, what the bad parts are and how you, can avoid them or work around them.
The author of this book Douglas Crockford is also the discoverer of JSON and the creator of the tool JSLint.
Author: Roy Osherove
If you want to start writing professional Unit Tests for C# code this book feels to me like the obvious choices. The book explains unit testing from the beginning and all the way up to how you write professional Unit Tests, it also explains how to convince other people in your company on why you should start using Unit Tests. There is also a list of tools that you can use and what the benefits with each one is. I recommend that you read the when you want to start writing Unit Tests.