Some solid points. To give an example of a language with good errors, look at Rust. The compiler basically acts as if you were pair programming with someone.
I also agree that the growing amount of ways to do the same thing in C# was pretty daunting to me when learning the language. It felt like every tutorial I read, and every person I asked, had their own way of doing something, which made it difficult for me to figure out which way was the most idiomatic/best.
The documentation on Microsofts website is very unorganized as well. It’s hard to navigate, doesn’t follow any real chronological order all the way through, and a lot of topics are repeated several times in various sections.
VS Express used to have “basic” and “expert” settings, while I didn’t find it that much helpful, it would be nice if Microsoft take the idea seriously. Toggling the basic mode should enable a more rigorous analysis that might otherwise takes too much CPU on large projects, new installation without linking to an MS account (or an MS account that’s never linked to VS) offers optional interactive tutorial, user can import a configuration set from their professor or a website that will warn about common mistakes when learning a new feature & suggests a fix or links to corresponding tutorial.
Might even copy JetBrains IDEA Edu, where the IDE itself, with the help of a dedicated extension, become a learning tool that supports community created content.
C# devs
null reference exceptions