Patterns represent a collection of certain experiences suitable to be reused. Patterns can be applied in all areas, because they allow using solutions that proved to be effective. If you understand design patterns, you will be able not only to implement your solutions and obtain quality source code faster, but also to build effective communication with those of your peers who have already mastered this technology.
Three types of patterns are considered in the course: structural ones that describe typical interrelationships between classes (objects) of the program system, creational ones that describe typical ways of controlling the process of creating instances of classes and behavioral ones that implement typical algorithms used in virtually every software system.
The training is built on a cross-cutting example, when listeners create a solution based on the task at hand, and thus, get acquainted with each pattern.