Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

This study path is released under the CC BY-SA 4.0 license


Welcome to this study path, or if you like, the learning path. Is a path about software development practices and design principles. It's open and freely accessible to everyone who wants to dig into topics like Clean Code, Test-Driven Development, Refactoring, Clean Architecture, Legacy Code, Domain-Driven Design, Microservices, and much more.

The materials are all organized in sections based on specific topics. There is no order to follow. You can skim through all the sections, look for anything specific, follow only a few sections, or just start reading from the very beginning to the end. It's your choice!

I am willing to keep this study path always updated, and I would invite you to contribute to this project by submitting any material you believe will improve it.

Why this study path? Few years ago I worked as a mentor for an intern in Agile Software Development, and I wanted to provide a clear path to follow. At that time, the study was covering Clean Code, Test-Driven Development, and other few topics. By the time, with the support of other people, we enhanced the study path with more and more content!


Getting Started

Session 1: SOLID and Clean Code

Session 2: Test-Driven Development

Session 3: Refactoring

Session 4: Working with Legacy Code

Session 5: Testing, Design and Test-Driven Development

Session 6: Practice with a new Programming Language

Principles and Practices are not dependent on any particular programming language, rather they act as support or enabler to learn and get comfortable with programming languages and tools we never used before.

Now that you have learned something about the good principles and practices of software development, try to grab a new programming language which you never used before and try to repeat some of the Code Katas you already have done previously:

If you are looking for more Code Katas to learn and practice with your new programming language, try to give a look at Kata-Log.

Session 7: The Clean Architecture

Session 8: Domain-Driven Design

Session 9: Microservices

Session 10: Further topics

Recommended Readings

This section provides a list of recommended books readings that have not been mentioned directly in this study path, but of significant importance.