
First thing first, let's make sure you are aware of the minimum system requirements to install Visual Studio on your machine successfully. The good news is they should not be crazy with the power of personal computers these days!
In this video, I'll walk you step-by-step from locating the bootstrapper file on Visual Studio website through to how to install the software on your local machine. You'll see how you can select which components (called workloads) to install so you don't have to load up stuff that you won't need on your computer (yet).
What is one of the primary changes after installing Visual Studio? I will answer that question in this video. I will also show you what it looks like to open Visual Studio for the first time and how you can add or remove workloads even after installation.
Let's do a fun task before we officially commence the course.
In this video, I'll create our first project and explain step-by-step all the options. Then, we'll quickly test by outputting a sentence to the console window. All will be done in less than 3 and a half minutes.
This video will show you instructions for the first exercise.
In this video, I will walk you through the solution for the first exercise.
This video is about explaining all the project's components. After this lesson, you will understand the meaning of every section, item, and folder in a console application project. Later, you can find a similar structure in other types of projects such as web application.
Before picking up C#, it is essential to have a good understanding of the tool which facilitates it! In this video, I introduce you to Visual Studio 2017 and what we will learn in this module.
Let's talk about the Start Page that appears as soon as you open Visual Studio. There are several things you can do on this page. Some are obvious, others, not exactly so.
The Main Menu in Visual Studio contains all the operations that you need to build, test, analyze, share your program and more. You will learn about the most common actions that you will likely do many times and how to locate them. I will also show you where you can customize your settings like changing the color theme and hundreds of other different items.
When it comes to the Code Editor in Visual Studio, IntelliSense is the biggest deal. I'll also mention things that are not IntelliSense but are also important to be aware of.
In this lesson, we talk about Tool Windows. They are panels that organize various information related to your current project.
Another important thing in this video is what you need to do after 30 days to continue to use Visual Studio Community (don’t worry, it is still completely free for you).
We will practise working with many settings and tools in Visual Studio together via a series of mini tasks.
We'll do more tasks together in this exercise.
To continue with the rest of the exercises, download the "Exercise_GoogleSearch.zip" project, unzip and open it in your Visual Studio. I'll walk you through the key areas of this project in this lecture.
We'll continue to work through the remaining tasks based on the Google Search demo project.
In this bonus exercise, I will work you through productivity tips in Visual Studio that even some developers working in company may not know. Trust me, you will want to do these exercises!
In this lecture, I'll talk about how I work with the CSE API in our project.
If you want to run Google Custom Search project in your local environment, I'll walk you through how to obtain the credentials to get this search up and running!
In this quick video, I'll go through what we will cover together in this module about compiler and assembly.
In this video, I will explain how the compiling process works to convert C# code to native machine code that executes our program.
Also, I will briefly introduce you to the Developer Command Prompt, which is a tool installed along with Visual Studio. Using this tool will give you full control over the build process. If you like command prompt, this will click with you!
When working on a real-world project, there is often a need to add a reference to an external library to perform specific tasks without rewriting the code ourselves. In this demo example, I will show you how to add a reference to a library project (dll) via an example. The library contains a method that will accept a user's country and responds with the word 'Hello' in the language of that country.
You will work on adding reference to a project and library in this exercise. We will use a virtual email sending application to practise this skill.
After completing your tasks, watch this video to compare your solution with mine.
In this introductory lesson of Keywords, I talk about their main characteristics in C#. I will also explain the approach we will take to cover the entire module which can be overwhelming if we try to discuss everything one-by-one.
C# groups keywords into categories based on their purpose and characteristic. In this video, you will learn about the regularly used keywords in the following categories: Types, Modifiers, Selection Statements and Exception Handling Statements. As you become a C# developer, you will use them regularly, or if I may say: all the time.
We continue to go through the next three categories, which are Namespace, Operators and Access keywords. Similar to the last batch, these keywords will be used very often. In fact, some of them will present in every single future program you write.
Disclaimer: Ignore the thumbnail image. It's not what you think. :)
This is the final lesson in this module, and I will cover the most common keywords under Literals and Contextual categories. I also exclude two groups which I believe you shouldn't bother to remember at the beginning (watch the video to know why!).
In this video, I give you a quick overview of data types in C#. There are two main types: value and reference. We will cover all of the available data types, except one (you'll see why).
I also explain what a variable is. You will walk out of this module, having a thorough understanding of these foundational, yet profoundly important features if you want to design your program like a pro.
In this first lesson about Simple Data Types, I explain what signed and unsigned integrals are and how they are expressed in C#. After this lesson, you will understand the meaning of a type's range and size attributes. As a result, you can make the right choice when selecting data type for your program.
We talk about Floating Point, which includes 'float' and 'double', and High-Precision Decimal. I will explain the key differences among these types and more importantly, how they should be used in building real applications. This will likely be a very useful lesson for you.
The last two simple data types are 'char', which is used to store a single Unicode character and 'bool' to represent true or false values. They are straightforward, but that doesn't mean they are less important. So, let's go get them in this lesson!
In this lesson, we continue to dive into other common value types in C#: enum and struct.
We will now talk about nullable value types, which is used so frequently that I reckon you just cannot ignore them!
I also reflect on one thing about the way data types are designed in C#. By having an understanding of the language's design, you will understand why the code is often written in a particular style. In short, this lesson can give you an 'a-ha' moment.
In this lesson, I'll provide an overview of C# reference types. These are fundamentally different from value types. I will explain some major design decisions that the Microsoft's .NET team made so you can have a better understanding of why things appear the way they are.
In the world of programming, programmers often distinguish between local and global variables. I will clarify what a local variable is. On the other hand, I will talk about global variable in C#, how it can be created, and advice for usage.
Before talking about the most significant reference type: class, I will discuss about access modifiers because they are directly related. If you remember, I have mentioned access modifiers in the Keywords module. Now, it's time to go deep dive.
Now let's talk about class. After giving you the definition and some examples, we will create a project in Visual Studio which will host our first class. This will also serve as the demo project for subsequent lessons.
In this lesson, we talk about Field. It is important to understand Field so that we can continue to discuss more advanced concepts later. We will also start creating fields for our demo project.
We now talk about Property, which is a more practical way to define class' attributes. I also discuss how Property can safeguard private data Field through what we call: "accessors." After this lesson, you will start to see how to design a class to protect the data inside.
So, this is gonna be a practical lesson. I will provide some tips that will give you more options to design your class' attributes. In addition, I will share with you how programmers declare fields and properties in real-world projects. You may want to take a note on this one!
The point of creating a class in the first place is to instantiate objects out of it. In this lesson, I uncover what an object is and its relation to class. I also talk about class constructor and how it can be invoked when you create an object. As you may expect, we will learn by writing code for our demo project.
In this lesson, I will explain to you what constructor overloading is and demonstrate the usage by adding two Marvel (MCU) movies. Another topic in this video is composite format string. I will show you how we can use this syntax to create dynamic-valued strings and even specify format like what we will do with movie's release date.
To wrap up this section, your exercise is to design properties, fields and constructors for multiple classes of a simple online bookstore. I will explain what you need to do in this video.
Let me show you the solution of this exercise. FYI: It's totally okay if you have not quite mastered this skill yet. :-)
We talk about Array in this lesson. Array is another reference type and is a simple way to store and manage a group of related objects. As an introduction to this topic, I will discuss three array types in C# and how they are utilized in real-world projects.
In this video, we will write some code together to add an array of actor names to our Movie class. You will see how to work with Array when writing C# code. I will also show you how to use the array initializer syntax to instantiate an array with values if you already knew them beforehand. After that, I will point out the limit of Array and what can be a good alternative.
Collection is a better alternative to Array due to its built-in methods that programmers can just call to manage a group of objects dynamically. In this lesson, I will give you an overview of Collections in C#. We will also modify the demo project to replace the existing Array with List<T>, a commonly used collection.
We continue to work with List<T> in our demo project. I will also show you how you can look into the inner details of a .NET construct, using List<T> as an illustration. You can uncover a lot of interesting stuff in there! Then, we finish up our example by adding actor names to the List, and use a LINQ (Language Integrated Query) method to display all elements using a one-liner.
To wrap up the Collection topic, I introduce to you some of the most useful Generic Collections. You will also see why I appreciate Microsoft for creating all these collections for us programmers. It makes our lives easier! And finally, I answer the question why there are many types of collections available in C#. See you in there :)
In this video, we talk about Method and its main characteristics. Then, I will demonstrate by putting the add actor names code into a method. This lesson is foundational but important so we can continue to discuss more significant aspects of Method in later lessons.
In this video, I emphasize the point of creating methods in your program to reduce code duplication. I do so via an example of our demo project. The key takeaway in this lesson for you is: creating a method may take a little bit of extra time, but it sure is worth your effort later down the line.
In this lesson, I introduce to you another basic but get used a lot in C#: Method Overloading. You will see this feature in action by writing code to support multiple ways of adding actor names to the List<T> collection.
P.S: If you are a fan of Marvel movies like myself, I hope you are having fun while learning :)
C# (CSharp) is the most popular programming language in the Microsoft Technology stack. It is a general-purpose language that can be used to write almost anything, from desktop applications, websites, web services to native mobile apps and even games. It is also a powerful, yet elegant language thanks to its well-thought-out design. On top of that, C# keeps getting new features added on a regular basis because it is backed by Microsoft. No wonder why C# is consistently among the most in-demand programming languages around the world for many years. In August 2018, it is at number 5 according to TIOBE and PYPL (websites that keep track of programming languages' popularity).
So what is the catch? Although it is an awesome language to learn and will repay the investment, the learning curve can be steep. Sure, a person with no programming experience probably can create something using C# easily (thanks to out-of-the-box templates), but it is not necessarily done right. Therefore, to help you to properly learn C#, I have distilled all the most important aspects into this 5.5 hour course, which I have spent more than 600 hours to create. This is to assure you about the course's quality.
What can you expect from this course?
Exercises! Yes, there will be various exercises including quizzes, coding and even software design exercises to help consolidate and practice what you have learned. The best part? I will keep releasing new exercises on a regular basis. So, you will have access to additional content regularly without any extra cost!
This course has the right mix of theory and practice.
You can find plenty of practical examples throughout the course.
You will find many tips and tricks that I have accumulated throughout my seven years of programming experience. You can then immediately apply that to build your own application more easily.
You will see how I apply professional programming's best practices to build an application.
I explain many important concepts in a very detailed manner to make sure you completely understand what needs to be understood.
The course has high-quality production, both video, and audio (you should not take this for granted ;-)).
It gets really fun in many places. Let's put it another way: I think this course will make you laugh!
Last but not least, you can always reach me at tim@codestrengthen.com for any question, feedback and even idea for my next course.
After completing this course, you will have a crystal clear understanding about the fundamentals and important concepts in C#. You can confidently apply many techniques to create your first simple C# application professionally. If you are worried/challenged/daunted by the vast features of C# before and not sure how to start, I am 100% guarantee that it will come to an end after you finish this course.