I’ve had quite a few students of mine contacting me and asking:
Mosh, apart from your video courses, what books should I read to become a better developer?
If you want to become a kick-ass C# developer, you need to master the fundamentals. By fundamentals, I mean concepts that are always applicable. ASP.NET 5 is NOT one of them! Neither are Entity Framework, Xamarin, Azure, etc.
Frameworks and tools come and go. Becoming proficient in a framework may give you some career opportunities in the short term, but if you want to be ahead of the game, you need to understand the core principles. When you understand the fundamentals well, you can quickly learn a new framework or a new programming language. In fact, at that level, learning a new language is just a matter of getting used to a new syntax. Most of the concepts sound familiar to you.
Here are my 3 absolute favorite books. I’ve read each of these twice! Why only 3 books? I could list 30 books here, and chances are you wouldn’t read any of them because there would be too many too chose from! Less is more.
I handpicked the top 3 that I loved the most amongst all the other books I’ve read. And none of these books teach you the C# programming language. I’m assuming you’ve read one or more books on the topic or watched my courses. So, these books are “supplementary” materials to make you a better developer.
Agile Principles, Patterns and Practices (Robert C Martin)
Robert C Martin (Uncle Bob) is my guru! I’ve learned a lot from his books and videos. I’ve read most of his books twice and watched most of his videos. Even though the title has the word “agile”, the books is not much about agile. It’s mostly about SOLID principles of object-orientation and design patterns. The book is simple and easy to read and examples make sense.
Applying UML and Patterns (Craig Larman)
Shall I say the best or the only OOP book worth reading? There are many books on the topic but most of them are boring to death. Craig teaches you OOP in a real-world scenario. He walks you through the requirements of two applications and uses iterative development to build them. The book is around 900 pages, but I promise it’s worth reading. Prior to reading this book, I had read many books about OOP and used it for years. When I read this book, I realized I knew nothing about OOP!
Art of Unit Testing (Roy Osherove)
Great book if you want to learn all about automated testing and test-driven development. Roy has been very well respected in the area and he has been running workshops around the world teaching automated testing to C# developers. The book is just over 200 pages and you can easily read it.
What are your favorite C# books? Please drop a comment and share!