
Discussions:
1. Navigate to the .NET Framework source code
2. Find the Console class
3. Point out how methods like WriteLine are programmatically defined here
4. Emphasize what it means to invoke a method with an argument
Discussions:
1. Relate dot notation to namespaces, classes, and class members like methods
Explore how data types like integers, doubles, and strings behave in C#, and how explicit casting can lose fractional parts or trigger conversion errors.
Learn how to describe an object with multiple data types in C# by modeling a clown with string name, double height, decimal price, and boolean hasUmbrella.
Learn to print multiple variable values in c# by building a descriptive string with string interpolation, formatting price with a dollar sign, and controlling line breaks for console output.
Learn how to use the debugger in Visual Studio to set breakpoints, step into code, and inspect the locals window and call stack as variables update.
Learn to use the Visual Studio 2017 debugger in C# console programs to minimize implicit method calls, inspect format and concat calls, and step through code via breakpoints.
Refactor the code to compute the sum of salaries once using the decimal type and plus operator, then divide by the count and observe currency format rounding to two decimals.
Learn to use the string class Concat method in C# by assembling multiple strings into a single result, using the System namespace and the static method.
Explore how to understand and use basic properties in the console, such as background color and title, via public static properties, the system namespace, and the console color enumeration.
Learn to use the debugger to step into if/else logic, initialize variables, and inspect condition values, enabling you to trace program flow and understand true and false branches.
Employ string.Contains to decide if a string includes a substring, a boolean for if/else. Replace values with variables for flexibility, and observe text found or text not found during debugging.
Explore compound operators in C# by declaring and updating a variable, using post-increment and pre-increment, and applying assignment operators such as plus equals with arithmetic like division and multiplication.
Learn to build a while loop that prints values from 1 to 10 using a loop counter, a <= 10 condition, braces for a code block, and ++ increments.
Create and run a while loop that counts down from a high value to a low value, adjusting the loop counter and condition, and observe reachable code in Visual Studio.
Learn to write and run for loops in C# by printing squares from 1 to 5, comparing with while loops, and modifying to compute cubes for 5 to 7.
Learn how strings are indexed from 0 to length-1, read the length property, and use substring with a start index and length to extract characters and avoid out-of-range errors.
Explore iterating over strings with for loops in C# using index, length, and substring to access characters, and learn rules for starting at 0 or length-1 and reversing a string.
Learn to iterate a string with foreach in C#, treating each character as a char, and use Char.IsNumber, Char.IsLetter, and Char.IsPunctuation to conditionally filter and print numbers and punctuation.
Explore how strings in C# are immutable in memory, using Visual Studio 2017, by comparing memory addresses when applying + and += to reveal new string instances.
Explore working with generic lists in C# by creating a decimal list, initializing with a collection initializer, and using LINQ methods to calculate sum, average, min, and max.
Explore how to apply action to each entry in a C# list with foreach in Visual Studio 2017, using strings and decimals, and operations such as upper, lower, and square.
Demonstrates ternary operator usage with string methods in C# to evaluate input and return a boolean result, then display true or false based on whether a string contains a substring.
Explore how C# handles division by zero, using switch blocks and if statements to output cannot divide by zero when y equals zero, and perform division otherwise.
Explore the or operator in C# using Visual Studio, showing how the || logical operator yields true when either side is true, with short-circuit behavior and if-else blocks.
Navigate the call stack and parameters as local variables, and observe how the locals window and stack trace reveal scope changes as methods like divide by 5 execute.
Create a method with two parameters and a return value to compute interest as amount times rate, using the decimal data type, static invocation, and currency formatting in C#.
Learn how C# division returns quotient and remainder using an out parameter, with modulo and integer types, inside Visual Studio 2017 console programs.
Define a method that takes a string parameter and returns a string, using substring(0,1) to obtain the first letter and handling potential argument out of range exceptions.
Create a method that returns a tuple by extracting parts from a string using substring and index of. Handle comma-delimited inputs like John Smith, 45 and prepare for using tuples.
Explore using the where method from LINQ to filter a list of integers, returning an IEnumerable<int> of even numbers, and display results with foreach.
Wrap the prior example into a reusable method that returns IEnumerable<int> from a List<int>, using Where to filter and allowing a divisor parameter.
Learn to implement a C# params method that multiplies any number of inputs, initializing product to 1 and accumulating with product *= x.
Explore how arrays and lists in C# are reference types; observe that A1 and A2 reference the same memory, and that list aliases share underlying values.
Learn how to create and fill an array, iterate with a for loop from index 0 to length-1, and read or display values safely using the array's length.
Explore how string arrays store references in memory, with multiple entries sharing the same address, unlike integers and decimals; learn to inspect memory in Visual Studio to understand these differences.
Learn how to populate a two-dimensional string array with nested for loops, using GetLength to adapt to any row and column sizes, and fill each cell with R{row}C{col}.
Learn to create and print jagged arrays in C# by initializing arrays of grades and using nested foreach loops to display each student's grades on separate lines.
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