C# — good career choice or not?

If you are just starting out or you are a seasoned developer with battle scars and years of experience under your belt you asked yourself this question at least once: is C# a good career choice?

Well, let’s try to answer it as objectively as we can. At times you can replace C# with .NET ecosystem as a whole.

Variety

C# and .NET framework is one of the most versatile tools for software developers. You don’t have to jump across different stacks to get more exposure to different platforms.

You have two great frameworks for creating web applications — ASP.NET and ASP.NET MVC. The tooling and the speed of development is on par with the most advanced frameworks in other languages. The biggest competition in this area would be without any doubts Ruby on Rails.

With Xamarin being acquired by Microsoft the state of mobile development for the major platforms is at a great stage. There is a huge benefit of maintaining a codebase in one language and having shared libraries across the Android and iOS platforms. With C# you can do all of that. Other major players in this area are React Native backed by Facebook but some of my mobile developer friends would swear on the native platform development.

Microsoft’s cloud platform, Azure, is growing fast and offers various tools not just for your backend API code and storage, but also for background jobs, machine learning, various cognitive services, enterprise solutions and security and identity management. There is a lot of goodies there that could make your developer’s life easier. Not to forget to mention that if you are a MSDN subscriber, you get a free credit to try them all.

When you need a thick client; a desktop application; it will be usually targeted towards Windows. You can’t really get a better framework for getting the job done than WPF or the simplicity of WinForms. There is not a lot of innovation in the field but those frameworks are far from being dead. They are the steady workhorse that is easy to use and does the job.

Lastly and slightly unexpectedly, there is a large camp of game developers. Unity — one of the biggest 3D engines uses C# as a language of choice and the tooling in Visual Studio gets better with every new version.

C# gives you a great variety of applications that you can create and you don’t need to learn new libraries and language constructs. You can write web applications in Lisp or Smalltalk and create Android applications in Ruby but that doesn’t mean that you should. C# on the other hand is one of the best tools for the job in any given category.

Technical

He’s using Visual Studio, right? Right?!

C# is an object oriented imperative language — you tell the computer what to do and can wrap those commands into objects modelling your desired world. This paradigm is the most widely used nowadays and therefore a good one to master. Applications patterns and object oriented practices are transferable to many other platforms and languages.

But apart from that, C# also has a number of features from functional languages. You don’t get tail-recursion, but LINQ is a brilliant tool for data transformation and filtering. And with C# 7.0 you get pattern matching as well. So you can expand your skills with other paradigms without leaving your favourite language.

Apart from that, C# is statically typed. That gives you an amazing tool when working on bigger projects with larger team and you realise how helpful it is when you find yourself in this situation in a dynamically typed languages like Ruby.

Also, there are dynamic features of C#. The dynamic keyword and reflection API gives you powerful tools to create nice DSLs or effectively work with JSON APIs. With great power comes also great responsibility and you shouldn’t use them mindlessly, but you have that tool in your toolbox.


If this article convinces you that C# is a good career choice check out C# Digest weekly newsletter to stay up to date with .NET community.


Experience

One of the biggest advantages of C# is that it is used amongst the wide spectrum of companies. From small startups to giant corporations.

Each type of company has a different set of challenges and problems so I recommend every programmer to go through each type in their career. Even if you think you are not made for a big corporation, working for one gives you a decent perspective on what these companies are struggling with.

And on the other end of the spectrum startup sized company doesn’t need to be 80 hours per week work, but you will have to step into more breadth of roles — devops, technical support and a green field development.

Gaining exposure to various businesses is possible with C# without relearning the framework and language and you can focus more on the domain and team dynamics instead.

Try to find a huge corporation using Ruby — not that easy.

Money and Stability

Make it rain!

Let’s be honest. We work because we need to earn our living. And with C# you have solid prospects. Big finance corporations are using C# as their stack of choice which guarantees salaries on the higher end of the spectrum.

You can always earn more cheddar by being a specialised COBOL contractor, SAP consultant or do whatever the current hotness is, but as a software developer that wants to have wide exposure and the ability to move across companies and types of applications you are getting one of the best deals on the market.

Add a solid foundation of good old SQL and you can mine that skillset for the next few decades of mortgage driven development.

Apart from that, there is plenty job opportunities in C# in most places around the world which gives you desired stability and option to change in case your current company gets into troubles.

Microsoft

Microsoft used to be this evil closed company that wanted to get all the profits (honestly, show me a company that doesn’t) at all cost that all the technical people made fun of and prefer not to touch Windows Vista even with a long stick. But the times are changing, especially for developers.

C# and .NET framework with the Roslyn compiler are open-sourced and hosted on Github.

.NET Core runs on many other platforms than just Windows and we have Visual Studio for Mac and lightweight Visual Studio Code that runs almost everywhere.

There is a great team behind C# language pushing the innovation forwards and the Cloud and Enterprise division under Scott Guthrie is thriving. One clear direction behind the product is important.

Windows has a bash now and runs Ubuntu and plan to add Fedora and SUSE.

Exciting times for C# developers!

Competition

Let’s discuss other platforms and their strengths and weaknesses.

What about Java? Java is pretty much similar to C# — all the benefits are there. You might get better tooling and more support for some trendy machine learning and big data frameworks but you won’t be building nice desktop clients for Windows. Also, the language standard and the language features are a bit behind C#. In overall, not a bad career choice either.

When talking about Ruby, you can honestly replace it with Ruby on Rails, as the vast majority of Ruby jobs are Rails jobs. It dominated in the web startup world in the past decade. Other web frameworks caught up, but you have a lot of successful small to medium businesses built on top of Rails that needs development and maintenance. It is a good choice for startups where you want to move fast but don’t want to grow the team too much. It is a great choice if you want to work a remotly — there is far more options than in any other language. But the job market might be limited in your area and you will be building CRUD web apps.

Javascript is currently high in demand. It is easy to get into and you can write backend with Node.js, desktop applications with Electron and mobile apps with React Native. Javascript wasn’t made for maintaining a large codebase and the ever changing world of front-end framework gets tiring. And lots of times it is just reinventing the wheel again. But if you are in web stack you will need to have some exposure to it anyway. I’d use it as a secondary language for front-end heavy web applications.

What other platforms and languages would you consider and how would they compare to C#?

Conclusion

To sum it up, you will have a great career if you decide to choose C# as a language of choice. The biggest benefit is the variety of applications you can work on and companies that use C#.

It will give you great job stability and salaries that are on the higher end of the market.

Lastly, C# is cool and fun to work with — you can always learn a new thing and Visual Studio will be your reliable buddy helping on the big projects with IntelliSense.

In overall, exquisite choice sir.


Do you want to become a better C# developer? Subscribe to C# Digest and stay up to date within the .NET world.