Java by Comparison leads you step by step to new insights on good coding practice. Instructive examples compare the do's and dont's and make it easy for beginners to get the key points.
This is one of the most helpful software engineering books I've ever read. It is most useful for people who have some real world experience in .NET development.
This book discusses how to decompose complex software systems into modules that can be implemented relatively independently. The discussion first begins with fundamental problem in software design, managing complexity.
There is a minimum expectation that, if you are a software developer, irrespective of programming language or discipline that you have actually read this book, at least more than twice! This book should be compulsory reading for anyone, working with code in any capacity.
The book is a perfect guide into learning and understanding the topic, irrespective if you're a C# developer or not. The code samples may be in C#, but the reality is the concepts and implementation are the same in any language.