Book recommendations

We are often asked for book tips in our training courses. Here they are! We have divided the book recommendations into various categories. Feel free to browse! And if an important title is missing, please let us know! Send an email to is sufficient.

On the left is the English version, on the right the German version, if available.

* Each title has a link to Amazon. If you use this link to make a purchase, we will receive a small commission. This does not change the price for you.

Book recommendations for Flow Design

With flow design to clean code is the book by CCD Academy founder Stefan Lieser. The book describes flow design as a design methodology. All aspects of the method are explained using various examples. The examples run through all phases of the development process, from the decomposition of requirements to design and coding. The book also contains a reference section describing all the details of Flow Design.

Book recommendations for Clean Code

It all started with "Clean Code" by Bob C. Martin. It was the trigger for the founding of the Clean Code Developer initiative. It has since become a standard work that every software developer should familiarize themselves with.

Clean Code is an indispensable guide to developing software applications with high-quality code. It provides detailed guidance on writing code that is both clean and changeable, with a focus on ease of reading. The book includes examples and best practices for writing code that is easy to read, debug, and modify. With its clear, concise explanations, Clean Code is an indispensable resource for any software developer.

The Pragmatic Programmer is a book by Andrew Hunt and David Thomas that is aimed at software developers and was originally published in 1999. It is a classic in software development and has helped many developers to improve their skills and approaches.

The book describes a series of principles and techniques that enable developers to write better software, work faster and achieve better results. It is not only about the technical aspects of software development, but also about the human factors that play a role.

A central concept of the book is that developers should be "pragmatic". This means that they should not become fixated on a particular technology or method, but should instead always look for the best solution to a particular problem. The authors recommend that developers should always educate themselves and be open to new technologies and ideas.

The book covers a wide range of topics, from code quality, debugging and testing to teamwork and dealing with customers. It offers many practical tips and techniques that developers can apply immediately to improve their work.

Overall, "Pragmatic Programmer" is a very useful book for developers who want to improve their skills and approaches. It is well written, easy to understand and offers many practical examples and tips that can help developers on their way to becoming better programmers.

The Clean Coder is another book by Bob C. Martin in which he deals with the topic of clean code development. This is more about the inner attitude of the clean coder. Aspects such as time management, effort estimation, refactoring and testing are covered.

Code Complete by Steve McConnel is another classic on the subject of clean code. Although it is much older, it still contains important suggestions on how to achieve changeable, easily understandable code.

Book recommendations for Refactoring

Refactoringwritten by Martin Fowler, is a comprehensive textbook on technical code improvements. It provides developers with a comprehensive introduction to refactoring and offers a range of techniques that help to improve code without compromising the functionality of the application. The book is well structured and conveys its content in an easily understandable way. It is a must for all software developers working with existing or legacy code.

Working Effectively with Legacy Codewritten by Michael Feathers, is a comprehensive book about working on legacy code. It provides developers with a range of techniques to simplify the development and maintenance of legacy code, covering both technical aspects and strategic approaches to improving the code. The book systematically introduces developers to the art of refactoring and provides an understanding of the various techniques for testing and refactoring legacy code. Working Effectively with Legacy Code is an indispensable reference book for all software developers working with legacy code. It provides a wealth of techniques for changing code safely and efficiently without compromising functionality.

Refactoring to Patterns is a book written by Joshua Kerievsky. It describes a procedure for improving existing code through refactoring by using known design patterns. The aim is to improve the code so that it better complies with the principles of object-oriented programming (OOP) and thus becomes more flexible and easier to change.

The book begins by explaining the basics of refactoring and design patterns. It describes why it is important to refactor and how to work with design patterns to better structure code.

The book then describes a variety of specific refactoring techniques that can be applied to different code situations. The respective patterns that are used are described in detail and illustrated using code examples.

The book also discusses how to deal with various challenges in refactoring, such as legacy code or code that is poorly structured or difficult to understand.

Overall, "Refactoring to Patterns" is a very useful book for developers who want to improve their skills in refactoring and design patterns. It is well structured, well written and offers many practical tips and examples.

The Mikado Method, gitchrieben from Ola Ellneston and Daniel Broand, ist ein lenot verständliches and praxisorientediertit Handbuch zur SoftwareRefacgateishereing. It bietet ea einzigkindige and strukturherete Methode zur SoftwareVerbessheing, the als MikadoMethode becannt ist. The Carores heläutern the Greetingndlagen the Methode and hesmallären, whe she bei the Verbessheing from LegacyCode angewendet whethe kann. You zeigen auch, whe she in einem agilen Tofield eingesetzt whethe kann, to the Changeability of the Codes zu verbessern. The Mikado Method ist ein unverznotbares Nahshlayewrecognize ffor all Softwaredewickler, the ea effiziente and effektive Methode sucwhich can also be used to carry out complex refactorings. It heläutert detailliert the versechiedenen Shritte, the zur Verbessheing of the Codes heforderlight sind, and bietet konkrete Beisphele, the helfen, the grundlegenden Conzepte zu verstehen.

