Nowadays all information a developer needs to know is available online for free. Blogposts and videos authored by experts, giant questions and answers websites, a quick search and you get the answer. Maybe I am old-school, but I still believe there is room for good programming books. Reading a book takes several days and it is the right pace to let ourselves learnt and progress. Moreover book’ authors are recognized experts, carefully selected by professional publishers and immensely motivated to write hundreds of pages to thoroughly cover a programming topic.
Some of the books below were like milestones in my career: they definitely changed the way I code daily. Here are the .NET and programming books that I would advise to progress as a developer. There are excellent books out there to learn specific technologies like ASP.NET Core, Entity Framework or even Blazor. However this list focuses on the fundamentals: the .NET platform, the language C# and programming skills.
Disclaimer: I don’t have any interest nor affiliation with any of the mentioned books, authors or publishers
C# 8.0 in a NutshellJoseph Albahari is a well-known expert in the .NET community, both for writing and maintaining this book for more than 15 years and also for publishing the essential tool LinqPAD. With more than 1.000 pages this book is THE C# reference, suitable for everyone. |
|
C# in DepthJon Skeet is another recognized expert in the .NET community. With more than 35K questions answered he is one of the top stackoverflow contributor. His book about C# is extremely detailed and well-written. Unlike the book above, this one targets seasoned C# developers that want to acquire a high expertise. |
|
CLR via C#Knowing what the CLR is doing with your code at runtime really improves the way you program. I had the chance to read the second edition of this book in 2006 and I still rely daily on knowledge learnt. The book might be a bit updated since the last edition available was published in 2012, years before the .NET Core revolution that nowadays lets Microsoft tweaks the CLR without the ascendant compatibility constraint. However I am pretty sure this book will teach you some important facts about what is happening beneath your feet at runtime. |
|
Pro .NET Memory Management: For Better Code, Performance, and ScalabilityIf performance is your concern, this book is a must read. Having a good idea of how the Garbage Collector works is not enough, you need to be guided by someone who has practical experience like Konrad Kokosa. Many sections are dedicated to troubleshooting scenarios and they are quite helpful. |
|
Agile Principles, Patterns, and Practices in C#If you read this blog regularly you know how design patterns and SOLID principles are important to me. I have a passion for improving large-scale software quality, structure and maintainability by making the most of .NET and OOP concepts. With this book, you can learn these principles directly from their inventor Uncle Bob. |
|
Dependency Injection Principles, Practices, and PatternsDependency Injection is nowadays a popular practice and one might question why a book is needed. Ok it covers the most popular .NET DI frameworks but its real value is not there. What makes this book precious is its chapters about principles, patterns and anti-patterns related to OOP and loosely-coupled code. |
|
The Pragmatic Programmer: Your Journey To Mastery (2nd Edition)As the name suggests we, programmers, have to be pragmatic. Our most precious asset is our time and the act of writing software tends to take most of it. This book is not only about saving time with the right ways to approach programming, it also contains tons of powerful advices. Probably my all time favorite programming book and one of the rare programming book that I enjoy re-reading. |
|
Design Patterns: Elements of Reusable Object-Oriented SoftwareOk this book was written in 1994, years before C# and .NET was a project. Ok its examples are written with old-fashioned C++ code and since then many Design Patterns books have been written. But to me it is a must-read for all developers programming with an Object-Oriented language, C# included. The Design Patterns classification and terminology originally defined in this masterpiece is timeless and is still used daily by all (real) professional developers. One caveat is about the Singleton pattern that prevents testing. This is clearly an anti-pattern, at least the way it is presented originally in this book (I wrote about it here). Unfortunately juniors often over-use Singleton because it is the simplest pattern and they tend to apply it everywhere so beware. |
|
(Extra) Practical .NET 2 and C#2During the early days of .NET in 2002 to 2005 I had the chance to write two editions of a book that covered all aspects of C# and .NET at that time. Some information are obviously outdated, but the book is free and you can download it here. It represents more than 1.000 pages, 647 code samples and a full year of work. Originally in French it was the .NET best-seller (15.000+ copies sold). I remember the long talk I had with the O’Reilly France manager in September 2002 to convince him that .NET was the future. Hopefully, after that, I didn’t propose a book about Silverlight 🙂 |
That’s an excellent list, but note that C# 9.0 in a Nutshell came out last week:
https://www.amazon.com/C-9-0-Nutshell-Definitive-Reference/dp/1098100964/ref=sr_1_1?dchild=1&keywords=c%23+nutshell&qid=1617266643&sr=8-1
C# 9 in a nutshell is out now.