Is C# suitable for your career choice or not?

Published

Blog image

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

Well, let's try to answer this question as objectively as possible. Sometimes you can replace C# with the .NET ecosystem as a whole.

diversity

C# and the .NET framework are one of the most versatile tools for software developers. You don't have to jump between different stacks to gain more experience with different platforms.

They have two great frameworks for building web applications - ASP.NET and ASP.NET MVC. The tooling and development speed are comparable to the most advanced frameworks in other languages. The biggest competitor in this area is undoubtedly Ruby on Rails.

With Microsoft's acquisition of Xamarin, mobile development for major platforms is at a very advanced stage. There is a huge advantage in maintaining a codebase in one language and having common libraries for the Android and iOS platforms. With C# you can do all of that. Other major players in this space include React Native, which is backed by Facebook, but some of my mobile development friends swear by the native platform.

Microsoft's cloud platform Azure is growing rapidly and offers various tools not only for your backend API code and storage, but also for background tasks, machine learning, various cognitive services, enterprise solutions, and security and identity management. There are a lot of goodies that can make life easier for your developers. Not to mention, as an MSDN subscriber you get free credit to try them all out.

If you need a thick client, a desktop application, it will typically be Windows-focused. There is no better framework than WPF or the simplicity of WinForms to accomplish this task. There isn't much innovation in this space, but these frameworks are far from dead. They are the consistent workhorse that is easy to use and gets the job done.

And finally - somewhat unexpectedly - there is a large group of game developers. Unity - one of the largest 3D engines - uses C# as its language of choice, and the tooling in Visual Studio gets better with each new version.

With C# you can create a variety of applications without having to create new ones Libraries and language constructs need to be learned . You can write web applications in Lisp or Smalltalk and build Android applications in Ruby, but that doesn't mean you should. C#, on the other hand, is one of the best tools for the job in any category.

Technical

C# is an object-oriented, imperative language - you tell the computer what to do, and you can package those commands into objects that model your desired world. This paradigm is the most widespread today and therefore a good means to master it. Application patterns and object-oriented practices are transferable to many other platforms and languages.

.NET Framework - Those: static.javatpoint.com

But apart from that, C# also has a number of features of functional languages. While you don't get tail recursion, LINQ is an excellent tool for data transformation and filtering. And with C# 7.0 you also get pattern matching. So you can expand your skills with other paradigms without leaving your favorite language.

Apart from that, C# is statically typed. This gives you an amazing tool when working on larger projects with a larger team, and you realize how helpful it is to be in a dynamically typed language like Ruby in this situation.

There are also dynamic functions in C#. The dynamic keyword and reflection API gives you powerful tools to create beautiful DSLs or work effectively with JSON APIs. With great power comes great responsibility, and you shouldn't use it thoughtlessly, but you have this tool in your toolbox.

If this article has convinced you that C# is a good career choice, consider subscribing to the weekly C# Digest newsletter to stay up to date with the .NET community.

Experience

One of the biggest advantages of C# is that it is used in a wide range of companies. From small startups to huge corporations.

Each type of company has different challenges and problems, so I recommend every programmer to go through each type of company in their career. Even if you don't think you're cut out for a big company, working for one will give you a good insight into the problems these companies face.

And on the other end of the spectrum, in a startup company you won't have to work 80 hours a week, but you will have to take on a wider range of tasks - devops, technical support and greenfield development.

With C# it is possible to get a taste of different companies without having to relearn the framework and language, and instead you can focus more on the area and team dynamics.

Try to find a large company that uses Ruby - it's not that easy.

Money and stability
Let's be honest. We work because we have to earn a living. And with C# you have good prospects. Large financial companies use C# as their preferred stack, which guarantees salaries at the higher end of the spectrum.

You can still make more money as a specialized COBOL provider, SAP consultant or whatever is hot, but as a software developer who wants to cover a wide range and have the ability to switch between different companies and application types, you get one of the best offers on the market.

If you still have solid SQL skills, you can leverage those skills for the next decades of mortgage-backed development.

That being said, there are plenty of job opportunities in C# in most places around the world, giving you the stability you want and the ability to switch if your current company runs into trouble.

Microsoft

Was formerly Microsoft this evil, closed company that wanted to take all the profits at all costs (honestly, show me a company that doesn't do that), that all the engineers laughed at and wouldn't even touch Windows Vista with a long stick. But times are changing, especially for developers.

C# and the .NET framework with the Roslyn compiler are open source and are available on Github hosted.

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

There's a great team driving innovation behind the C# language, and the Cloud and Enterprise division is thriving under Scott Guthrie. A clear direction behind the product is important.

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

Exciting times for C# developers!

Money and stability

Let's be honest. We work because we have to earn a living. And with C# you have good prospects. Large financial companies use C# as their preferred stack, which guarantees salaries at the higher end of the spectrum.

You can still make more money as a specialized COBOL provider, SAP consultant or whatever is hot, but as a software developer who wants to cover a wide range and have the ability to switch between different companies and application types, you get one of the best offers on the market.

If you still have solid SQL skills, you can leverage those skills for the next decades of mortgage-backed development.

That being said, there are plenty of job opportunities in C# in most places around the world, giving you the stability you want and the ability to switch if your current company runs into trouble.

Competition

Let's talk about other platforms and their strengths and weaknesses.

What about Java ? Java is pretty similar to C# - all the advantages are there. You might get better tools and more support for some trendy machine learning and big data frameworks, but you won't build beautiful desktop clients for Windows. Also, the language standard and language features are a little behind C#. All in all, not a bad career choice.

What is Backend - Source: geekflare.com

When talking about Ruby, you can safely replace it with Ruby on Rails, since the vast majority of Ruby jobs are Rails jobs. Ruby has dominated the world of web startups for the past decade. Other web frameworks have caught up, but there are many successful small to medium-sized businesses building on Rails that require development and maintenance. It's a good choice for startups that want to move forward quickly but don't want to grow the team too much. It's a good choice if you want to work in a remote location - there are far more options than in any other language. However, the job market in your region might be limited and you will be developing CRUD web applications.

Javascript is currently in high demand. Getting started is easy and you can write backends with Node.js, desktop applications with Electron, and mobile applications with React Native. Javascript isn't designed to maintain a large codebase, and the ever-changing world of front-end frameworks quickly becomes tiring. And often it means reinventing the wheel again. But if you're working in the web stack, you'll have to deal with it anyway. I would 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

In summary, if you choose C# as your language of choice, you will have a great career. The biggest advantage is the variety of applications you can work on and the companies that use C#.

It offers you great job security and salaries that are at the top end of the market.

After all, C# is a cool language that's fun to work with - you can always learn something new, and Visual Studio will be your reliable partner to help you with large projects using IntelliSense.

Do you want to become a better C# developer? Check out our Job offers and stay up to date in the .NET world.

You might find this interesting