What You Will Learn!
- Find, download and install Visual Studio 2017 Community
- Describe a console window
- Create and run a simple c# program
- Describe the purpose of the Console class
- Understand how to use class methods
- Understand the concept of a method as a behavior or an action that can be performed
- Describe the purpose of the .NET Framework library
- Use the object explorer in Visual Studio
- Describe the concept of a class member
- Describe the purpose of the dot member access notation
- Explain what it means to call or invoke a method
- Give examples of method arguments
- Define the concept of a string in C#
- Understand the concept of a data type
- Understand the consequences of data casts
- Describe how string interpolation works
- Describe the purpose of the .NET Framework
- Understand how to use the debugger
- Understand how to use the locals window
- Understand how to use the call stack window
- Describe how to use implicit methods
- Understand the difference between parameters and arguments
- Understand the meaning of the word public
- Describe how to use a name space, class name and method name using dot notation
- Understand how to use the Concat method
- Understand how to ensure that data types do not clash
- Describe an example of when an implicit data cast is safe
- Understand the consequences of making one change and ensuring that the code is properly fixed
- Understand how to use Visual Studio tool tips to help with resolving error messages
- Understand where to find the object explorer and how to find class details using the defintion
- Understand how to read /write numeric values
- Understand how to nest methods
- Understand how to decipher error messages and trace them through the .NET Framework
- Understand how to use properties
- Understand the concept of an enumeration and how to use it
- Understand the concept of a logical condition
- Understand how to make decisions with logical conditions
- Understand how to use methods with if/else
- Understand how to use ++x, x++, x+=2 and other compound operators
- Understand the motivation for while loops
- Understand how a while loop actually operates
- Understand the motivation for a for loops
- Understand how to create a variety of for loops
- Understand how strings behave in memory
- Understand the mechanical execution aspect of a loop
- Understand how to use for each loops
- Understand how to nest if inside loops
- Understand how to use linq methods like sum, average, min and max
- Understand how to use the ForEach method on lists
- Understand the concept of a generic list
- Understand how to combine try parse, while, and lists
- Understand the operation of a basic ternary operator
- Understand how the ternary operator can be used with method calls
- Understand how you can rewrite more condensed code from long-winded code
- Understand how to control the header of a for loop and how to change it meaningfully and with control
- Describe why switch blocks are needed
- Explain how switch blocks operate
- Understand how C# handles division by zero
- Understand why and how to put code under switch block case labels
- Understand how to use the logical and operator with simple values
- Understand how to use the logical and operator with methods
- Understand how the logical and operator executes, step by step and how it short-circuits
- Understand the prototypical operation of the basic or logical operator
- Understand how to use the logical or operator in an application
- Understand how to use while(true) (infinite loop), break and key inputs like the Escape key
- Understand how to create methods with void return types
- Understand how to create methods that return a value
- Describe the concept of matching data types when methods are created
- Describe the concept of the call stack and how methods load and unload from memory
- Understand how parameters function as local variables in methods and where parameters can and cannot be reached
- Understand how to use modern C# switch blocks
- Use methods from the Math class like DivRem
- Understand the difference between % and / in the context of integer division
- Understand how and why to use try/catch blocks
- Understand the concept of a null-reference exception
- Understand how to catch null reference exceptions
- Understand how to use the word null in logical comparisons
- Understand how to create and use a method with a string parameter/ return data type
- Understand how to use hard coded values to understand the operation of if/else blocks better
- Understand how to call a method with a null value and how to protect against the consequences
- Understand how to create a method with a List<double> parameter
- Understand how to return an IEnumerable<int> from a method
- Understand how to call methods in a variety of positions in the code, including foreach loops
- Describe how to create an array
- Describe how to read a value from an array using array access notation
- Describe how to assign values to an array using array access notation
- Understand how to use the params keyword in method headers
- Understand how to use a foreach loops to produce a sum of values inside a method
- Understand how to use a foreach loop to produce a product of values inside a method
- Explain the meaning of a reference variable in the context of arrays
- Explain the meaning of a reference variable in the context of lists
- Understand how to create an array using a for loop
- Understand how to read an array using a foreach loop
- Understand how to print an array backwards using a for loop
- Understand how to define an array of arrays (two dimensional case)
- Describe why two for loops are needed to print the entries of a two dimensional array
- Understand how to code up the data types needed in nested foreach loops
- Understand how reference types like arrays and lists behave in memory
- Understand how to set the value of a two-dimensional array using for loops
- Understand how to create a jagged array
- Understand how to display the value of a jagged array
Description
Very Important:
1. Friends, please take the time to review the curriculum carefully before buying so you can see exactly whether this is the right course for you. Please do not join until you have completed this step.
2. Please watch the free preview videos so you can see whether the presentation style works for you. Please remember I am just one person, and I make my videos often after I have been working for many hours already. PLease do not join until you have completed this step.
3. If something needs fixing, please let me know. Again, I'm just one person and not a big team of people. I will try to fix it as quickly as possible. Thank you.
Course Overview:
1. This course consists of standalone examples designed to illustrate specific skills. There are no big applications built in this course.
2. You must use Visual Studio 2017 to be sure you have the latest version of C# running. Lower versions of Visual Studio will cause errors because newer programming elements will not be found.
3. This is a beginners course, but I do not spare the details, even when they are very technical. This means in a few videos I show you the .NET Framework source code. I do this because it's important to look at things as they actually are, and not at an artificially simplified perspective.
4. I talk fairly slowly in some of the videos.
5. If you feel the way I talk is too slow for you, please watch at 1.25x, which you can set easily on the player.
6. I made the videos in 1080p HD. If you have trouble with the resolution, please try reloading the page a few times.
7. This course covers C# through console programs only. It does not have ASP.NET, Windows Forms, MVC, .NET Core or anything like that.
8. There are questions throughout the videos. At those times, please pause and try answering them. Success invariably results from understanding how the many small and intricate pieces of anything fit together. This takes time, consistent effort and a willing to push yourself. Success is the result of a whole-hearted effort, exerted daily and consistently. This is what years of struggle have taught me:)
9. The videos are just coding videos done in Visual Studio Community 2017. This is the free version of Visual Studio.
10. This is a course dedicated to code only, so you do not see any of the following: a talking head, PowerPoints or fancy graphics. To me, these are distractions that shift focus away from the things that truly matter.
11. Exercises start in video two. I have overlays embedded that say "Pause and try this: ...", with the specific question in place of the ellipses.
12. In some of the videos, there are several questions because I guide you through building a bigger piece of code.
13. Some of the videos don't have any questions.
14. All the code is written from scratch in the code editor window in Visual Studio Community 2017.
15. In some of the videos, I use the debugger to step through the code, line by line, and intricate detail by intricate detail.
16. I talk frequently about reading the various tips that show as you type in Visual Studio. You must learn how to read them because they provide valuable information.
17. In some of the videos, I show you how C# looks in your computer memory. You must look at the memory of your computer to truly understand what's happening. Just reading messages in the console window is not the same as truly understanding what they mean.
18. In some of the videos, I zoom in on various things I feel need special attention.
19. For the hearing-impaired, closed-captions are added automatically. I do not have control over those, so they might not be perfect.
On a personal note, I can tell you only that it is through consistent, WHOLEHEARTED effort, that something technical like a programming language can be learned. That's what I have learned from years of struggling. I would urge you to embrace this philosophy because it's a very powerful. I hope you will find great value in this course. Thank you for reading, and I will see you inside!
Tom
Who Should Attend!
- People who are interested in C# should take this course.
- People who are new to C# should take this course.
- People who feel it's valuable to pause at times and try an assignment or a mental exercise before continuing.
- People who understand that the average video length is about 7 minutes should join.
- People who like fast talking should not join.
- The vast majority of the examples are standalone.
- When I say beginner, I don't mean that in an overly simplified sense.
TAKE THIS COURSE