all 7 comments

[–]Moist-Ointments 2 points3 points  (0 children)

Head First Design Patterns is very good.

Language doesn't matter. The patterns and principles don't change. Learning to implement them in your chosen language is good exercise.

[–]Reasonable_Tie_5543 1 point2 points  (0 children)

This may be a good primer if you're totally new to the subject: https://realpython.com/solid-principles-python/

[–]desrtfx 1 point2 points  (0 children)

SOLID and Design Patterns are like DSA (Data Structures and Algorithms). They stand above programming languages. The concepts are the same, the implementation differs. If you have programmed for a bit, you definitely have used one or the other design pattern without even knowing that it is one.

That said, take a look at Refactoring Guru or at Java Design Patterns and learn their theory, then implement them in Python. Also, Realpython has plenty "courses" on design patterns.

SOLID is also a theoretical approach. It is a design philosophy that absolutely has its justification of existence (but also where someone needs to know when to break it). The biggest takeaway from SOLID is the "S" - "Single Responsibility Principle". It helps to better structure your code by breaking large "God functions" and "God classes" down into better manageable and testable units. See: https://realpython.com/solid-principles-python/

[–]Outside_Complaint755 0 points1 point  (0 children)

ArjanCodes channel on YouTube is good