E Armitage wrote:Design principles are the desirable goals that one aims to achieve. Design patterns are tools one can use to realize those goals.
It's therefore better to learn design principles first because then you can easily understand what (and why) a pattern is trying to achieve.
You're spot on!
Design Patterns are very popular and have complete catalogues and the resources/references for them can easily be found.
But Design Principles have been scattered and disorganized, and became confusing for many. My book "Software Design Principles" is a compilation of these principles and untangle all the confusions.