Special Offer: My C#/.NET Bootcamp Course is out now. Get 10% OFF using the code FRIENDS10.

Nowadays, there are many free tutorials, paid courses, universities, private schools, and a lot of other providers and offers of content about how to learn C# programming.

I think that it’s fair to say that there is too much content available. You can easily get overwhelmed when searching on YouTube, Google, or in your favorite online course provider’s course registry.

And most importantly, you don’t have time to spend nights after nights learning new things. You want to get started right away. That’s precisely why I wrote this article for you.

In this article, I want to provide a structure that helps you learn C# in a way that you quickly have a foundation you can use in your projects. And at the same time, I want to protect you from getting overwhelmed by topics that you do not need to understand when getting started with C#.

It does not matter if C# is your first, your second, or your n-th programming language.

1. C# Data Types

Let’s start with the atoms of the universe. Learn about the basic data types included in the C# programming language. There are many ways to learn about those data types, and I think that when starting the following data types are important to understand:

  • string
  • int
  • float, double
  • decimal
  • bool
  • System.DateTime
  • object

There are many tutorials or guides out there, but I recommend checking out this article from Tutorialsteacher.com.

2. C# Classes

It’s in the nature of an object-oriented programming language that objects and classes are an essential component of the programming language.

Tutlane.com has a short, but helpful introduction article about how to deal with classes and objects in C#.

3. C# Collection Types

Most programs include some more complex data structures than simple data types. Sooner or later, you’ll find yourself in a situation where you want to make use of lists or arrays of data.

C# offers various interfaces and implementations of different collections. It’s a great idea to become familiar with at least the following collection types:

  • List / List<T>
  • IEnumerable / IEnumerable<T>
  • ArrayList
  • Stack

In 2013, I wrote a very popular article about When To Use IEnumerable, ICollection, IList, And List which provide a high-level overview of the collection types.

Zencode.com has another great article about C# collection types that explains the usage of each type in more detail, including real examples.

4. C# Generics

Generics are a powerful concept that allows you to provide a type definition for a specific data type. You’ve already seen List<T> which is a data type including a type parameter.

Generics were introduced in .NET 2.0 and are widely spread among existing C# code. It makes total sense to learn Generics early in your C# journey.

Geeksforgeeks.org offers a short, but in my opinion, well-written introduction article about Generic in C#. You might want to check out this article to get started with Generics.

5. C# Interfaces

Building loosely coupled software is essential to create maintainable programs. Interfaces are one of the most powerful concepts C# has to offer to create abstractions.

It is very important to understand how interfaces work, which interfaces are commonly used, and how to write your interfaces within your program code.

Understanding interfaces is a fundamental skill required to read open source code or existing code in general.

Maybe you know about the concept already from other programming languages, but make sure to understand how interfaces are defined in the C# programming language and which limitations there are.

Again, Geeksforgeeks.org offers an article to learn about C# Interfaces.

6. C# Language Integrated Query (LINQ)

C# offers a very powerful way to access data from different sources using a common set of operations. LINQ was introduced in .NET Framework 3.0 and made it into almost every program.

Dotnetpattern.com has several articles explaining the concept behind LINQ and how to use it in your applications.

LINQ is a great topic, and you can invest a lot of time mastering the details, especially if you want to implement your own LINQ provider.

I suggest that you start learning the fundamentals and continue to learn about LINQ as your journey in the C# world continues. Don’t get overwhelmed with all the things you can do at first. Start simple.

7. C# File Operations

Most programs interact with the computer on which they are executed. Often the first interaction is reading or writing files to the file system.

Getting familiar with the .NET types that give you simple access to the file system is very important when learning C#. It’s one of the topics that does not have a lot of depth, yet there are many different ways to achieve the same results.

Guru99.com has a compelling tutorial on C# File Operations for you.

I think this article should get you up to speed with file access. You can always dive more in-depth if you have more complex problems to solve.

8. NuGet Package Manager

Not part of the programming language itself, but an important part of the .NET ecosystem is the NuGet Package Manager. It’s the tool that gives you access to all the countless available open-source libraries.

Getting familiar with how package managers work and how to execute specific NuGet commands either from the command line or when preferred in the Visual Studio IDE using a visual interface, is fundamental for your C# journey.

On CodeProject.com there is an old, but still relevant and still of a good quality article about the basics of using NuGet.

9. Visual Studio

The chances are that when you’re learning C# that you have the Visual Studio IDE already installed. If not, it’s the best IDE for C# development to getting started.

Why? Because most articles on the Internet and most books will cover C# development using Visual Studio. Sure, there are alternatives, but it makes sense to stick with the preferred way of doing things when starting and individualize later in your journey.

Microsoft offers a free Visual Studio 2019 Community edition which you can download and install right away.

If you were using Visual Studio a few years ago, but now come back to it, you might want to check out my YouTube video about the new features included in the latest Visual Studio 2019 release.

10. Create real projects

In my opinion, one of the most critical things when learning a new programming language is that you write the code yourself. It is not enough to consume a lot of content including video tutorials, books, or blog posts like this.

Get in your IDE, start writing code, make mistakes, and learn from them. If you find yourself in a spot where you do not understand what’s going on, the chances are that an answer to your question has already been posted on Stackoverflow.com. If that’s not the case, you can add your question, and you might get feedback in a short period.

The external resources in this article

The resources in this article are not enough to gain a full understanding of the C# programming language, but they are included for you to getting started.

I am not affiliated with any of the websites, and I do not get any commissions for linking to their tutorials or articles. I personally think that these are valuable resources for you if you want to learn the fundamentals of C# in a short time.

What’s next?

Depending on your skill level, your experience with other familiar languages and concepts, some things will be more natural for you to understand, and others will take more time to study.

The most important thing is that you get started with learning C# and that you write your own first program using the concepts you’ve learned.

Let me know in the comments if this article helps you find guidance in the jungle of all the available materials and topics when learning C#.

 

Claudio Bernasconi

I'm an enthusiastic Software Engineer with a passion for teaching .NET development on YouTube, writing articles about my journey on my blog, and making people smile.