Hey Sathya!
This book is intended to give people with a lighter background in software an introduction to concepts they may not have been exposed to yet. This includes best practices like separation of concerns, abstraction, and loose coupling with some practical examples and
philosophy about when and how to leverage them.
I don't know that all of this is pulled together in one space anywhere I've seen, so although it may not be as deep a resource on any one particular topic, it's a great way to see what kinds of topics one should be thinking about as a developer and how to start applying them in daily work.
Hope that helps!