If you want to know how to develop software using C# and you have little to no experience programming you've come to the right place. This is an introductory course to C# and .NET programming that is the first in a series that will show you how to use these dynamic cross-platform development tools.

In this course, we set the stage in two ways. First, you get an overview of the basic elements of computer programming and fundamental issues that face software development, and how .NET addresses those issues. Secondly, we set up our software development tools on Windows and a non-Windows platform. To test our development environments we create and run a simple C# .NET program.

Learning Objectives

  • Get a foundational understanding of computer programming and .NET
  • Learn how to set up a development environment
  • Learn how to run a simple C# .NET program

Intended Audience

This course is intended for anyone who wants to learn how to develop software using C#


To get the most out of this course, you should have some basic understanding of programming, but it's not essential; this course can also be taken by complete beginners.


The primary aim of this introductory course is to get your software development environment set up. I'll be working in Windows and Linux to demonstrate how to configure the software development tooling for different platforms. The Linux demonstrations are similar to the Windows demos but not identical, and the code we write can be run on either platform.

If you are a Windows user, don't skip over the Linux content because it does build on what you've already learned, and all you can do in Linux you can do in Windows. Unfortunately, the reverse cannot be said. When working in Windows, we will be taking advantage of Microsoft's Windows-specific tooling in the form of Visual Studio.

I apologize in advance to the Linux enthusiasts, but on the bright side, new, more sophisticated, and graphical tooling is continually being developed for Linux. After setting up our development tools, we'll create a simple program to test everything is working correctly. While doing this, we'll encounter unfamiliar concepts that you may not fully understand.

Don't worry if some of these ideas are foreign to you; I'll be explaining them fully in future courses. I'm doing it like this so we can quickly and easily test programming concepts as we learn them. Think of this like learning to drive, where you're getting straight behind the wheel before learning the road rules.

Before we get into writing code, I'll give a brief overview of why programming exists and some of the fundamental challenges facing software development where code needs to run on different operating systems. Then we'll look at how .NET has evolved to solve the multi-platform dilemma with a unified and consistent programming interface across the major operating systems currently in use.


About the Author
Hallam Webber
Software Architect
Learning Paths

Hallam is a software architect with over 20 years experience across a wide range of industries. He began his software career as a  Delphi/Interbase disciple but changed his allegiance to Microsoft with its deep and broad ecosystem. While Hallam has designed and crafted custom software utilizing web, mobile and desktop technologies, good quality reliable data is the key to a successful solution. The challenge of quickly turning data into useful information for digestion by humans and machines has led Hallam to specialize in database design and process automation. Showing customers how leverage new technology to change and improve their business processes is one of the key drivers keeping Hallam coming back to the keyboard. 

Covered Topics