Book recommendations for Software Architecture

Clean Architecture is another book by Robert C. Martin. It deals with the architecture of software systems. The book describes how to design clean and changeable software systems that can be easily adapted to changes.

The basic idea of the book is that the architecture of a software is decisive for its quality. A good architecture ensures that a system is flexible, robust and easy to extend. A poor architecture, on the other hand, often leads to confusing code that is difficult to change.

The book guides the reader through the different levels of a software architecture and presents a clear hierarchy of components. It deals with the dependencies between the components and how they should be organized in order to make the system stable and easily changeable.

Martin also emphasizes the importance of testability and clear interfaces within the system. He presents various principles and patterns that can help to develop clean and robust architectures and also addresses practical aspects such as the choice of tools and frameworks.

Overall, "Clean Architecture" is an interesting book for software developers and architects who want to deepen their understanding of the design of robust and changeable software systems. It provides clear guidelines and practical examples that can help to successfully implement complex software projects.

Unfortunately, in some places it is not written as precisely as it should be. Furthermore, it refers exclusively to DIP-based architectures.

Patterns of Enterprise Application Architecture by Martin Fowler describes patterns that are used in larger applications.

Among other things:

  • Dividing an enterprise application into layers
  • The major approaches to organizing business logic
  • An in-depth treatment of mapping between objects and relational databases
  • Using Model-View-Controller to organize a Web presentation
  • Handling concurrency for data that spans multiple transactions
  • Designing distributed object interfaces

Book recommendations for Domain Driven Design (DDD)

Domain Driven Design is a book by Eric Evans that deals with the development of software systems. The book focuses on the importance of domain modeling in order to achieve a good software architecture.

Domain modeling assumes that every software system has a specific domain that it is intended to represent. To achieve this, developers must understand the fundamental concepts and dependencies within the domain and take them into account in their design. The book emphasizes the need to explore and understand the domain by talking to domain experts and understanding the business processes.

Domain Driven Design also provides common language and concepts for the development of software systems to ensure that all stakeholders speak on a common level and use the same concepts. It also emphasizes the use of software design patterns to reduce complexity and increase flexibility.

Overall, "Domain Driven Design" is an influential book for software developers that shows how they can design better software systems by using domain modeling and a unified language.

Learning Domain-Driven Design is a book by Vladik Khononov and provides a practical guide for software developers and architects to better understand complex business problems and translate them into well-structured software solutions. The book covers DDD concepts such as entities, aggregates, value objects and business domain modeling. It emphasizes close collaboration between developers and domain experts to develop a common language and a better understanding of the domain.

The author explains the strategic and tactical patterns from Eric's "blue book" based on practical experience. He also classifies the patterns and explains the context in which they should be applied. A highly recommended practical supplement.

Implementing Domain Driven Design is a book by Vaughn Vernon that focuses on the practical implementation of Domain Driven Design (DDD) in software development.

The book begins with an introduction to the basics of DDD and then describes the various steps required to implement DDD in a software project. The author discusses how to design and implement the domain model, how to deal with legacy systems and how to create aggregate roots, entities and value objects.

The book also includes advice on using repositories, factories and services to reduce complexity and increase flexibility. In addition, it discusses the importance of bounded contexts and shows how to model and implement them effectively.

Another important topic in this book is the integration of DDD into the overall software development process, including Continuous Integration and Continuous Delivery. The author also discusses the importance of test-driven development (TDD) and the use of design patterns to improve the quality of the software.

Overall, "Implementing Domain Driven Design" is a useful book for developers and architects looking for a practical guide to implementing Domain Driven Design in their projects. It offers practical advice and a clear roadmap for designing and implementing a successful domain model.

Book recommendations for Lean Software / DevOps

Accelerate - Building and Scaling High Performing Technology Organizations - is a book by Nicole Forsgren, Jez Humble and Gene Kim that explores best practices in software development and the management of technology organizations.

The book is based on the authors' extensive research, which examined the performance of more than 20,000 organizations in various industries. The result is a framework of four key performance factors: speed of delivery, stability, scale and resilience.

The book details how organizations can improve these factors by adopting Agile and DevOps methodologies, implementing Continuous Integration and Continuous Delivery (CI/CD), using automation and improving collaboration between teams.

In addition, the book discusses the importance of leadership and culture in building a high-performance organization. It emphasizes the need to empower employees to experiment and learn, and to create an environment that fosters innovation and continuous improvement.

Overall, "Accelerate" is a valuable book for software development executives, managers and practitioners who want to improve the performance of their organizations. It provides practical advice and a clear roadmap for building and scaling a successful technology organization. In particular, it provides empirical justifications for clean code, continuous delivery and automated testing.

Book recommendations for Design Patterns

Head First Design Patterns is one of many books on the subject of design patterns. As a developer, you should know and recognize the common patterns. At the same time, patterns alone are not the solution.