A high level programming language meant to be useful for different types of applications. The functionality of C# is huge; how do we learn it then?

C# is Amazing:

Like all programming languages, they have the basic variable initializations, loops, logical operators, and comparison operations. I expect you to know how to do the basics already... I'm kidding! C# has so much functionality that you can practically do anything you wanted to do. All you need is some imagination, willpower, and a computer to start. The syntax for C# is very similar to Java. So if you know some Java, you're off to a grand start! In terms of importance, C# doesn't really have any advantages over other programming languages, but it's actually much more complicated to master because of the availability of professionals willing to teach C#. The other programming languages are useful, cross-platform, and have many more resources. However, C# is still an amazing language to learn and hopefully with the new Mono project, we will see more cross-platform for C#.

Learning Resources and Videos:

The best way to learn C# is to start programming. You can start off with the community version of Visual Studios. Here is a download link for you. Once you download and finish installing the software, you are very well on your way to mastering the basics. I suggest you change the workspace folder  to something you can remember and create your very first project! The most basic application you can start with is a console application. As you can see when creating a project, there are so many project templates to choose from! 

Once you choose a project template, head on over to the C# API (application program interface) documentation. Isn't it pretty? You can easily read how to use certain functions and get started on writing some neat code. One thing that is also very useful is the Nuget Solution Packager under Edit tab in the software. There you can find packages of code that were created by genius developers that want you to use it for your projects! It is very useful once you get the hang of out. You can even make your own package.

Some websites I find extremely useful for learning the basics of C# are as follows:



Microsoft C# Tutorials

The above links should give you an idea of creating your first application. A video I would suggest for you to get started is this one below:

Reading Documents:

Another useful thing about learning any language is of course reading the documents that come with it. For C#, and other languages, there are libraries, but C# has a ton of them. The best way to learn how to use a library effectively is to read the documentation or ask the developer directly for clarification and help. Sometimes though, the developer is not able to reply, so your only option is trial and error coding. What is trial and error coding?

Trial and Error Coding:

Trial and Error coding is a technique I made for myself where it's almost like unit testing. More info on unit testing here, it's like a debugging software to see how your application handles actual data, inputs, or code. What I do to troubleshoot my code, especially if I'm using an API or library is by encapsulating my code in a try catch statement and customize the excepetion library to output that exact problem of the code. Most of the time, I am able to figure out what's wrong, but sometimes you just have to keep trying different method of writing the code or tweaking it.

Trial and Error coding can also help you with notifying you of variables that are changed. I like to set some boolean flags to help me when I run an operation from my application. If the boolean flag changed to what I expected it to, then that means my code works. If it didn't change or was a different value, then I have to fix something in my logic.

C# Pacing:

To not get overwhelmed with the amount of programming you can do in C#. I totally suggest you try making a few console applications first, then move onto WPF, and then MVC, but if you want to do more mobile things, you can skip WPF and go to Xamarin and then pure Android.

Never do too much in one day, because you won't retain all the information. You should focus on only 3 topics a day. Write down about 5 topics, and see how relevant they are to you with your current skill level of the language. With C#, once you master the basics, you can branch out to many areas of focus. With the 3 topics, I'm certain you will also find many libraries for it and you can master them slowly before moving onto other areas of the topics.

What I do is work systematically and progressively by writing down and taking notes on my programming or project. Then I decide what can be completed next with my current knowledge. Typically, if you have little knowledge on something, just save it for last, because you will need to practice and spend more time on it.

You can also go to website like stackoverflow for help. Do be warned though, stackoverflow is not beginner friendly! They are mostly old people...

Thank You:

Although I didn't teach you code, the next tutorials will have code where I will briefly explain them. I hope this article will boost your love to learn C#!