Why should you learn to program C#? The answer to this question is really two-fold. There are reasons that learning some basic programming in any language is beneficial, and there are good reasons to learn C# in particular.
Benefits of Learning to Code
In general, learning to program a computer can greatly help refine one’s problem-solving ability. Oftentimes, we have difficulty breaking down a problem into the disparate steps needed to solve the issue at hand. Maybe we can see the solution, but don’t know how to get there. However, this is exactly what we must learn to do in order to give computers instructions on how to solve our problems. Computer programmers are often experts at breaking down a problem because this is what we do on a daily basis in order to get machines to understand human workflows. So, any person who learns to do the same is going to gain some cognitive benefit towards their problem-solving skill set.
But there are other reasons to expose yourself to programming. Some people enjoy it so much they take it up as a hobby, much like art or writing. There is certainly great demand for software developers at this point in time, so it can also become a well-paying career for those who develop a passion for it. I would highly encourage business executives and project owners to learn some programming: the knowledge of how applications are actually built can greatly help the business in understanding what types of features are feasible and what timelines and challenges can be expected in implementing those features.
But why learn C# in particular when there are so many programming languages to choose from? Well, perhaps the main reason to learn C# is the immense amount of toolsets and frameworks you get to support the language, all of which are backed by Microsoft. Almost any developer will readily admit that Visual Studio is one of the most, if not the most, feature rich and powerful development environments on the market. The .NET framework provides hundreds of libraries for building websites, implementing security, working with the file system, etc.
The main objection to all of this used to be “but it’s not open-source”, which was certainly a legitimate concern. However in November of 2014, Microsoft announced that it would be open sourcing the .NET framework and providing free licenses of Visual Studio, eliminating the open-source counterargument to using its toolset.
C# in particular is heavily supported by Microsoft, with new features and syntactic enhancements being pushed out on a much quicker basis than other languages like Java. If you favor language features such as LINQ and other syntactic sugar, you may prefer C#. In fact, C# 6 releases soon with new features such as automatic property initializers, exception filters and string interpolation.
C# is also one of the most popular languages, and very similar to Java. This is an important consideration for developers because the popularity of a language is fairly proportional to how much supporting material is available online for that language. Often, we frequent Google or Stack Overflow to aid in solving an issue and often the answers there will be in C# or Java. As a developer of one of these languages, especially a beginner, this can save a lot of time in being able to understand the given solutions, or finding a solution to the problem period. When starting to learn a new language, you should carefully consider whether you want to learn a popular language, or something more obscure that may have significantly less documentation.
The flexibility of C# is also a huge benefit compared to some languages. The variety of applications that can be developed with C#, .NET and Visual Studio is virtually limitless: native windows applications, REST APIS, mobile apps, websites, games and even native Android or iOS apps with some additional frameworks like Xamarin or Mono. Although it is possible to do all of these things with other languages as well, it usually involves piecing together some variety of third-party tools to make it all work, whereas C# developers have a very cohesive Microsoft-supported set of tools for developing any type of application.
According to the 2015 Stack Overflow developer survey, C# is the third most popular object oriented language, and also ranked in the top 10 most loved languages. I would expect it to continue to rise in this ranking as Microsoft continues its open sourcing initiatives and more non-Windows developers begin to learn about the language as it now runs natively on Mac and Linux as well as Windows. In the past there were legitimate reasons to shy away from Microsoft’s closed-source development ecosystem, but that view is rapidly changing. I highly recommend giving C# a look as your programming language of choice.