Skip to content
UdemyHighest Rated on UdemyC#Paid courseIntermediate levelCertificate

C# Intermediate Programming : The First Steps (Udemy.com)

A Great Way To Extend Your C# Beginner Skills By Solving More Advanced Real World Problems Using Windows Form Apps

Created by: Charlie Chiarelli

Last updated September 2026

Our take

Based on the ratings of 980 students, a sample of their written reviews and the syllabus, as the course stood in September 2026. No course pays to be reviewed.

Charlie Chiarelli is a retired Canadian high school computer science teacher, and one reviewer says the gap between real teachers and software engineers shows in the presentation. Instead of console programs, the lessons are built as Windows Forms apps. It runs about 31 hours across 261 lectures, with sections on recursion, sorting and searching, file handling, graphics, and a WPF block. The label says intermediate, but the reviews and his own notes point elsewhere. It starts at beginner level, and he suggests his first course if you are shaky. Visual Studio on Windows is required.

Reviewers praise the teaching. Concepts get broken into small pieces, points are repeated without dragging, and two say he answers questions, one saying he replied every time. The complaints are consistent too. Most apps are pre-built, and he explains the code afterward. A few students would rather type along or build one big project. Others found it too basic for the intermediate label, with slow openings in most sections. One called the code style unconventional. A 2026 reviewer found the course outdated, citing a 2016 version of Visual Studio.

Most of the 980 ratings are four or five stars, and about 8,000 students have enrolled. The last update was September 2026, and the listing mentions OpenAI API and GitHub Copilot material added in 2025. We would recommend it to Windows beginners who like watching a working program and then trying challenges on their own. If you want real intermediate depth, a Mac-friendly course, or constant live coding, look elsewhere.

Best forBeginners on Windows who want to learn C# by studying finished WinForms apps and then tackling practice problems.
Skip it ifYou are on a Mac, or you want to type code along with the instructor from a blank project.

Pros

  • Instructor answers student questions, reviewers say, and explains each idea in small, clear pieces
  • Plenty of practice: finished example apps to study plus a Programming Challenges section with 149 lectures
  • Covers recursion, sorting, searching, graphics and animation alongside C# itself
  • Updated September 2026; newer material covers WPF, the OpenAI API and GitHub Copilot

Cons

  • Most apps are pre-built and explained afterward, so there is little typing along from a blank project
  • Labeled intermediate but starts at beginner level, so experienced coders must skip ahead
  • Windows only, and a reviewer says it still uses a 2016 version of Visual Studio
It is a very good class for beginning programmers as it covers not only C# but techniques and algorithms. There are thorough explanations and the instructor is very responsive to questions.
Frank G, a student

Listed as intermediate, but it really suits beginners and early learners. Most sections open with basics that experienced coders will skip.

icon
What you will learn

  • Program fluently in C# using the Microsoft Visual Studio IDE for Windows Machines
  • Understand how to create a basic Windows Form Application ... No Console Apps
  • Understand the basic concepts of Selection, Repetition, Methods and Exception Handling
  • Understand the concepts of Arrays (one,two,three dimensional), Random numbers,Object Oriented Programming, String handling
  • Understand the advanced concepts of Recursion, Sorting and Searching Techniques, Database Programming using SQL, Graphics and Animation Techniques
  • Apply the programming skills learned to create meaningful computer applications from the world of Business, Science, Math, Cryptography, Graphics and Gaming
  • Create Business applications which incorporate sorting, searching, data analysis and connecting to a database
  • Create Science applications which incorporate probabilistic and deterministic simulations
  • Create a Geography app which incorporate table lookups (searching) to determine the distance between two cities or the telephone code for a country
  • Create Math app that illustrate the hidden pitfalls of computer arithmetic in the real world, and applications that solve mazes and puzzles using recursion
  • Create Apps from the world of Cryptography which validate Social Insurance #'s, VIN, ISBN numbers and also create applications which code and decode messages.
  • Create Graphics applications which incorporate drag and drop events
  • Create 2d Game Applications which incorporate flicker free animation and allow the user to use the keyboard and mouse to control movement.
  • Fully appreciate the wide range of applications that the study of Computer Science provides.
  • * NEW * Create simple applications using the UI Paradigm Windows Presentation Foundation (WPF)
  • * NEW * Extend the idea of coding and computational thinking by solving a series of advanced problems (CHALLENGES) from a wide variety of disciplines.
  • *NEW 2025 * Learn how to integrate the OpenAI API within a WinForm App by implemeting the OpenAI .NET Library (NuGet Package)
  • *NEW 2025 * Learn how to leverage the use of GitHub Copilot (AI) within the Visual Studio IDE

