Hi,
I am a developer having 4 years of .Net coding experience, And never cared much about design patterns in my carreer. Recently i have been called for an interview with one of the biggies in the IT, have done 5 rounds (problem solving, pair prograaming , logical reasoning, 2 rounds of tech interview) of interview and didnt offer a job.
The feedback i got from them is am not good at design principles though they are satisfied with my technical & logical reasoning skills. This one made me think that knowing design patterns are the only way to solve the problems?
Though i never used much of a design patterns in my coding, i always tried to implelement the basic principles of OOPS
- Open/closed principle (OCP)
- Dependency inversion (DI)
- Interface seggregation
- Liskov substituion principle (LSP)
I could use these principles to design a system thats loosely coupled and open for enhancements and easy to maintain. Eventtually these are the core constructs of all the design patterns.
But my problem is to find a right pattern for the right problem. I know this knowledge will not come by just reading all the books published in design patterns and practises. this knowledge comes with the experience of building different systems.
Is there any use cases available for the pattern-problem matching.. And your suggestion on learning design principles?
Cheers