The software development ecosystem is constantly changing. New languages and frameworks sprout all the time, some gain traction and continue to grow in usage and popularity; others wither away into the nth page of Google Search results. By now, nearly 20 years after being released, both C# and .NET have established themselves as staples in the software community. In both of the big yearly software development surveys (JetBrains’ State of Developer Ecosystem, and StackOverflow’s Yearly Developer Survey), both C# and .NET have been in the top 10 of “anything good” for the last few years. With a large portion of the world’s software being written in C# and .NET, about a third of today’s software developers use this technology. So if you’re not in the community already, now’s a good time to join, and if you are, there’s always more to learn. But we also know that whatever development technology you’re using, much of your time is going to be spent on debugging.
This blog assembles a set of resources you can use to get on the bandwagon, to learn, fine-tune, and master both C# and .NET and then debug the bugs you know that you and others are going to put in your code.
Let’s start learning about C#, .NET, and debugging
Here are some great online resources you can use to start learning whatever your current level of proficiency.
A comprehensive course with 92 articles covering everything from the basics to advanced debugging.
Shawn Wildermuth is a Microsoft MVP and a prolific software professional. He has written eight books, is a highly sought-after speaker, and is currently working on a feature-length documentary on software developers. He offers many online courses around ASP.NET (and other topics) both through Pluralsight and his website, Wilder Minds. During the COVID-19 crisis, Shawn is graciously offering several of his online courses for free.
And then there are some of the popular online learning platforms:
LinkedIn Learning has many resources from full-blown courses to one-shot tutorials around .NET and C#. While there’s a monthly charge, you get the first month FREE (and you can learn a lot in a month).
And finally, this list hast to include LINQPad, a great utility that’s really helpful when you’re developing on .NET. Among, other things, you can test C# code snippets and LINQ queries without having to set up a full-blown development environment. It’s a download you that you install locally, and they have a free version that provides lots of great functionality.
And then there are blogs
Online courses are great for taking a structured approach to learning something through a clear and gradual path to achieve mastery. But even if you’re a seasoned programmer, blogs are a great way to uncover those neat tips and tricks that you don’t find in any of the courses. Here are a few blogs you should check out.
Yes, I know, this is a shameless plug. Still, our developers have accumulated vast amounts of experience working on our Production Debugger and Visual Studio Extension, and both novices and experts alike can learn something from posts in our .NET and C# Tips category. In fact, that’s where you found this post 😊.
Michael Shpilt is not only a seasoned C# and .NET veteran, but he is also a prolific writer and Ozcode’s lead developer and has just published his first book on debugging, “Practical Debugging for .NET Developers” (below). Michael’s blog has everything from basics to “why-didn’t-I-know-that” eye-openers.
DotNetCurry is much more than a blog; it’s an extensive website with numerous tutorials, articles, and magazines in the domain of .NET, C#, and neighboring technologies.
Stephen Cleary offers a wide variety of resources on his website. He’s a Microsoft MVP, and in addition to his extensive blog, he also offers videos, projects he contributes to, and various other publications. He has also written, “Concurrency in C# Cookbook,” published by O’Reilly.
Matt Warren is also a Microsoft MVP, and his blog offers some deep dive posts into topics around .NET and C#.
Bill Wagner is an industry icon in the domain of C# development. He is in the .NET Foundation advisory board and has been a Microsoft MRD and MVP for over ten years. His blogs, articles, and videos cover a wide range of topics with an emphasis on C#. He has published Effective C# offering 50 ways to improve your C# programming, and if that isn’t enough, he also published More Effective C#, which offers (don’t you know it) 50 more ways to improve your C# programming.
Curl up with a good book
If you’re a person who prefers to flip pages rather than click the mouse, here are a few good reads recommended by Ozcode’s finest.
Let’s get real – it’s time for debugging
Whether you’re a C# novice or solve C# memory leaks before breakfast, you’re going to spend much of your time debugging, so this is something you really want to get good at. Here are some resources that can help.
These are Microsoft’s own tips and tricks to using the Visual Studio 2019 debugger. Learn how to make better use of the tools and functions that are built into your Visual Studio IDE.
Michaels Coding Spot
Ozcode’s own, Michael Shpilt has written several posts about debugging in his blog. Here are some of them:
- C# Debugging in Visual Studio 2019 Tutorial
- How to Debug LINQ Queries in C#
- 7 Debugging Techniques you should know in C# .NET
- How to Create, Use, and Debug .NET application Crash Dumps in 2019
- 7 Debugging Techniques for when your .NET application Freezes (hangs)
This is part of the Complete C# Tutorial mentioned above. It provides a comprehensive, interactive guide to debugging C# and covers the following topics:
- Introduction to debugging
- Stepping through the code
- The tool windows
- Advanced breakpoints
This is the book I mentioned earlier, written by Ozcode’s own Michael Shpilt. It covers debugging in .NET from every angle possible, offering screenshots, code samples, and a set of videos that accompany the text.
Last but definitely not least, Tim Corey is a Microsoft MVP and MCP, and he is all about making software development easier. On his website, he offers a variety of courses, including an all-encompassing, “Foundation in C#,” which you can take as a 10-course bundle, or just the Debugging part separately.
That about covers it. The last thing I can say is that no matter how much you learn, no matter how many courses you take, blogs you read, or books you consume, software development is like a sport. You have to just get out and do it. So, get your hands dirty and start typing.
Ozcode Visual Studio Extension
Elevate LINQ debugging with visibility, clarity and insights into your queries.
Time travel to see how your code will execute before you step through it.
Heads-up display gives you powerful visualizations so you can instantly understand what’s happening in your code.
Data tips provide deep insights into your data letting you drill down to any level in a data object.