Course content

15 sections · 261 lectures · 31 hours of video 13 quizzes, 1 assignment, 148 articles

  1. 1Course Information 2 free previews3 lectures · 23 min
  2. 2The Basics Extended 1 free preview20 lectures · 1 quiz · 5.5 hours
  3. 3Handling Exceptions1 lecture · 1 quiz · 14 min
  4. 4Advanced Array Applications7 lectures · 1 quiz · 2 hours
  5. 5Mathematical Applications 1 free preview3 lectures · 1 quiz · 42 min
  6. 6Advanced Probabilistic Simulations5 lectures · 1 quiz · 1.6 hours
  7. 7Object Oriented Programming4 lectures · 1 quiz · 1.1 hours
  8. 8String Applications 1 free preview7 lectures · 1 quiz · 2.1 hours
  9. 9Introduction to Recursion3 lectures · 1 quiz · 59 min
  10. 10Sorting and Searching 1 free preview9 lectures · 1 quiz · 2.7 hours

Who it is for

The instructor says it suits

  • This course is meant for individuals who are somewhat familiar with basic C# syntax or any other programming language but who would only consider themselves slightly above beginners. This programming course is meant for ANYONE WHO WANTS TO LEARN TO CODE . We cover C# syntax but more importantly we introduce the problem solving skills necessary to convert practical problems to solutions in code. Th
  • Not sure you have enough background to take the course ? Then I would recommend taking my first course "C# Programming for Beginners: The First Steps" before attempting this course

What you need before you start

  • All course material (demos, notes) will be available for download during each individual lecture. The only software required to start the course is the free version of Microsoft Visual Studio Express or Community Edition for Windows (link provided in intro lecture)
  • Our focus will be working with Visual Studio on Windows machines... Unfortunately NOT MAC computers

How it compares

Against the other 194 rated Udemy courses in C# on CourseDuck:

  • Rating4.6 out of 5higher than 76% of them
  • Reviews980#74 of 195 by number of reviews
  • Length31.3 hourslonger than 96% of them
  • Last updatedSeptember 2026more recently than 98% of them

icon
Course Description

Students will learn to create their own computer programs using the C# programming language. This programming course is meant for ANYONE WHO WANTS TO LEARN TO CODE. Of course we cover C# syntax but more importantly we introduce the PROBLEM SOLVING SKILLS necessary  to convert practical problems to solutions in code. You get paid for solving problems everything else is just a technicality.

Our focus will be working with Visual Studio on WINDOWS machines .  All coding examples are fully compatible with the LATEST Visual Studio Edition (As of 2026 Visual Studio Community 2022 and Visual Studio 2026 Insiders) for WINDOWS . Unfortunately they are not MAC compatible.

A language like C# is typically learned "in a vacuum," and stripped of potentially distracting visual elements or front-end graphical interfaces. This type of learning process  which is considered the standard approach  is great for communicating the fundamentals. It allows you to focus on the most important and basic programming concepts you will need to understand, and is often presented through the output of a static, text-based console window. However, learning a language in this console vacuum can also be bland and boring, and can often lead to students becoming disengaged entirely.

Students are more likely to remain engaged by learning how to build Windows applications from day one in tandem with learning the C# programming language. Therefore, my lectures are designed to keep you engaged with the process of learning C# fundamentals by presenting them through a series of lessons aimed at creating simple, Windows Form based applications.This course, by jumping right into apps with a Graphical User Interface, allows the learner to feel like they are learning concepts that produce a tangible result. 

The first section of the course serves as a primer or refresher to get everybody up to speed.This course assumes absolutely nothing about what you already know, and skips no steps in getting you to know Windows Forms. It walks you carefully through every possible feature you can imagine, and has in its source code hundreds of existing projects you can learn from, or expand on to make your own project. It's worth sifting through a dozen mediocre Udemy courses to find a gem like this. It's pretty close to a one stop shop for taking you from knowing nothing about WinForms, to building your own applications.

