Some of the coolest video games and programs run on a C# codebase. It’s a wildly popular language and it’s only getting more popular as the years pass.
If you want to jump onto this bandwagon there’s never been a better time to learn, and luckily there are tons of resources out there to teach yourself. In this post I’ve curated my top picks for the best C# programming books ranging from novice material to expert advice.
There are so many incredible C# intro guides but the most in-depth and practical choice is Murach’s C#. This book teaches the language in great detail but it’s written non-technically so beginners can follow along. It’s also frequently updated so you’re guaranteed the freshest information possible.
If you’d rather start with a smaller introduction you should pick up Learn C# in One Day and Learn It Well. This book is a whole lot smaller with only 160 pages but still covers the fundamentals of C#.
This is one reliable guide but I can’t imagine relying on this book as a single learning resource. It is great for non-techies who simply don’t know where to start. However it won’t help you build complete applications from scratch.
The chapters follow a progression discussing variables, operators, arrays, lists, if/else logic and loops(among other things). You’ll learn through simple code snippets how to add these features into a traditional C# application.
But you still have to understand the logic behind each choice and when you’d need each feature. So this book is more like a raw intro to the features, not so much a deeper look at how to use the language in the real world.
Still if all you need is a dive into the C# syntax this should fit the bill.
Murach’s C# is one of those rare programming books that seems timeless regardless of the current version. It’s a pretty large book with over 900 pages and dozens of practical exercises for programmers.
The book starts off with an intro to Visual Studio and Visual C# concepts. From there you’ll learn the essentials of C# syntax and how the language is formatted. Each chapter aims to further your knowledge just a little bit, falling back on examples to make sure you understand the material.
This guide is mostly geared towards Windows software development but this is not the only angle. You can take these C# skills with you anywhere so it does feel very much like a generalist’s guide to the language.
Control structures, event handlers, data validation and unit testing are all covered in a way that should make sense to beginners.
It’s an excellent training reference and it’s something you might keep on your bookshelf for years to come.
This is one of the few books I recommend for beginners and experts alike. C# in Depth is by far the best book talking about how to design applications and why you should follow certain design principles.
It’s currently in its 3rd edition with over 600 pages of guided lessons and exercises. Some early chapters cover basic fundamentals but this book also gets into newer features like generics, lambda expressions, dynamic typing and the newer async/await in C# 5+.
The author Jon Skeet is a sr engineer at Google so it’s no surprise that he knows his stuff. But the surprising part is how well this entire book is written and how easily it flows from one chapter to the next.
Beginners will not be able to complete the whole book right away so it may serve as a reference guide at first. But even if you’ve been writing C# for years this book has plenty to teach.
A must-own title for any serious programmer using C# in the modern world.
The writing style for this book is fantastic and very simple to consume. It’s excellent for beginners who don’t know anything about programming languages and want to start by learning C#.
C# 6 for Programmers is one of the newer books in this list although it is off by one version(current release is v7.x).
However it’s the teaching style that really makes this stand out. You’ll learn how to build real-world projects with tons of code samples explaining individual techniques along the way. Throughout the book you’ll work through 170+ different applications to help you learn C# from the ground-up.
Early chapters start by explaining classes and objects followed by LINQ and the newer techniques surrounding asynchronous programming. C# 6 does come with a few of these newer tricks but it’s also built on the same foundations as all previous versions.
That’s why beginners can work through these lessons for years and still find this book relevant. It’s great for self-teaching but can also work well as supplemental material for college students or programmers jumping into C# from another language.
There’s always something new on the horizon and C#’s newest version includes a bunch of handy techniques for software developers. C# 6.0 and the .NET 4.6 Framework looks at C# attached to the .NET framework and how you can use these to create incredible webapps.
Most of the book talks about ASP.NET for web development but you’ll also learn about software techniques and the newer WPF desktop development environment.
You’ll learn how to use the Visual Studio editor along with custom WebForms, the WebAPI, and the Entity Framework.
This is very much a guide for intermediate C# developers who already know a good amount about the language. If you’re a complete beginner you should learn the fundamentals first before diving into .NET and all these related frameworks.
For a book on the cutting edge of the newest features you’ll want C# 7.0 in a Nutshell.
This explains everything about the programming language, the frameworks, the .NET CLR and the concepts surrounding C# development. Understanding the language and basic syntax is really just the first step.
Following the exercises in this book you’ll have no problem crafting detailed C# applications from scratch using best practices and common design patterns. The first couple chapters explain a deep history of C# and what each version added into the language.
Then you’ll learn the raw fundamentals like numeric types, arrays, functions, and operators. But by page 100 you’ll be well into the advanced topics of C# programming like dynamic binding and working with collections.
I do admit this book moves fast so it may be off-putting to an absolute beginner. It straddles the line between a beginner guide and an intermediate-to-advanced learning resource.
Either way it’s an excellent reference to keep at your desk or on your bookshelf to work through the lessons whenever you have some free time.
Working with sockets in C# is a staple for most programmers. And TCP/IP Sockets in C# is the best book you can get on this subject.
It’s definitely a smaller guide with only 175 pages but the lessons are very practical. You’ll learn how TCP/IP works and how you can connect into different ports for FTP or SSH.
The author teaches you about the Sockets API which is a standard for writing any networking in C#. But later chapters get a bit more complex on multiplexing, multithreading and multicasting.
Every chapter follows a tutorial style where you’ll learn by writing the code and studying live examples. These examples force you to see how networking is applied with C# APIs and how your code might look in a real project.
Since this book covers a niche subject it may not be valuable to everyone. But if you’re hoping to learn more about TCP/IP with C# definitely try to nab a copy.
This guide is fully updated to the latest C# 7.0 along with the newest version of Visual Studio 2017.
The C# Player’s Guide teaches C# from the very beginning for novices and semi-experienced programmers. The early chapters cover a very simple walkthrough of the language and the Visual Studio program. You’ll learn the basics of procedural programming and simple operators within a few demo applications.
As you get into OOP techniques you’ll learn about polymorphism and generics with C#. Both of these subjects are slightly different in C# 7 so it’s good to know this guide is up to date and ready to go.
Compiling errors and simple bugs are also commonplace in C# development. This book explains these topics with a very simple teaching style that’ll reach everyone.
Anyone trying to teach themselves C# should check out this book. It’s one of the newest in this list and it’s fully updated to ensure you’re learning best practices right from the get-go.
It seems like every professional coder is talking about agile development and how it’s changing software engineering. Adaptive Code via C# is one handy resource on this topic covering how agile development works and why you should follow this workflow.
The book is pretty large with 450 pages of exercises and explanations. You’ll start by learning SCRUM and how this applies to C# development.
Once you dig a bit deeper you’ll get into the real meat of the subject with project organization in Visual Studio. This includes topics on dependencies and layering along with using external APIs in your code.
It’s pretty simple to learn C# but to master the process is a whole different ball game. Thankfully this book explains all the core features with an agile perspective to help you make changes fast and test often.
The .NET framework is absolutely massive and it’s one of the most popular solutions for web applications. On the backend you can do a lot using C# so it’s the perfect choice for web developers running on an MS environment.
C# 7 and .NET Core is currently in its 2nd edition with a major update including all the new C# features. This book assumes you already understand some of the C# fundamentals and want to move into .NET programming for the web.
The .NET core and the Entity Framework are two big topics in this book. You’ll learn all the different methods and classes you can use for websites and why these are so important for great applications.
Another subject covered in great detail is cross-app development with the Universal Windows Platform and XAML. I can’t assume that every developer would want to use this because it is fairly detailed, however it’s still good to know it’s covered in this book.
If you’re desperate for an up-to-date guide on C# with the .NET framework then you’ll be very pleased with this title. Just make sure you already feel comfortable with some basic C# or these lessons will go right over your head.
Within the .NET framework there’s a virtual machine called the Common Language Runtime. This handles the execution of .NET programs and converts compiled code into machine instructions.
The book CLR via C# teaches you everything about the CLR and how this runtime operates. You’ll learn how to build practical apps that function well and don’t cause bottlenecks on the server.
But you can also setup local testing environments to run your own performance tests or test multithreading, all of which is covered in this book. The C# CLR is not a huge topic but it is worth diving into for serious .NET programmers.
And surprisingly this book goes very deep totaling 900 pages of exercises, best practices, and lessons geared around the CLR for C# work.
An excellent guide if you’re up for the challenge and willing to put in a good amount of reading.
It’s crucial to build unit tests for any major piece of software. These tests ensure the quality of your code and provide a benchmark for areas that may need improvement.
The Art of Unit Testing by Roy Osherove is the complete guide to this subject using C# code as the starting point. You should already be very familiar with the language before picking up this book.
Once you get started you’ll learn what a unit test is and how you can go about creating one. There are tons of frameworks you can use like NUnit for .NET and you’ll find a bunch of examples throughout this book.
Each exercise is very practical so if you put in the work you will learn what it means to create a “good” unit test. The author touches upon many core techniques for testing and how professional developers deal with this.
All-in-all this is a fantastic book for serious C# programmers and you’ll come out the other side with far better code than you could ever dream of.
I’d argue this is one of those books that you can take it or leave it, although it is definitely worth reading if you’re into agile development.
Agile Principles, Patterns, and Practices in C# looks into the best practices of agile development from a C# workflow. This does include the .NET framework and Visual Studio but also considers how to plan applications from the very beginning.
There are some chapters on unit testing and test-driven development so if you’re curious to learn unit testing this book is also fantastic.
My only complaint is how most of the book feels very technical until the later chapters where you apply these ideas into real projects.
Because of this I can only recommend the book to semi-skilled C# programmers who already know what they’re doing but want to go further with an agile dev process.
Every developer wants to write better code and improve their process. It’s not a simple thing to do on your own because often times you’ll need guidance or critiques on your code.
With the book Effective C# you can learn what exactly makes quality code. Starting from the early planning stages all the way to more detailed class/object management this book offers 50 different techniques to improve your code quality.
Each chapter splits into a different resource covering stuff on .NET, working with generics, and handling exceptions in your code.
I can’t say these tips will bring you up to an expert-level programmer. But these tips are sure to leave a mark on your workflow.
Just note this is also a much more advanced book so you should really have the fundamentals down pat before grabbing this one.
As a follow-up to the previous book we have More Effective C# written by the same author Bill Wagner.
In its 2nd edition the book is fully updated for C# 7 and includes a ton of new techniques based on updated features. It also comes with 50 more techniques which lean towards an intermediate-to-advanced audience of programmers.
You’ll find advice on lambda expressions, LINQ queries, composable interfaces, and a few handy techniques on multithreading for C#. Performance is always a concern along with security so both of these topics are addressed along the way.
This book pairs well with the original Effective C# and all of the techniques are unique enough to justify getting both books.
However this one is even more advanced so this two-book set is definitely meant for experienced programmers.
You can make some bad ass games with C# and it’s one of the most popular programming languages for game developers.
But you don’t just write a few lines of code to make a PS4 game. You need a bunch of frameworks and typically a game engine like Unity. If you’re trying to learn C# for game design I’d recommend Unity Games by Tutorials for its clarity and level of detail.
Working through this massive 630-page guide you’ll create four unique games from scratch. Through these projects you’ll learn about 2D sidescrollers, 3D graphics, first-person shooters, and how to create a strategy game like tower defense.
These game projects involve a lot of C# principles like pre-defined game objects, custom animation, audio, pathfinding, and a whole lot more.
Thankfully this book covers everything you’ll need with exquisite detail and it does not assume any prior gaming development experience.
However you should really know your way around C# because this is not a guide for newbies. If you wanna get into game development try working through a beginner’s book first and come to this as your second resource.
The most recently up-to-date cookbook on C# development is the C# 6.0 Cookbook. This is technically one version behind but the code snippets apply to pretty much all versions of C#.
It’s also a massive resource totaling 700 pages with well over 150+ individual recipes you can copy and reuse in your code. These recipes offer solutions to fairly common problems and more complex issues you’ll face in C#.
Some topics include algorithm development, regular expressions, networking, concurrency, exception handling and working with the local filesystem(among many others).
This is one of the best cookbooks out of all the programming cookbooks. I highly recommend grabbing a copy or waiting for the C# 7 update.
It’s worth having this on your desk for complex tasks not just for the code solutions, but also for the explanations behind each block of code.
It’s not an easy task to dive into parallel programming but you can learn a lot through practice and repetition. The Concurrency in C# Cookbook takes you into the realm of concurrency and parallel development along with asynchronous programming concepts.
This is a much smaller cookbook with only 200 pages, although it’s still packed with 75 recipes to peruse and copy.
If you’ve never worked with concurrency in the past then this cookbook might be just what the doctor ordered. It’ll take you through some basic solutions to get you familiar with concurrent programming, then it moves into more detailed territory with solutions for complex tasks.
I recommend this more for developers who look at C# as a career path. If you do this for a hobby you may eventually get into concurrent programming but the technical solutions in this book may never be valuable for personal work.
Still an excellent resource for mastering concurrency and one hell of a guide for serious C# developers.
If you’re still on the fence about where to start I recommend a copy of Murach’s C# followed by the incredible C# in Depth. Between both of these titles you should have more than enough material to move from a complete novice to an adept programmer.
But as your skills improve you’ll likely want to learn more about the C# internals, or the .NET framework, or maybe try your hand at game programming.
Regardless of why you’re learning C# there’s plenty of resources out there to help and these books are some of the best you’ll find.