Are you trying to teach yourself to code? Or are you already an experienced developer who wants to pick another language?
In both cases, you know how frustrating it can be to find good tutorials online. Sure, it’s easy to find “tutorials”, but separating the chaff from the wheat is a whole different story.
Of course, you have to pick a programming language to learn, and that’s far from being an easy choice, too. There are already a huge number of programming languages, and with each passing year, the list gets longer.
The goal of this post is to help you with both problems. We’re going to give you an answer to the “which language” question in the form of C#, which is a solid choice for novice and seasoned developers alike.
Then we’re going to offer you a list of 30 C# tutorials, from beginner to advanced level.
At the end of the post, you’ll be (hopefully) convinced that C# is the right choice for you, and you’ll have plenty of good references to help you on your journey. Let’s get started.
Why Learn C#?
There are many programming languages out there. In this post, we argue that C# is the best choice for a new language to learn, be it your first programming language or not. How can we be so sure?
Well, C# is a solid choice for a number of reasons. Unlike C++, for instance, C# offers automatic memory management.
Microsoft heavily supports C#, issuing fixes and updates rapidly – so it’s a more readily updated language compared to other languages, such as Java.
The community can also contribute to the language’s design—filing bugs, sending corrections, or submitting features proposals—through the official repository on GitHub.
Like Java, C# is one of the most popular programming languages, and as such, it has a large, active user community, making it easy to find troubleshooting solutions and coding help on StackOverflow and other online communities.
Microsoft released the C# language back in 2001. However, as of 2019, C# continues to be in huge demand. This is especially true since the release of .NET Core, and the trend is likely to go up.
With the new incarnation of the popular .NET framework, the C# language has become more versatile than ever.
But the main point in favor of C# is that it’s very approachable. It has lots of sophisticated and advanced features that seasoned developers can put to use, while beginners can safely ignore those until they’re ready to handle them.
30 of the Best Tutorials to Learn C#
This tutorial is from Tutorialsteacher.com, which features free online web technology tutorials for beginners and professionals alike.
- Data types, classes, and variables
- Switches and loops
- Strings and arrays
- Stream I/O
In this tutorial by author Gerry O’Brien, topics covered include core language elements such as data types, variables, and constants. It also features a short tour of two fully-functional Windows Phone and Windows Store apps to motivate you.
There are also five challenge videos that allow you to test yourself, along with another five videos that explain the answers.
- Working with loops
- Building functions
- Catching errors
- Managing resources with the garbage collector
3. C# Station
The C# Station Tutorial is a set of lessons suited for a beginner to intermediate-level programmers who are ready to learn hands-on with a compiler and an editor.
Topics cover everything from the basics right up to Polymorphism and Overloading Operators.
- Expressions, Types, and Variables
- Introduction to Classes
- Indexers and Attributes
- Working with Nullable types
This series of tutorials from Deccansoft is led by Mr. Sandeep Soni, a Microsoft Certified Trainer, and cover almost all C# topics from the ground up. Each concept is explained at length using different walkthroughs and practical approaches.
The entire course is quite lengthy and features 26 modules split up into about 83 hours of video! It is advisable to have a working knowledge of any one programming language before you take this course.
- .NET Framework
- Concepts behind CLR (Common Language Runtime)
- Building a standard GUI for Windows based applications using WinForms.
- Developing scalable applications using multithreading features of .NET
This tutorial comes from edX, an online educational services provider which also offers some courses from top universities and colleges. This is not a beginner’s course and requires you to have a prior understanding of programming concepts.
This tutorial by Gerry O’Brien is better-suited for existing programmers who want to learn a bit more about C# and the .NET environment.
- The C# syntax
- C# language fundamentals
- Object oriented programming
- The .NET Framework concept
This C# tutorial from none other than Microsoft takes you through 24 practical and easy-to-understand episodes with Bob Tabor from the Developer University.
Apart from teaching you the fundamentals of C#, this course also covers the tools, how to write code, debug features, explore customizations, and more. The cool thing is that each topic is a separate video that’s quite straightforward.
This course also teaches you to apply your C# skills to video games and mobile apps.
- Creating and understanding your first C# program
- Understanding Data types and Variables
- Understanding Arrays
- Working with Strings
- Learning how to work with Date and Time data
Tutorialspoint, which is quite a popular online destination for learning, has 2 tutorials on C#, one for beginners and another for more advanced programmers.
Both are great learning resources, and between the two, they cover the basics of C# programming and also delve into more advanced C# concepts. These are text-based guides with step-by-step instructions and examples.
Basic Key Topics:
- Program structure
- Decision making
- Exception handling
- File I/O
Advanced Key Topics:
- Unsafe code
Udemy is one of the largest online learning platforms with thousands of courses and a big budget to spend on advertising. If you watch YouTube videos or even just browse the web, you’ve likely come across their advertisements.
While the website has many video tutorials on C# programming, the good ones aren’t free but aren’t unreasonably expensive either. This particular course helps students think like programmers and learn C# practically by working on programming projects.
The course consists of about 49 lectures and is just under 9 hours in length.
- Practicing loops, arrays, and structures
- Start coding beginner projects immediately
- Thinking like a programmer
- Using the right approach
This is a free online interactive tutorial for C#. In fact, the entire website is dedicated exclusively to teaching C#.
This site is different in its teaching approach in the sense that it teaches you with two windows, one for code and one for your output.
- Variables and types
- Dictionaries, strings, and loops
- Classes and class properties
This all-text tutorial from Zetcode focuses on both basic and advanced topics and is suitable for beginners and advanced programmers alike.
This tutorial covers the basics like loops, strings, and arrays and then moves on to more complicated stuff like delegates, namespaces, and collections. It also covers the new features of C# 4.0.
- Data types
- Lexical structure
- Flow control
What they mean by “Jump Start” fashion is that every topic of this course is example-driven and illustrated by Microsoft’s Jerry Nixon and the co-founder of Crank211, Daren May.
The key to this tutorial is repetition as the duo work with multiple examples in real-time to make sure you get the most from the experience. There are some videos in the Jump Start series, and the topics get more advanced as you progress.
- Basics of object oriented programming
- Fundamentals of a managed language
- Why C# is the best for OOP
- C# Syntax
More popularly known as a place that indexes Java examples, java2s.com has a good C# tutorial as well.
This is quite an in-depth tutorial, starting with language basics and moving on to graphics, designs, XML, .NET frameworks, networking, directory services, and security.
- Language basics including predefined exceptions, parameter throw, and parameter reference
- Data types including boolean, decimal, and bitwise
- Operators including shift, arithmetic, shortcut, short circuit, bitwise, and ternary operators
- Windows, XML, and XML LINQ
This two-part course is by Hanspeter Mössenböck from the University of Linz. It is a C# tutorial for programmers who are already familiar with Java or similar languages.
It starts out with basic C# features such as types, expressions, statements, and object-orientation, and continues with more advanced features like threads, attributes, namespaces, and assemblies. It also briefly goes over .NET’s base class library.
- Overview, types, and expressions
- Declarations and statements
- Classes and structs
- Namespaces, assemblies, and XML comments
This course is by Eduonix, a premier online institution, and the C# course is an instructor-led video that covers basic programming structures, LINQ, C# network programming, and more. A bonus to doing this course is the option to get certified on completion.
- Introduction to C#
- Iteration and Jumps
- Object Oriented Programming
- LINQ and C # Network Programming
This tutorial from Sololearn.com is fun and teaches C# concepts by going through short interactive texts, games, and quizzes. The instructors believe in a hands-on approach and that the best way to learn to code is to practice coding.
A well-designed code editor lets you make changes to existing code and see the output on your mobile device. The games are especially useful since they’re fun, and the more you play, the better you get!
- Basic concepts including variables, printing, and arithmetic operators
- Conditions, loops, and methods
- Arrays and strings
- Inheritance, polymorphism, and generics
This is a list of over thirty tutorials by RB Whitaker, a software developer at Autonomous Solutions, Inc. (ASI). This course is quite extensive and covers everything from the basics to generics, error handling, and more.
The author encourages you to skip over parts that you are already familiar with, meaning you can get through this course more efficiently if you’re not a novice.
- Introduction, installation, and your first C# program
- Math, more math, decision making, and looping
- Inheritance, polymorphism, generics, and error handling
This is a three- to six-month part-time micro-degree from hyperiondev.com. It’s not free, but it is CSA accredited, making it worth consideration.
This micro-degree is for beginners with no programming experience and features one-on-one pairing with a mentor as well as additional career guidance and placement advice on completion.
- Introduction to C#
- Control statements
- Craps game to assess knowledge of prior task
- Data structures, files, and functions
This set of coding tutorials created by Bucky Roberts on his YouTube channel called TheNewBoston is especially popular.
It is currently one of the most popular computer/technology related channels on YouTube, with close to 900,000 subscribers and over 200 million views.
- Overview of C#
- Where to download Visual C# 2010 Express edition
- Basics of C# Programming
Pluralsight has many courses dedicated to C# programming. This particular course is about six hours long and has a 4.5-star rating across close to 5,000 user surveys.
The tutorial is by Scott Allen, a Microsoft MVP who has authored several books on ASP.NET, C#, and Windows Workflow.
- Basic setup and introduction to .NET, CLR, and FCL
- Editing, compiling and debugging
- Classes and objects in C#
- Flow control and object oriented programming
This is another tutorial from Udemy. It’s not just for beginners but also for students looking for a refresher course in C# and .NET. It focuses more on a programming mindset and uses videos, real-world examples, and lots of exercises.
With 4.6 stars from 7,515 ratings and 30,380 students enrolled, this course by Mosh Hamedani is a great way to learn the fundamentals of C# and .NET Framework.
- Fundamentals of coding
- Working with date and time
- Classes, interfaces, and object oriented programming
This C# tutorial from javatpoint.com is quite extensive and comes with a prerequisite that you have a basic working knowledge of C. Like most other courses, it starts off very basic and then goes into detail in the later chapters.
What makes this one different, however, is that it’s quite student-oriented and features comparisons with Java, interview questions, and an additional ASP.NET tutorial.
- History and introduction
- Control statement, functions, arrays, and object classes
- Properties, inheritance, polymorphism, and abstraction
- Namespaces, strings exception handling, file IO
This is a fun little tutorial from Microsoft and is different from all the others as it’s customizable.
You can choose your degree of difficulty before you start by selecting whether you are a beginner or have previous programming experience. It also lets you choose the languages you already know and then modifies your course accordingly.
- Writing your first hello world program
- Strings, looping, dates, and times
- Arrays, collections, and calling methods
- Testing your code and troubleshooting
YouTube videos are a great way to learn to program, and Brackeys is a YouTube channel that specializes in game development tutorials.
However, he has a pretty decent and in-depth introductory C# series that is quite popular as well.
- Introduction and basics
- Variables, If and Switch statements
- Classes, Inheritance, and enums
- Properties, interfaces, and Generics
This tutorial is from CompleteCsharpTutorial.com and is essentially is a list of free tutorials ranging from C# to SQL, RAZOR Syntax, ASP.NET, Java, and CSS.
The site is really well organized, and each topic opens up into about five sub topics that you can choose from. Each topic is short and sweet and does a good job of explaining things without wasting a lot of time.
- Variables and data types
- Operators and Conditional constructs
- C# Statements, loop constructs, and exception handling
- Inheritance, polymorphism, and generics
This is an introductory tutorial into the .NET framework using the C# language. It also covers various topics like accessing data, classes & objects, file commands, and Windows forms.
This is not a beginner’s course, and a basic understanding of C is required.
- .NET framework
- How to Download and Install Visual Studio
- Fundamentals – Data Type, Arrays, Variables and Operators & Enumeration
- Classes, Object and Collections
- Access Database and File Operations
This course from CertificationGuru.in provides a solid foundation and covers the fundamentals skills required to design and develop object-oriented applications.
This course especially focuses on developing apps for the Web and Microsoft Windows using Microsoft Visual C#, .NET, and the Microsoft Visual Studio .NET development environment.
Another plus is that this class is intended for beginners with little or no knowledge or C# or .NET. Training is conducted live in virtual classrooms by Microsoft-certified trainers with over a decade of training experience.
- .NET framework architecture
- Event driven programming
- Lambda expressions
- Exception handling
This tutorial at Lynda.com is all about getting a firm grasp of the new features in C# 6.0. The course is conducted by Reynald Adolphe, who takes you through all the new features like new expression-level features, extension add methods, null-conditional operators, and much more.
The enhanced IDE (with IntelliSense syntax) and improved debugging features in Visual Studio 2015 is also covered.
- Introducing the new IDE in Visual Studio 2015
- Leveraging nameof expressions
- Using index initializers
- Using await in catch and finally blocks
- Using static and debugging
This free online course is published by Channel 9 and begins with showing you how to properly install Visual Studio Express, followed by a tour of the features and functions of the Visual Express Integrated Development Environment (IDE).
Next, comes the .NET Framework and how C# can be used to create .NET applications.
- Installing Visual Studio Express
- Write basic code and reviewing for errors
- Creating branches with the if decision statement and the conditional operator
- Correct syntax for operators, expressions, and statements of duration
The Beginning Game Programming with C# course from Coursera.org is all about learning how to develop games in C#. This is an advanced course, so while it’s not impossible to jump right in, it might be a bit frustrating for beginners.
C# is great for games because it lets you use the open-source MonoGame framework used to make games for Windows, Android, iOS, and Mac OS X. C# can also be used with the Unity game engine, which is very popular among indie game developers.
- Course Introduction, First C# Program, and Storing Data
- Classes and Objects, MonoGame/XNA Basics
- MonoGame/XNA Mice and Controllers, Arrays, and Collection Classes
- Class Design and Implementation
This is another great course from Udemy, and it’s different in the sense that it’s a gaming course for beginners in which you learn C# while building interesting games on the Unity engine.
The plus side here is that it makes learning C# fun and interactive while also teaching you about the Unity engine. The course is 100% project-based, so you will not just be learning theory but actually creating real indie games as you go.
The entire course syllabus consists of names of indie games, and for each demo game you build, you are given a set of challenges. The key topics here are especially interesting.
- Number Wizard: Basic Scripting
- Laser Defender
- Glitch Garden: A Plants vs. Zombies Clone
- Block Breaker
- Zombie Runner FPS
C# is still one of the most widely-used programming languages out there today. It is a powerful programming language with an incredibly wide array of functions and uses, allowing developers to create almost anything, ranging from server apps to mobile development to 3D games.
C# 8.0 will be released later this year—although you can already preview many of its feature using Visual Studio 2019—and with the number of tutorials online, now’s as good a time as ever to start learning.
Once you’ve become a C# guru, check out our other resources on the popular programming language, such as logging best practices for .NET, exception handling best practices, how to find and handle unhandled exceptions, and more.
Need a code coverage tool? We’ve got you covered there, too, in this post.