This course has more hours of video instruction (30 + hours) , lectures (200+) and exercises and supplemental resources (400+)  than virtually any other Introductory C# course offered on Udemy.  All for one low price.

Students will be exposed to all the stages in software development and develop problem-solving skills as well as learn the syntax of the C# language.

The challenges/applications are drawn from a variety of situations in the home, school and workplace. They address a wide spectrum of interests including:

  • Business

    • sorting

    • searching

    • data analysis

    • connecting to a sequential and relational database (SQL)

  • Science

    • probabilistic simulations  (using random numbers)

    • deterministic simulations (using concepts from physics and math Plinko Game )

  • Social Studies (Geography)

    • Distance between two cities Table Lookups

    • Country Telephone codes

  • Math

    • hidden pitfalls of computer arithmetic in real world applications

    • famous mathematical algorithms and their applications (Euclidean Algorithm)

    • solving mazes and puzzles using the concept of recursion

  • Cryptography

    • validating codes like SIN (social insurance numbers) , VIN, ISBN

    • coding and decoding messages using classical encryption techniques

    • a peek into more advanced techniques (Steganography)

  • Graphics

    • creating a program that plays a classical memory game on a 4x4 grid

    • creating applications utilizing drag and drop events

  • Gaming

    • animation basics

    • using a back buffer (double buffer) to improve flicker

    • creating simple 2d games using keyboard and mouse movement and incorporating sound effects

  • AI (New Mar 2026)

    • Learn how to integrate the OpenAI API within a Windows Form App by implemeting the OpenAI .NET Library (NuGet Package) ... which provides a convenient way to access the OpenAI API.


My goal is not just to show you how to program, but to help you understand what you are doing, and why you are doing it . But,having said that, I will try to present the material in such a way that we don't get too hung up on rigid standards. Once you get a feel for the material you could certainly get more serious and take a university or college course or take a more advanced online course.

Not only do the videos show you how to become a programmer in great detail, but each time an important concept is taught, I offer you a challenge that is designed to help you really understand what you have just learned.

You will go away and complete the challenge, and then come back and see the challenge answered and explained in detail in the video, allowing you to check your results!  I am online daily to respond to any problems you may encounter. 

Here's how I will help you to succeed:

o    Each lecture starts with a list of objectives or speaking notes

o    Every example covered in the lecture is available for download in the resources section  including the objectives or speaking notes

o    Almost every lecture has a set of Practice problems with full solutions provided

o    My writing and teaching follows the KISS principle : Keep It Super Simple.   I try to stay away from fancy computer terminology and try to teach like am speaking to a brand new user with little to no previous knowledge on the subject matter and  I am always available for help replying most times within a day.

This is NOT a static course, updates are made several times a month, with new Lectures and Challenge Problems (130 + as of Mar 2026  fully solved)  added on a continual basis.

Consider this a first step in the process of learning C#, with the Challenge problems reviewing and extending the concepts covered in the course.  Below is a sampling of the topics touched upon.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Charlie Chiarelli

Hi, my name is Charlie Chiarelli. I'll be your teacher for this course. I will spend as much time as necessary to help you do the best you can. But, for you to succeed you must be willing to work .

I  am a retired High school Computer Science and Mathematics Teacher from Canada. I taught for  35 years,  I have a BMath degree from the University of Waterloo.

I was a frequent speaker at educational conferences (ECOO)  and seminars . Most recently my talks focused on  E-Learning and the future of education (Flipping the Classroom).

I was the school webmaster and served on a number of school board committee , recently advising my school board (Hamilton Wentworth Catholic District School Board)  on its online learning direction. I was also the contest coordinator for the Annual Programming Contest for the past 15 years.

For the last 7 years before I retired I was in the unique position of teaching most of my computer science  classes entirely online using the D2L LMS. Because of low enrollment  and lack of qualified computer science teachers I became the "board" teacher. So my virtual class was made up of students from various schools in the region.

icon
More courses by Charlie Chiarelli

$12.99

$84.99

$59.99

icon
More C# courses

$84.99

$13.99

$64.99

$19.99

$12.99

$84.99

icon
Reviews

4.6

980 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Zhantemir Mukanbetkaliyev on 12/30/2023

