Read the refactoring first (famous for Martin Fowler).
By studying refactoring, you can learn how to write code that is easy to modify, read, and simplify.
I would suggest not studying design patterns until you understand refactoring first. With refactoring, you can understand the topics of clean and readable code. Once you understand refactoring, read on design patterns. Design patterns are very useful when you need to write more complex projects.
source share