So how can you become a better developer? One of the best ways is by learning design patterns. Design Patterns provide reusable solutions to solve common software design problems. In this training we identify software design problems and see how to address these using the best suited Design Pattern. Topics: Introduction to Patterns, Creational patterns, Behavioral patterns, Structural patterns.