Mr. Chiarelli truly does a great job in breaking down whole complex topics into simple bits that are easy to understand. The scope of this course is undoubtedly well round, teaching you a wide variety of actual skills in programming with C#. The most of the content in this course is focused on exploring instructor's own example applications, with the least on writing plain code in the real time. I would be thankful if the course could focus more on the later, because I find writing code with the instructor more beneficial for hands-on learning. Nonetheless, I'm grateful for all of Mr. Chiarelli's work, definitely looking forward on taking another course of his on web development with C#.

By G L on 6/18/2023

I highly recommend this course for either the absolute beginner or anyone who has a modicum of development experience. Charlie breaks down each concept to its most basic parts and presents explanations and demonstrations in crystal clear detail. I am a developer with many years of experience who transitioned from mainframe programming to OOP via VB.Net many years ago. I was intrigued by this course because it covers recursion and Windows Presentation Foundation (WPF). I was scared off by recursion when first learning OOP (VB.Net) because the expert who was hired on at my place of work to train us made it look big and scary. Charlie's presents the concept in an absolutely easy to understand manner that, although I need some practice to fully comprehend the mechanics, I no longer view recursion from a distance as something to avoid. The simple games and coding keys to control an object on the screen were interesting concepts that introduce more intermediate concepts in development. I especially enjoyed the WPF portion of the course as I've endured the "pain" of the old WinForms in development. To reiterate, Charlie's explanations are well thought out, are presented at a deliberate pace, and are well organized. I think Udemy should require all instructors (current and future) to watch at least one of Charlie's courses in order to understand how to properly present information. I've quit two courses part-way through because the instructors are too eclectic in their presentation, don't prepare with a plan, and ramble off topic. In other words, they just "wing it" without consideration for the student.

By Steven Gonzales on 7/24/2020

Im really not sure why this, and all of Charlie’s courses really, don’t have more students enrolled. You can really see the difference in the presentation in courses tonight by software engineers versus actual teachers. There is a very noticeable content quality difference between the two. Disregard the negative reviews because they are clearly prior to course completion. This is by far one of the best presentations on C# especially for beginners

By William Lowry on 6/26/2019

Array subscript zero is always used in professional programming. I think he is doing a disservice to his students by not getting them use to that. The language, such as the foreach command is geared to use subscript zero. The math is a little different, but not much. Students need to get use to that. In this last lesson he referred to subscripts as pointers. C# does support pointers and they're not subscripts. Pointers are addresses, and in C# are considered unsafe. I think the students will become confused when they run into pointers in real C# code or documentation and they are different than what is being taught.

By Philip Tate on 10/26/2018

I previously did the old 2014-2015 learn unity through c# course. Which is excellent but left me i felt without core understanding of c# terms and concepts though I can code in it I cannot communicate in it. And it did not leave me knowing how to apply code outside of unity fore instance how i could use monodevelop to answer codewars challenges. So I chose this course because I was engaged enough, had learnt that i love coding that even if it was less creative and exciting (its hard to compete with making games) it would be far more focused on the core learning i want which is c# and wouldn't be slowed down by having to learn or fiddle with an environment like unity. (which i can do now and love form the other course). The description of the course is good and it is currently achieving these things. It is aimed at Teens but I see no reason for that as I am 31 and think it is perfectly accessible. I think it may be particularly good for teens in that they may want (or someone else may want them to) learn coding and it is very much done in an a way that fits my positive experiences of schooling. So it probably would fit nicely for being run as an afterschool thing or homeschool thing. I feel with this and my previous course it is worth cross referencing the terms with other websites just to reinforce it and unlike my previous course you could sit back and coast so it is worth making sure you go through and fiddle with all the application you are given and do the tasks set. I'm particularly impressed that we receive finished or part built programs so that you can get straight to the coding aspects. Once my previous course sucked me in I feel i would of benefited from this so the focus was the c# rather than the game making. So i feel the balance its good you will learn how to make applications and visual studio but wont feel slowed down by it. I like the person running the course, I like their material, I like their voice which i think is important when you are watching videos and often rewatching bits. The presentation is more likeable teacher than entertainer. And it is a course that you need to motivate yourself which is why I give it a 4 not a 5 as my last course which was produced by a company not an individual was a bit higher spec in the delivery and using discussion boards etc. But do consider I'm rarely a straight to five stars person because I want to know when i look at reviews if they are outstanding, or good or average not just if they were average-outstanding or awful.

By Szpori .Kurek on 6/4/2018

