4 ms·
I'd like to see some data around the central claim. Is C# really that hard for beginners? I watch a lot of beginners on twitch (for several years now) start
by keithnz 6y ago
I'd like to see some data around the central claim. Is C# really that hard for beginners? I watch a lot of beginners on twitch (for several years now) start with C# and almost zero idea about programming. They all seem do pretty well, whether they are learning unity, winforms, web dev. They don't even stop and wonder any of the issues discussed in the article, they simply make the project type they want in visual studio and start learning the guts of programming. The issues discussed seem more of a problem with evolving your software over time, especially the framework -> core/.net 5+ transition. I'm not sure that really impacts beginners other than a few caught in the storm who needed to upgrade their software to a different version (given most would just stick to whatever they started with). The evolution of the C# language itself has caused fractures in recommendations on how you program in C# but then stabilize pretty quick. We've been through it quite a few times in the C# world, and if you are learning in a transition period, yeah, some tutorials are going to say one thing, and others another thing, but most beginners seem pretty ok with the idea that there is an "old" way and a "new" way. But like I said, I'd like to see actual data on the beginner learning experience rather than anecdotal accounts as there's always going to be people who find it hard and those who find it easy.
- wvenable 6y agoI don't think C# is hard for beginners. I monitor the Git repository of our Infrastructure Team and they develop small tools in C#.NET really easily. None of them would claim to be programmers or have any formal training as such. The tools they make are simple but sophisticated in what they accomplish and interact with. The article makes a good point but 90% of is irrelevant to a beginner. Open Visual Studio, pick your project type, and start coding.
- setr 6y agoThe biggest issue I had picking up C# over the last year (and still have) is figuring out the MS ecosystem. There’s three different frameworks for everything, all of which are either incomplete or to be deprecated. Windows-only desktop app is the latest to confound me, let alone cross platform. The .NET variants confused the hell out of me for the longest time until I just sat on Wikipedia and read the whole damn history, because every variant and version seems to be in play simultaneously
- wvenable 6y agoThe thing about .NET is that while it is confusing at the moment, and the naming isn't great, it's not a bunch of truly different technology. Microsoft is replacing their legacy Windows-only framework with a new cross platform framework with the end-goal being nearly fully backwards compatible. There is slightly more to it than that but that's the basic gist of it. Heck, they've even brought over Winforms -- that technology is over 19 years old! So I honestly think using the term deprecated is too strong. They've done the right thing and continued to maintain multiple branches .NET until the newest version is fully finished and can reasonably replace the old one. As I said in another comment, the framework you choose doesn't even matter that much. You're unlikely to even a notice a difference and changing from one to another is often as easily as selecting it from a drop-down (or editing a file) and recompiling.
- setr 6y agoThe main issue I've had is that everything is supported, but it's very difficult to find out what the current "best practice" is. E.g. I can use winforms (because backwards compatibility with MS reigns supreme), but it's replaced by WPF and UWP (which also have various limitations, like UWP is windows 10 only), which themselves are replaced by MAUI as the modern system (which isn't ready). So the framework to pick for a new application is... I don't know. Ideally the answer would be UWP with some kind of automated fallback for older windows, but its not. [0] This windows UI confusion (3 different gui systems in play, when iterating over system settings) seems like a direct result of this framework confusion [0] Apparently Win7 is still like 30% of the market, so it's hardly ignorable. https://www.digitaltrends.com/computing/windows-7-end-of-support-still-popular/ https://www.digitaltrends.com/computing/windows-7-end-of-sup...
- wvenable 6y ago> So the framework to pick for a new application is... I don't know. You just described all UI the frameworks, what replaces what, and what the limitations are! Microsoft also lays that out here: https://docs.microsoft.com/en-us/windows/apps/desktop/choose-your-platform https://docs.microsoft.com/en-us/windows/apps/desktop/choose... I've answered this question for myself: WPF. It's neither bleeding edge nor is it obsolete. You can complain about the current state of things but I don't think there's any argument that Microsoft is doing the wrong thing here. They're iterating on their platform, making improvements, and supporting existing technology.
- BrissyCoder 6y ago> Is C# really that hard for beginners?. No data but from a lot of anecdotal experience I don't believe so - quite3e opposite. I've never seen beginners (interns generally) or non-C# programmers (adept at other languages) come up to speed and start meaningfully contributing to projects on any other language other than C#. With other languages (I've worked with) this just isn't true. I've never seen anyone but the most prodigious pick up C++, Java, JavaScript as quickly in professional contexts. IMO C# is such an easy on-boarding languages that when hiring into C# teams it's not even a factor considering a candidates particular language experience. As much as this is due to the language and well-organized libraries I think the tooling is just as much to thank. The dev experience in VS with a copy of ReSharper installed is unparalleled in software engineering.
- gbrown 6y agoIt’s been a long time, but having been a student working on a .NET project with no C# background, I’d say that for me it had less to do with the language than the discoverability of language features through Visual Studio.
- kaba0 6y agoFor beginners, Java is pretty much C# with uppercase types, so I have a hard time believing one is easier than the other.
- andix 6y ago> The dev experience in VS with a copy of ReSharper installed is unparalleled in software engineering. It's pretty great until you tried out Rider :D, okay it's more or less the same as Resharper. I'm not a Java developer, but i suppose IntelliJ will give you quite a similar development experience as Resharper/Rider?
- _pmf_ 6y ago: They don't even stop and wonder any of the issues discussed in the article, they simply make the project type they want in visual studio and start learning the guts of programming. As someone who did exactly this 25 years ago with VB, I really feel bad for new developers who don't have this nice experience and instead need to wrangle with half broken tools.
- TecoAndJix 6y agoMy undergrad Info Systems degree switched from teaching Programming I and II in C++ and Java to C# and Java recently. I think the reason was market relevance? Either way [coming from a very hacky python background] it taught me the core concepts well. I continue to enjoy C# after graduating but have not touched Java since
- mbeattie 6y agoC# itself isn't hard, but the ecosystem is. I have been writing code for years and wanted to take a look at dotnet not that long ago. There are no tutorials on how to make something that is not also a tutorial on visual studio. I want to learn how to make a webapp or whatever in C#.NET, learn the paradigms, classes, and functions that I need to do that. I'll go look into Visual Studio after I understand the basics to make things easier, but I shouldn't need that as the price of admission. The author addresses this with a comment about goland. But the point is that any other language, the beginner material is about "here's a main.go text file that starts a web server..." and not "click some buttons in one specific IDE and magic happens". I can use emacs, vi, or VScode to write C, go, rust, python, javascript, etc... just about everything. But not C#.
- Hawxy 6y agoJust a note that this isn't true anymore. All the official C# tutorials default to VSCode + dotnet CLI. The Web framework tutorials also let you switch instructions depending on what editor you're using.
- gavinray 6y agoYou don't need Visual Studio for C#, I write all C# and F# in VS Code with official MS extension, you can use the dotnet CLI to do everything (install packages, build tasks, etc, just like cargo/npm/etc). The experience is surprisingly good. If you want to create and build + run a .NET web API, you just do: "dotnet new webapi" >cd into the directory "dotnet run"