Who this book is for
This book is for anyone who wants to become a better software developer. I wish I could get away with just saying that, but I probably can’t. Let me add a few thoughts on who will benefit from this book.
The easy answer is what I would call mid-level developers. These are developers who have a few years of experience with C# and are very comfortable with the basic principles of object-oriented programming. Ideally, you’ve seen a few UML class diagrams.
Another beneficiary of this book is a student who is learning C#. If you’re even remotely comfortable with basic OOP concepts, such as inheritance and composition, and you know your way around an integrated development environment (IDE), I want you to read this book. Sure, the mid-level developer might have an easier time, but learning patterns and SOLID principles will give you a strong foundation. You might avoid picking up some bad habits, or correct those you’ve already learned.
I also encourage you to read this book if you’re a recent graduate of either a university or a code boot camp. If you haven’t done a lot of C# work, but you’ve worked in other languages such as Java, C++, Python, or JavaScript, you are invited to read this book as well. I’ve tried to give you a bit of a boost by including a lengthy primer on C# and object-oriented programming concepts in Appendix 1 of this book.
There is one group I want to reach most of all.
I especially want to encourage self-taught developers like myself. Those in this camp tend to have learned only what is absolutely necessary as a means of surviving your current sprint. If your teachers are YouTube and the blogosphere, chances are you will readily recognize the anti-patterns found in Chapter 1, because by now, you’ve probably committed every sin relevant to software engineering. I only know this because I have too. As such, I know you stand to benefit the most from reading this book.
As I said, this book is for anyone who wants to become a better software developer. I guess I should have just stuck with that.