I feel like this course is a little too easy, because it's always a very small applications we are building, so you can't really feel like a true developer. So far my favourite approach of an udemy instructor is this of team Gamedev.tv. They also like Charlie have very application driven approach and most of all, they show how to make diffrent components of the entire project working together, making the entire project really playable and often interesting. So in my opinon like another section, focused entirely on making complex app would make this course stand out and more importantly, truly NEAT.

By Tim Newton on 11/16/2017

So many of the classes on a programming language focus on command line instructions; fine but programmers want to build something they can deliver. This course, by jumping right into apps with a Graphical User Interface, allows the learner to feel like they are learning concepts that produce a tangible result. However, it's not really an "Intermediate" level programming class; it's more of a "Beginner to Intermediate" class as the instructor introduces a lot of programming and OOP basics. If you're an experienced programmer wanting to jump into C# and learn a GUI approach, you'll find yourself having to skip over a bit of the initial content content (or at least play it at 2x). Having said that, once you're past the "Basics" area, you will get into more intermediate subjects such a animations and graphic drawing, event handling, SQL database integration, file I/O, and XAML. As a programmer with 40 years experience, I found enough content to see me through the entire course, however new programmers will also benefit from the teacher's easy teaching style honed by his 35 years of experience teaching high schools students.

By Gabriel Campbell on 8/27/2017

The best introduction to Windows Forms Applications I have seen anywhere. This course assumes absolutely nothing about what you already know, and skips no steps in getting to know Windows Forms. It walks you carefully through every possible feature you can imagine, and has in its source code dozens and dozens of existing projects you can learn from, or expand on to make your own project. It's worth sifting through a dozen mediocre Udemy courses to find the gems like this. It's pretty close to a one stop shop for taking you from knowing nothing about WinForms, to building your own whole application. I'd say that this course manages to do for WFA what Ben Tristem's Game Dev course does for Unity. Don't think it's only for high school kids either just because the instructor is a high school teacher and it seems kind of aimed at them. I'm a 26 year old CS student changing careers and this course as been great for me. It is also teaching C#/.NET basics as you go, but don't think that because of that it will be too slow for someone who already knows C#, but is new to WinForms. The lectures are generally split between C#/programming concepts, and WinForms stuff, so you can just skip the intro to programming parts of any given lecture if you are already a C# dev looking to learn Windows Forms.

By Chris Kirchenbauer on 12/22/2016

Maybe 20 years ago I taught myself C, later C++. It is so much better to be able to learn through the Udemy environment. Charlie has put together a thorough range of topics and provides dozens and dozens of sample programs and applications. His passion for programming really shows, confirmed through the emails with links to important ideas he occassionally sends to his students. His explanations are clear and concise. Every lesson adds insight and clarity to the language, including tips for making the code organized and readable. I highly recommend this class for anyone interested in learning C#. I have already applied several ideas on a project I am currently developing.

By Daniel Tkach on 8/29/2016

First word that comes to mind to review this course: WOW! I achieved so many things I needed to do for college and work (as far as programming jobs and homework) I'm really amazed I could learn to program the stuff I did and that fast. The reason is the instructor of this course is so clear and transmits his knowledge so well, highlights key points so well, that I could realize how to carry over my programming projects right away. It definitely shows that he is a teacher by profession and calling, I'm saying this because at least with me he did the job a teacher should do, make the student learn. I bought other courses here but I really did not learn much, I was put to sleep mostly because they were repeating things from a book. Now I realize it was not my fault really, because this course kept me engaged and motivated to move on. This is definitely a course like no other in Udemy. I love the fact that most lessons are long, 20 minutes, this gives the feeling of being at a real class face to face. The instructor is not lecturing but teaching. The additional material, exercises, is very thorough. The lesson plan is well thought. The topics range from very basic to a good intermediate level and they include some stuff that you don't even find in books, I know because I tried read quite a few of them. He answers questions right away and very thoroughly, I feel a bit ashamed about how much I paid for it, it's already more value than what I expected. I bought a few other programming courses here but they don't get even close to the quality of instruction of this course for all the reasons I mentioned above. I wanted to write this for two reasons: to thank the instructor Charlie, and to tell you reader don't miss this course, go ahead and get it.

Great course! One of the best courses on udemy for c# programming.

Great and easy to understand lessons. My 8 year old twins can understand some of the lectures.

Showing 12 of 95 reviews

icon
Quality Score

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 92 / 100