Jak zepsujesz projekt bez wzorców to się nauczysz
Przykład zepsucia -> niska rozszerzalność, trudne testowanie
Przykład rozwiązania problemu -> wzorzec strategia / wstrzykiwanie zależności -> łatwa podmiana i łatwe testowanie, jak zrobisz to dobrze
Przykład zepsucia -> trudno znaleźć to czego szukasz
przykład rozwiązania problemu -> jakaś architektura, może czas zainteresować się MVC -> a jak to za mało, może jakieś elementy z DDD albo CQRS (pełna implementacja nie zawsze jest opłacalna, ale samo zainspirowanie się może już sporo dać)
Co prawda da się tego nauczyć bez psucia projektów, ale dużo lepiej będziesz rozumiał "dlaczego tak a nie inaczej", jeśli będziesz wiedział co może się stać, jeśli zrobisz inaczej, a najbardziej będziesz tego świadomy, jak przeżyjesz sytuacje gdzie musiałeś walczyć z trudnym kodem
Przykładowo kod będzie trudny do przetestowania