Why C# Might be the Best as a First Programming Language
But I'm ready to challenge you and prove that C# might be the best first language and you should consider starting your developer path from it.
I worked with it for more than 10 years, and tried almost anything: Desktop, IoT, Mobile, Web, Cloud - and everywhere C# and .NET perfectly fitted (except maybe early days of Xamarin TBH), and here are my thoughts about it.
C# is a programming language, .NET is a software framework built upon it. For simplicity when I say C# I assume it with combination with .NET and vice versa.
1. .NET allows you to build anything everywhere.
With a single language and a single framework you could build any kind of application: Desktop and Mobile, you can create games, and explore AI. And .NET is cross-platform: you could build applications for Windows, Linux, Android, iOS, and even for IoT devices. That's a lot when you are not sure where you want to move next.
Imagine that you could adopt a single language, try every direction, and improve your skills in the process. You still would need to study direction specifics though.
After that, you could improve in the direction you love most or you could even begin to work with languages and tools more specific for selected fields if you wish. For example, for mobile dev, I have seen people move from Xamarin to native development on iOS or Android.
2. C# is the fifth popular language.
According to the TIOBE Index (index of the popularity of programming languages based on search engine results), C# holds a solid 5th place as the most popular language. During the last 20 years, it has always been in the top 10.
And even more - due to fast growth in popularity this year C# might get the "TIOBE index programming language of the year award" for its highest increase in ratings in 2021.
3. C#/.NET has one of the best learning materials.
Microsoft and .NET Community provided tons of materials in any form: articles, videos, courses, tutorials, and books to give you the ability to become a successful .NET developer.
You could check all available materials on Microsoft Learning Portal
The community provides amazing all-included roadmaps to master the skills and knowledge you need to achieve success, like this ASP.NET Core roadmap for a backend developer. You could easily google roadmaps for other directions.
And Microsoft itself trying to do different fun activities to engage more developers. For example, this NFT badge is awarded to ones who proved their knowledge of building modern web apps and services with .NET 6 and Azure in the .NET Conf 2021 Cloud Skills Challenge
If you looking for where to start I recommend you to check these places
4. .NET 6 simplified a quick-start to the ground.
The latest version of .NET took a huge step to simplify the getting started experience. The Minimal API feature gave us a way to create HTTP APIs with minimal dependencies, in a single file, with clean code.
You need exactly 4 lines of code that can be created by a single command
dotnet new web -o MinimalApiSample to start your web app with .NET 6.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
If you wish to try it for yourself check the tutorial from Microsoft.
In conclusion, when choosing a first language you should ask yourself two questions:
- Is it a good programming language to learn if you want to get a job?
- Is it a good language to start learning to program?
For C# my answer is definitely yes. There is high demand for C#/.NET developers, it's a C-like language with a strong object-oriented approach, and the learning curve becomes more and more acceptable for each version.
But, as you probably already figured out, I am a fanboi 😅, so try it and decide it for yourself. Good luck in your learnings, and if you decided to join: welcome to #dotnet