In the following blog post, I will list 10 books for software developers that I have particularly enjoyed over the past few years.
This classic should be read by every software developer at least once in his life. The author, Robert C. Martin (Uncle Bob) describes the difference between good and bad code. Further he introduces how to transform bad code into good code and describes the basics of Test-Driven-Development. It is really a very good book for software developers who are at the beginning of their career, however, even after a few years and re-reading, you can always learn something new.
Another book by Robert C. Martin and I promise it won’t be the last on this list. It follows Clean Code and discusses what good architecture looks like and what principles of software development there are. Further, Uncle Bob describes what can go wrong with architecture design decisions and what can be done about it.
Next, we have another book by Robert C. Martin. In The Clean Coder, Uncle Bob describes what it means to act like a software craftsman. He tells you when to say “no” and how to do it, and also when to say “yes” and what “yes” really means. He tells you about the responsbility you have as a software developer.
I promise, this will be the last book by Robert C. Martin in this list. The book ties in with The Clean Coder and explains what it means to be a software developer and what your responsibilities are. It describes technical practice and the history of software development. Uncle Bob also explains how to solve the problems of your employer, customers, colleagues and others. If you liked The Clean Coder, you will love Clean Craftmanship.
Martin Fowler is one of my favorite authors, along with Robert C. Martin, when it comes to software development. In Refactoring, Martin Fowler describes how we can improve the design of existing code without changing its behavior. He lists a catalog of over 40 refactoring methods and describes how to use them to transform code to clean code. Step by step he explains in examples how refactoring can be used. Through the many examples and simply held methods, the learned knowledge can be applied quickly and pragmatically in practice.
The Pragmatic Programmer by David Thomas & Andrew Hunt is about personal responsility, carrer development and architectural techniques for keeping code flexible and easty to adept and reuse. It was rewritten and again published after twenty years in 2019 and is therefore up-to-date.
The Passionate Programmer by Chad Fowler is again a book about the carrer as a software developer.
Code That Fits in Your Head by Mark Seemann is about reducing complexity in your code and developing software more sustainably. He talks about software development metaphors and why bad metaphors does not fit in the software development process. Also he talks about productivity and how to solve problems more quickly and effectively.
Design Patterns are solutions to common occurring problems in software development. Thereforce it is important to know about common patterns. In book 23 design pattern of the categories’ creational, structural, and behavioural patterns will be discussed. The book is also very suitable as a reference book for design patterns and coding exercises.
Last but not least, Code Complete by Steve McConnell covers aspects of clean code, best practices and software architecture. It is very comprehensive and covers various topics from almost all the books mentioned so far in almost a thousand pages.
Written on November 3rd , 2022 by Lasse Schultebraucks