Advanced TDD learning path

If you have a lot of experience implementing TDD, your learning plan should focus on deepening your understanding of advanced principles, exploring new tools and techniques, and applying TDD in more complex contexts.

Here we present a plan with challenges to expand your knowledge and skills in TDD:

1. Reinforce the theory  

Even when you have a lot of experience, it is important to review the theoretical foundations to feed your knowledge.

Among the concepts you can explore to increase the challenge of your practice is the relationship of TDD and software architecture. Understand how TDD influences architectural decisions and how it can guide the design of complex systems.

TDD Harms Architecture, un artículo de Robert C. Martin (Uncle Bob), ofrece una perspectiva crítica sobre cómo TDD puede influir en la arquitectura del software. Asimismo, el libro Clean Architecture, también de Rober C. Martin, es una guía útil para aprender cómo integrar TDD con principios de arquitectura limpia para diseñar software de alta calidad.

Another important relationship is TDD in distributed systems. Explore strategies for applying TDD to the development of microservices and distributed systems. A book that can help you is Building Event-Driven Microservices, by Adam Bellemare, in which you can learn how data is generated and propagated in your projects.

2. Advanced Katas 

As always, for knowledge to be useful, you need practice. Here are some options to test your knowledge.

  • Roman Numerals: This exercise will allow you to refine the process for making decisions on how to add tests.

3. Advanced tools and frameworks

Learn to use advanced testing tools and frameworks specific to your preferred language or development environment. This may include more sophisticated mock frameworks, code coverage tools, and specialized continuous integration systems.

Use advanced tutorials from tools such as Mockito (for Java), Sinon.js (for JavaScript), or PyTest and Mock (for Python). Here is a playlist focused on testing with examples and reflections on how to implement new complex practices in your projects.

4. Community and collaborative learning 

Participating in events and communities that encourage exchanges will help you find new perspectives for your developments.

One of the most important annual events is the Global day Coderetreat, an entire day dedicated to collaborative software development, with the aim of improving technical skills and sharing good times in community.

One of the best ways to learn is to teach. Offer mentoring to less experienced TDD developers. This exposes you to new challenges and allows you to apply your skills in a variety of contexts.

Also, seek out training at your level that allows you to learn from other industry experts.  

Final Recommendations

  • Feedback and reflection: After each kata or project, take some time to reflect on what you learned and how you can improve. Self-assessment is key to continued growth.

  • Learning journal: Keep a journal of your progress in TDD. Write down the challenges you faced, how you overcame them, and lessons learned.

This learning plan is designed to challenge you and push your boundaries in TDD. The goal is not only to improve your technical skills, but also to contribute to raising the level of software development in the industry.


Tell us about your challenges by clicking on the banner