A huge number of people who are interested in pursuing a career in software development turn their attention to C#. And it’s no wonder—with C Sharp programmers earning an average salary of around $70,000 per year in the U.S., and with many senior C# developers pulling in over $100,000 USD a year, it’s an attractive option. The language is in high demand as well: it’s one of the most popular programming languages in the world, with thousands of job openings as a C# developer posted worldwide each month. Plus, C Sharp itself holds a wide appeal, since it’s versatile enough to allow you to work in a wide variety of roles and in all sorts of industries.

But what do you have to know in order to work as a C# programmer? That’s what we’ll cover in this article—along with links to learning resources to help you develop, whether you’re just getting started with programming or looking to shore up your knowledge and begin applying to jobs.

What exactly is C#?

The first thing to know is what C# is—and what it isn’t. As the name implies, it does belong to the C family of languages, and thus has some similarities to C, especially where the written syntax of the language is concerned: C# code looks a bit like C code.

But the language was created by Microsoft to serve as a general purpose programming. As a language that would be reliable, secure, and, most of all easy to work with—in essence, as competition for Java. C# is generally regarded as simpler to learn and program in than C. It’s a higher level language and is “object-oriented” like Java, Ruby, and Python.

Learning the basics

So what do you need to learn in order to be a C# programmer?

Well, let’s start with the obvious: you’ll need to know the language itself. The first question people usually ask is: Is it hard to learn?

Reality check? There’s a lot to know. And if you’re new to programming, the syntax of C# is definitely a bit harder than more popular “beginner’s languages” like Ruby and Python.

The good news? As programming languages go, it’s still reasonably simple to learn. It’s incredibly well-documented and well-supported, since it has the backing of Microsoft. And because it’s so widespread, there’s a massive amount of information online in the form of tutorials, YouTube walkthroughs, and official documentation.

A great place to start is this one-hour beginner’s intro video on YouTube. It’s basically just the intro to a full course, but it’s a nice overview of the basic concepts and ideas that you might have a hard time getting a grasp of if you’re new to programming.

If you decide that you want to go for it, and dive into the world of C# programming, the full course is available on Udemy for $10.

And if you’re a seasoned programmer just looking to learn a new language, and are pretty familiar with the conventions of programming documentation, the simplest route to get started might just be to get down to brass tacks and start reading the official Microsoft documentation.

Object-oriented programming (OOP)

Once you’ve got the basics of the language down, the next step is learning how to use it. And for this, you’ll need to master object-oriented programming (OOP). Object-oriented programming is basically a “style” of using a programming language—it’s incredibly popular and not at all specific to C# or to any one language. In fact, if you’ve already learned Python, Ruby, Java, or JavaScript, this should already be very familiar to you, so feel free to skip ahead to the next section.

But if you’re new to programming, OOP might take a while to wrap your mind around. However, once you’ve grasped the underlying principles, it starts to seem like the most natural way to code—you’ll start to “think OOP”.

As always, the best way to learn something in programming is by doing it. EdX has a free course that uses C# to teach the fundamentals of OOP—created and sponsored by our friends at Microsoft—thanks Bill!

Career Paths: Desktop, Web App, or Games?

C# developer

So once you’re fluent as a C# developer, and have a handle on OOP, what else do you need to know as you progress in your career? Well, this is where things start to get interesting, because what you need to know depends on what you want to do.

C# is, as we mentioned, an incredibly versatile language. That means it can be used to build all sorts of things—from the sorts of Windows apps that you download and run on your desktop computer, to the core code of websites, and even to games.

If desktop app development is what interests you, then you’ll need to learn the .NET framework. Without going into too much detail, .NET is a framework for app development that lets programmers access a massive library of “ready to use” code, with a specific emphasis on developing applications for a Windows desktop environment (though it also can be used to create Linux and MacOS applications as well). There is a very short in-browser tutorial available through Microsoft, as well as a much longer series of videos on YouTube.

If you’re interested in building websites, you’ll need to learn ASP.NET, which is the framework most often used with C# for web development. To get your feet wet with ASP.NET, you can watch this one-hour video, or go deeper with one of these free courses. And obviously, if you’re going to be doing web development and making websites that people are actually going to use on their desktops, tablets and mobile devices, you’ll need to learn related front-end web development skills like HTML, CSS, JavaScript, and responsive design. Michael Hartl’s website where you can “learn enough to be dangerous” is a great place to start (or just to review your front-end skills if you’re a little out of practice).

Finally, even though C# is the language of choice for most, many enterprise applications due to its backing by Microsoft (thanks again, Bill), C# isn’t all business. It’s also the language of the Unity game engine, which is used to produce beautiful, high-performance 3-D and 2-D games. Unity has a wide range of free tutorials that can get you started using C# to create games. And with a huge and growing demand for Unity developers, with compensation to match, it’s as good a career track as anything in the more traditional corporate C# world.

Special Topics for Senior Developers

If you’re going to go after a higher level role as a C# developer, you’ll already be highly proficient in C#. But you should also begin to master the way it’s implemented—both technically, which is a given, but also practically, with demanding customers and difficult coworkers thrown into the mix.

This could mean, on the technical side, gaining experience with with REST and SOAP APIs for creating web services. Or you might focus on developing a deep understanding of best practices for design paradigms like MVC if you’re going to be creating web apps. And to make yourself more competitive as you apply for top-tier jobs, you should also look to acquire a sub-specialization in some other area of software development, such as database management tools like SQL Server.

But it’s also worth considering that because C# is so often used in business contexts, you may want to develop your management and project-management skill set as well. There are various approaches to managing a software development project, but the one that seems to come up most often in job postings is Scrum. Like many project management methodologies, it is possible to get a certification in Scrum as a way of bolstering your credentials. Another popular choice is Kanban, a lean approach to software development, which also has certifications available.

Get Going

The bewildering array of things to know and learn—and of uses for C# and possible career paths—can make getting started a bit intimidating. The the flip-side to this is that there’s such huge potential to learning C#, since it can take you almost anywhere. As is often the case, the “next step” only becomes clear once you’ve begun the journey, and the first step is usually the hardest. So the very best way to start figuring out how to move forward is by getting started today—whether you do that by watching a 90-minute YouTube video, designing your first simple game in the Unity game engine, or creating your first “Hello World” web app using ASP.NET. Good luck!

pangara_logo

Think you have what it takes and are ready to get started? Join our exclusive network of skilled freelance developers here.