Within this article, I am going to attempt to answer the question, how profitable will learning .NET be to your career in 2023?
For those of you who are new to .NET, it will be beneficial to start with a history lesson so this article makes a little more sense. Around 2016-2017, Microsoft announced an update to the .NET framework called .NET Core. Conceptually, .NET Core sounded great, you could run .NET on Windows and Linux. The issue with the .NET Core update was incompatibility. In order to run .NET on Linux, a large chunk of the Framework needed to be thrown away and rewritten. This meant that in order to convert a legacy .NET classic project onto the new stack, a developer would typically need to rewrite a lot of the code again
When .NET Core was first released it left .NET architects with a quandary, what do you use to build your new project? Do you use legacy and face the risk that your project will be obsolete when finished and need re-building, or, do you use the new stack with its lack of adoption and run the risks of needing to write a lot more code as most of the third-party packages and plugins had yet to be upgraded.
If you look at past StackOverflow developer surveys. It was exactly around the time .NET Core was released that .NET went from being the 4th most popular surveyed language to 8th! This metric does not prove conclusively that .NET Core alone damaged the .NET popularity, however, it definitely came at a time when .NET was at the start of a decline.
Cross-over periods in any technology often cause a lot of issues and headaches for all the involved parties. At that point in time, having two non-ideal paths to pick from made it much harder to justify recommending .NET as a technology.
It was this lack of .NET Core adoption, that prompted me to look into the headless CMS revolution in more detail. Using headless meant I could build a project and know it would be future-proof or many years.
This new reservation I held against .NET, was squashed in November last year when .NET 5 was released. Now Microsoft has an official single platform, there are now a handful of CMS systems that support .NET 5, and we also now have .NET Maui for mobile development. Is now the time to consider .NET again?
Instead of making a decision based on hunches and gut feelings, I want to use data to drive my decision-making process. With over a potential year's worth of data to analyse since .NET 5 was released, my assumption is that there should have been an upward trend in .NET and C# roles during this period. Below you will get access to this research.
The conclusions I have made, have been taken from a number of data points taken from all around the web including developer surveys and job boards, If you are interested in finding out how the latest release of .NET has impacted the job market, or if the rise of Javascript has continued unabated, read on 🔥🔥🔥
Is C# the highest-paid language in 2023?
The reason most of us go to work every day is simple, money. Regardless if you love to code, as a professional developer your salary will have some influence on your career path. When picking a potential job as a coder, the language you pick will have an impact on how much you get paid. When considering how programming languages impact your take-home pay, there are two determining factors that you need to factor into the equation, the average salary of that language and the number of jobs being listed.
Ideally, you want to pick a technology that finds the sweet spot. A technology that pays the most in a field that also has a consistent number of new roles in the market. The programming language that has the highest number of roles will also give an indication that the technology will be around for many years to come, so it is a safe bet to invest the time in learning it now!
In 2021, I released a video called Which Programming Languages Pay The Most In 2021?. In that video, Swift came out on top as the best paid programming language in the UK, followed by Kotlin, then Go, then Python. Javascript surprisingly only came 10th on the list and C# did not make the list at all! What I learnt in that study was that the most popular languages are not necessarily the best-paying ones. There is a trade-off between learning something popular and learning a niche language. Niche languages pay more, however, there are fewer roles overall.
The first statement that I can make now is that C# is definitely not the best-paying language. Assuming all of us don't live over in Silicon valley if you simply want to get paid the most as a salaried programmer, it's typically the financial industry that pays the best. To get the most as a coder, you either need to focus on learning a language used by the finance industry or, focus on a niche language used by a sector with lots of money.
The issue with this strategy is that to be successful, you will really need to live near a big city. Unless you want to stay in the same role forever, you will normally need to find another job at some point. When you decide to go into the finance or niche route, you need to live somewhere where there are lots of jobs being posted. If you live in a town where very few programming jobs are advertised, learning the niche will make it harder to find a new role later on.
If you are starting off learning to code, the chances are really slim that you will get a job in finance until you become a senior developer. Most developers will also have little interest in the stress and long hours of finance, or, picking some niche market.
Tip one then is to decide on what types of projects you want to work on in the long term.
What projects use DotNet in 2023?
When you start considering what are the types of projects that you would like to work on over the next few years, most people will tend to stick to the most travelled paths, websites, desktop apps and mobile apps, however, these are not your only options. Let us consider a few popular tech choices and which languages are used within that niche:
Blockchain: If you are interested in blockchain, .NET is probably not the right choice for you. The two coins that I know about that were built with .NET are Neo and Stratis. Most blockchain development is done with other languages. Bitcoin was created with C++, while Ethereum uses Solidity.
Mobile: .NET Maui gives you the ability to use a single language that can be run on any mobile device to build mobile apps. While this is cool, I am doubtful it will replace Swift or Kotlin. If you want to do mobile development, learning Java seems a better choice unless the adoption of Maui changes significantly
API: If you want to build a career building APIs .NET is a solid choice as it runs quicker than most languages. Building an API in C# makes more sense to me compared to Node. GO could be the potential king of APIs soon. Java is also a solid choice.
Web Dev: While you can use Blazor to build front-end applications, let us be honest with each other... in 2023, web dev is dominated by Javascript. All the best tech, new products and innovations are in the Javascript ecosystem. If you want to get into web development, you would be silly not to learn React, Javascript, Typescript, NextJs, Vue, Angular or something like that first
Game development: C# can definitely be used to build games. C# is the default language for Unity 3D which was voted the engine of choice for 61% of developers in 2021. Typically, most computer games are built using C++ including the Unreal Engine, Lumberyard and Godot.
Desktop Apps: If you want to spend your life building Windows apps then .NET is a solid choice here!
The idea behind this list is to prompt you into considering that what you want to build will determine what you should learn. I think one of my takeaways from this research was that in certain niches there are one or two languages that are industry-leading. .NET can be used in more areas than any other language, however, it is not a clear market leader in anything in particular. Yes, it is a good tool that will allow you to work on many projects, however, if you want to work on the most interesting project in a niche, you will also need to know another language 🤔
How does C# take-home pay compare to other languages in 2023?
In the 2022 Stackoverflow survey C# comes in as the 8th most popular language. This is the same position as last year. There was a tiny fraction of increased adoption from 27.86% to 27.98%, so a change of only 0.12! Unexpectedly, the release of .NET 5 and 6 has made no noticeable difference here 😞
I used data from (https://www.itjobswatch.co.uk/)[https://www.itjobswatch.co.uk/] and (payscale.com)[https://www.payscale.com/] to compare the take-home pay for C# developers. Based on my research, the data shows that C# has definitely lost some popularity compared to its glory days and it does not appear that .NET 5 has moved the needle much in this area as well.
For the first metric, we can compare the number of C# jobs listed in the last 6 months compared to the same period in the last two years. The image below is taken from IT Jobs Watch searching for DotNet:
For completeness, I have also included the research for C#
:
If we compare the number of positions for DotNet we see 14,924 jobs advertised. Compare this to Javascript which had 21,243 advertised roles, combined with Typescript with 8,724 advertised roles. This means there are roughly half the amount of .NET roles compared to Javascript-based roles.
At first glance, it may feel positive that .NET has seen an increase in the number of roles being advertised from two years ago. If you compare this increase to other languages though the outlook is not as positive. .NET has actually continued to decline in recent years compared to other languages.
In terms of take-home pay, the median annual salary for a .NET developer is £60,000 which is exactly the same as the median annual salary for Javascript. This is a whopping 10k lower compared to Python, Java and Typescript!
Based on data from Payscale, they report the average C# salary in the UK is £31,365. Surprisingly, they report that Javascript is lower which is odd, however, Payscale also confirms .NET pays slightly less compared to Python and Java
Based on my research, I was surprised that there has not been any noticeable change in C# adoption this year. Microsoft has made some pretty solid releases recently. With .NET Core being merged into the core framework, .NET Maui and some impressive performance gains in the framework.
Asides from just Microsoft wins, both Optimizely CMS and Umbraco CMS have released .NET Core-supported versions of their CMS platforms since the .NET 5 launch as well. There really is a lot to be positive about C# in 2022 and 2023!
My personal belief was that a lot of companies may have been holding off undertaking new .NET projects until this new unified version was released. I was expecting to see more companies start to pull the trigger on starting a new .NET-powered project, which in turn should create more contracting jobs which would also increase the average salary.
Based on the data that I found online, despite all these cool updates, .NET has not seen any new or meaningful upward usage trends this year at all. The data tells the opposite story, a very slow gradual decline in relation to other languages. This surprised me as I thought .NET 5 would generate some new fans.
.NET or C# is not going away anytime within my career. So many legacy projects are powered. As a language, it is still growing, however, it is not growing as quickly as other languages.
Sadly, I must admit that if I were going to start my career all over again today, I do not think C# would be the path I take in 2022. The newer and 'sexier' projects are being built in Typescript, GO or Python. All these languages are commanding better salaries for permanent and contract. Python and Javascript also have more jobs being advertised. Being objective, it is hard to see why you would pick .NET if you didn't know it already compare to these two options.
If you have used .NET for years, I do not think you need to worry about its slight decline in popularity. I think there will always be work and demand for .NET skills until you retire. It seems to me, the latest .NET stack is a better and more stable option compared to a lot of the other languages, however, it is not being marketed well enough to tempt new developers into trying it out successfully. I would love to see this change in the future, so make it so Microsoft! Happy Coding 🤘