Why Students Are Avoiding Learning C#
There comes a point in every computer science students’ career when they stop asking "What should I learn first?" and start asking "What should I learn next?". The answer to the former is usually Python (which is fine!). But the answer to the latter will determine what kind of career they choose. Most students base their decision on forum threads rather than job listings. C# is the most commonly avoided language at this point, but usually due to a lack of understanding of what C# really is.
People will tell you that C# is a legacy language due to it being Microsoft’s language and them losing the mobile war. Whilst this was true in 2015, none of this is true in 2026! C# is now cross-platform (Linux/macOS), works in Docker containers, and is used in the most popular game engine in the world. It also powers the backend of some of the biggest web applications, and an increasing amount of cloud native services. It is also one of the best planned general purpose languages out there.
This guide will help students and self taught developers understand what C# really is today, what you can build with it, and if it is worth learning.
What C# Really Is Today
C# is a statically-typed object oriented multi-paradigm language created by Anders Hejlsberg and his team at Microsoft. It was first released in 2000, along with the .NET Framework. The language was standardised in 2002 by ECMA, and 2003 by ISO/IEC. This is important because C# is NOT a proprietary language that Microsoft can modify however they like. The language has a well-defined specification, and the compiler (Roslyn) is open source.
You should be looking at C# 14, released in November 2025 as part of .NET 10. This is a Long Term Support release, meaning it will be supported until November 2028. .NET 11 is currently in Preview for 2026. The platform that C# is running on is not the Windows-only .NET Framework anymore. Modern .NET is cross platform, open source, and runs on Linux/macOS/Windows, and in containers.
This is arguably the biggest misconception. The modern .NET runtime will run your C# code on a Linux server just as well as on Windows. ASP.NET Core web applications are deployed using Docker and Kubernetes. Unity games are compiled to Android/iOS/Windows/macOS/consoles. Whilst the language and platform are related, the platform is definitely not Windows only anymore. It was changed in 2016.
Why C# Has A Bad Reputation
Visual Studio
In the late 90s, Microsoft packaged all their developer tools into Visual Studio. This included Visual C++ and Visual Basic. Visual Basic became extremely popular for line of business applications, but it wasn’t very object orientated. When .NET and C# were created, Microsoft were clearly trying to create a language that combined the structure of C++ with the ease of use of Visual Basic. This was to directly compete with Java.
Java Rivalry
Because C# uses a C-style syntax (semicolons, curly brackets, case-sensitive), it was competing directly with Java. This influenced the creation of C# as it included features like garbage collection, a unified typing system, and eventually generics, LINQ, and async/await. Whilst it was a rivalry in the past, the two languages now have similar capabilities. Usually, you’ll choose a language based on the platform you are using, and the codebase you have.
Losing The Mobile War
Microsoft tried to compete with Android using Windows CE, Windows Phone 7/8, and acquiring Nokia in 2013. All of these failed, and Windows 10 Mobile reached end of support in December 2019.Whilst Microsoft had lost the mobile war, they decided to make C# and .NET run everywhere. This is why C# is still growing in 2026. They started with .NET Core in 2016, and now have the unified .NET 5+ releases.
What C# Is Used For Today
A lot of the information in the original article is still accurate, although there have been a few changes.
Desktop Applications
WPF and WinForms are still used for Point of Sale, School Management, Accounting, and Enterprise applications. Whilst not exciting projects, there are plenty of opportunities, with good pay. Windows Presentation Foundation still receives updates, and there is a mature third party ecosystem (DevExpress, Telerik, Syncfusion).
Web Applications
ASP.NET Core is a competitive web framework. It runs on Linux, and can be deployed to Docker/Kubernetes. It is regularly one of the fastest web frameworks in independent benchmarks. With Blazor, you can write your frontend code using C#. Entity Framework Core deals with data, and SignalR for real time functionality. If you want to use one language throughout your application, ASP.NET Core with Blazor makes sense.
Mobile
Xamarin is now legacy. .NET MAUI (Multi-platform App UI) is the new solution. It was released with .NET 7, and matured with .NET 8, 9, and 10. You can create apps for Android, iOS, macOS, and Windows using one codebase. Although it isn’t as popular as Flutter or React Native, it is a legitimate solution. Especially for teams with a .NET backend.
Games
This is probably C#’s biggest cultural win. Unity (the most widely used game engine in the world) exclusively uses C#. The old JavaScript and Boo support was removed years ago. Every script, gameplay system, and editor extension is written in C#. If you want to create games, you have no choice but to use C#. Godot now officially has C# support, and Microsoft’s Xbox/Game Pass/Azure PlayFab all run on C# tooling.
ERP and Enterprise
Microsoft Dynamics 365 is built using C#/ .NET. There is a mature customisation ecosystem. There is less competition in this area than web development. If you know how to customise Dynamics, SAP, or create bespoke enterprise tooling, you can charge a premium rate. This is one of the least competitive high value areas for freelancers.
Cloud
Azure runs on C#. There are first class Azure SDKs for C#. However, .NET applications can be deployed to AWS, Google Cloud, and any Kubernetes Cluster. So it’s not just for Azure.
IoT
The old article mentions Windows 10 IoT Core, which reached end of support in January 2025. The current options are .NET IoT libraries (System.Device.Gpio, Iot.Device.Bindings) for Raspberry Pi and similar devices. There is also nanoFramework for microcontrollers, and Meadow for commercial embedded devices. C# isn’t the main language for IoT (it’s C and MicroPython), but it is a valid option for teams using .NET.
AI
ML.NET is Microsoft’s open source Machine Learning framework for .NET. It was first released in 2018, and is a mature solution. It can be used for Classifications, Regression, Clustering, Recommendation, Anomaly Detection and Image Classification. It can also be used with ONNX Models and Azure AI. Whilst you won’t be training models in C#, you will be consuming models in C#, which is a real and growing niche.
Why C# Is Worth Learning
A great language. LINQ (Language Integrated Query) allows you to query collections, databases, and XML all using the same syntax. It is one of the most elegant features in any mainstream language. async/await was added in C# 5 (2012), years before most languages adopted it. It still has one of the cleanest implementations. Pattern Matching, Records, Nullability, and Top Level Statements have brought modern C# to a much more expressive language whilst maintaining its strong typing.
Excellent tooling. Visual Studio and Visual Studio Code with the C# Dev Kit allow you to debug, refactor, IntelliSense and test your code. Many developers consider it the best tooling available. The compiler is quick, errors are very helpful, and the ecosystem (NuGet) is mature.
Fast performance. .NET is fast and regularly one of the fastest performing in the TechEmpower benchmarks. Native AOT (from .NET 7) allows you to create stand alone applications with fast start up times, and low memory usage.
Where Python Still Wins
C# is not a good first language to learn. Python is a better option as it is less ceremony, quicker feedback loops, and has an unmatched ecosystem for data science, scripting, and machine learning. If you want to analyse data, train models, or automate processes, Python is the way to go.
However, if you want to create applications (desktop, web backend, games, mobile etc), C# is the better choice. The two languages complement each other. Knowing both Python and C# will make you more employable.
Jobs and Pay
There is steady demand for C# developers. In the USA, Mid level .NET Developers earn around $95,000 to $130,000. Senior roles earn around $130,000 to $170,000. If you specialise in Dynamics 365, Unity, or high performance backends you can earn more than this. In Europe, the pay varies between €50,000 - €85,000 depending on the country. Remote contract work is common, especially in enterprise and games.
There is less competition than JavaScript/Python so less people applying for roles. This means you don’t have to take the lowest end of the pay scale. However, C# roles are mostly found in enterprises, finance, healthcare, and games. This means the culture will be different.
Getting Started Without Wasting 6 Months
Install the .NET SDK and Visual Studio Community (Free). Follow the Microsoft Learn C# path (Free, well structured, up to date). Create 4 projects; a Console Application (reading/writing files), small ASP.NET Core API with a database, desktop application (WPF/MAUI), and simple Unity game. Deploy the API to a free tier. Commit all 4 to GitHub with READMEs.
Choose one specialism (Web Backend, Games, Enterprise, Mobile). Generalist C# developers will be competing with everyone. Specialising will mean you are competing with almost no one. This is the same for all languages. C# is worth investing in because there are real specialisms, steady demand, and less competition.
