![]() |
|
Ultimate C# Masterclass For 2023 - Printable Version +- Softwarez.Info - Software's World! (https://softwarez.info) +-- Forum: Library Zone (https://softwarez.info/Forum-Library-Zone) +--- Forum: Video Tutorials (https://softwarez.info/Forum-Video-Tutorials) +--- Thread: Ultimate C# Masterclass For 2023 (/Thread-Ultimate-C-Masterclass-For-2023) |
Ultimate C# Masterclass For 2023 - AD-TEAM - 09-25-2025 ![]() Ultimate C# Masterclass For 2023 Published 4/2023 MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz Language: English | Size: 14.79 GB | Duration: 36h 24m In-depth .NET programming course from basics to advanced. Focus on clean code, performance and practice. What you'll learn You will gain an in-depth understanding of C#. You will understand how to write high-performance C# code. You will understand the principles of object-oriented programming You will learn the most useful design patterns. You will learn to write code of excellent quality. You will gain the knowledge necessary for C# job interviews. You will practice your skills by solving exercises in the browser, as well as by creating advanced projects. You will learn how to use Visual Studio like a pro. Requirements No programming experience is needed. I'll teach you everything you need to know. A computer with an access to the Internet. No paid software is needed; all tools used in this course are free. Description Welcome to the "Ultimate C# Masterclass" course! Are you ready to take your knowledge and career to the next level?36 hours of on-demand videos, 58 coding exercises, 51 quizzes, and 12 assignments. All this is to help you start coding in C# like a pro.I'm a .NET Technical Lead with over 10 years of professional experience. I will help you on this journey every step of the way, no matter if you are a complete beginner who has never coded before or a developer who wants to advance to the next level. We will start from the basics, but we will not stop there.I will not only teach you how to code but also how to code well. Clean code and good design will be our priorities, and design patterns will be shown in practice, not as abstract concepts that seem impossible to be used in real-life challenges. Refactoring will be something we practice all the time.Programs written in C# are fast, but we can make them faster. The performance will be discussed in detail.You will learn more than C# syntax. It is not only a course about the language but a course about programming in general. You will understand why all the things we learn are needed and how to use them right. Moreover, I will show you how they work under the hood, and thanks to that, you will gain an in-depth understanding of C#.Practice makes perfect. You will solve dozens of coding exercises right in the browser. You will also implement coding assignments, such as a program processing the data read from an external API or an app for analyzing PDF files. You will also solidify your knowledge by solving short quizzes as well as doing final knowledge checks after each section.This course comes with a 30-day money-back guarantee. If you are not satisfied, you can return it and get all your money back, no questions asked. In other words, you don't risk anything by purchasing this course. You have nothing to lose, and the knowledge you will gain may take your career to the next level.So, why hesitate? Join me in this course and start coding like a professional. Overview Section 1: Introduction Lecture 1 Welcome! Basic information & how to get help Lecture 2 46 seconds about your instructor Lecture 3 72 seconds about what this course is Lecture 4 105 seconds about what this course isn't Lecture 5 97 seconds about practicing what you learn Lecture 6 112 seconds about time optimization Lecture 7 Installing Visual Studio Community Lecture 8 Accessing the code Lecture 9 Resources you can download Section 2: C# Fundamentals Lecture 10 Section introduction Lecture 11 Our first C# program Lecture 12 From a text file to an executable program Lecture 13 Programmer's most important skill Lecture 14 The goal for this section Lecture 15 Variables Lecture 16 Naming variables & introduction to clean code Lecture 17 Operators Lecture 18 Implicitly typed variables Lecture 19 User input Lecture 20 Debugging with breakpoints Lecture 21 Coding exercises introduction Lecture 22 Comments Lecture 23 Boolean type. Logical negation, equality, comparison, and modulo operators Lecture 24 AND and OR logical operators Lecture 25 if/else conditional statement Lecture 26 The scope of local variables Lecture 27 Methods - part 1 - void methods Lecture 28 Methods - part 2 - non-void methods Lecture 29 Methods - part 3 - parameters types and the return type. Static typing in C# Lecture 30 Parsing a string to an int (int.Parse method) Lecture 31 The first exception Lecture 32 Adding a new project to a solution Lecture 33 Assignments - Introduction Lecture 34 Assignment - Simple Calculator - Description and requirements Lecture 35 Assignment - Simple Calculator - It's time for you to implement it Lecture 36 Assignment - Simple Calculator - Solution Lecture 37 String interpolation Lecture 38 Switch statement Lecture 39 Char Lecture 40 A need for loops Lecture 41 While loop - part 1 Lecture 42 += and ++ operators. Infinite loops Lecture 43 While loop - part 2 Lecture 44 Do.while loop Lecture 45 For loop Lecture 46 Break Lecture 47 Continue Lecture 48 Nested loops Lecture 49 Loops performance Lecture 50 Arrays Lecture 51 Multi-dimensional arrays Lecture 52 Foreach loop Lecture 53 Lists Lecture 54 "out" keyword Lecture 55 TryParse method Lecture 56 Assignment - TODO List - Description and requirements Lecture 57 Assignment - TODO List - It's time for you to try to solve it Lecture 58 Assignment - TODO List - Implementation - User options & adding a TODO Lecture 59 Assignment - TODO List - Implementation - Listing and Removing TODOs Lecture 60 Assignment - TODO List - Refactoring Section 3: Basics of Object-Oriented Programming Lecture 61 Section introduction Lecture 62 The issues in our code. A need for Object-Oriented Programming Lecture 63 Introduction to object-oriented programming Lecture 64 Understanding OOP with the DateTime type Lecture 65 Abstraction Lecture 66 Our first class Lecture 67 Data hiding Lecture 68 Custom constructor Lecture 69 C# restrictions on code outside classes. Top-level statements Lecture 70 Adding methods to classes Lecture 71 Encapsulation Lecture 72 Methods overloading Lecture 73 Constructors overloading. Calling one constructor from another Lecture 74 "this" keyword (current instance reference) Lecture 75 Optional parameters Lecture 76 Expression-bodied methods Lecture 77 Validation of constructor parameters Lecture 78 Readonly and const Lecture 79 Limitations of fields. A need for properties Lecture 80 Properties Lecture 81 Object initializers Lecture 82 Computed properties Lecture 83 Static methods and classes Lecture 84 Static fields, properties and constructors Lecture 85 Single Responsibility Principle - Introduction Lecture 86 Single Responsibility Principle - Refactoring (part 1) Lecture 87 Single Responsibility Principle - Refactoring (part 2) Lecture 88 Single Responsibility Principle - Refactoring (part 3) Lecture 89 Files, namespaces and the using directive Lecture 90 Global using directives Lecture 91 Assignment - Dice Roll Game - Description and requirements Lecture 92 Assignment - Dice Roll Game - It's time for you to try to solve it Lecture 93 Assignment - Dice Roll Game - Random Lecture 94 Assignment - Dice Roll Game - Magic Number Antipattern Lecture 95 Assignment - Dice Roll Game - Designing classes Lecture 96 Assignment - Dice Roll Game - Enums Lecture 97 Assignment - Dice Roll Game - Ternary conditional operator Section 4: Object-Oriented Programming: Polymorphism, Inheritance, Interfaces Lecture 98 Section introduction Lecture 99 A need for polymorphism Lecture 100 Inheritance Lecture 101 Inheriting members from the base class. Protected access modifier Lecture 102 Overriding members from the base class. Virtual methods and properties Lecture 103 Virtual methods - practice Lecture 104 A deeper inheritance hierarchy Lecture 105 Multiple inheritance Lecture 106 System.Object and the ToString method Lecture 107 Inheriting constructors and the "base" keyword Lecture 108 Implicit conversion Lecture 109 Explicit conversion Lecture 110 Upcasting and downcasting Lecture 111 "is" operator Lecture 112 Null Lecture 113 "as" operator Lecture 114 Abstract classes Lecture 115 Abstract methods Lecture 116 A need for abstract methods Lecture 117 Sealed classes and methods Lecture 118 Static classes are always sealed Lecture 119 Extension methods Lecture 120 A need for interfaces Lecture 121 Interfaces Lecture 122 Interfaces vs abstract classes Lecture 123 JSON Lecture 124 Assignment - Cookies Cookbook - Description and requirements Lecture 125 Assignment - Cookies Cookbook - It's time for you to try to solve it Lecture 126 Assignment - Cookies Cookbook - High-level design Lecture 127 Assignment - Cookies Cookbook - Dependency Inversion and Dependency Injection Lecture 128 Assignment - Cookies Cookbook - Designing data types Lecture 129 Assignment - Cookies Cookbook - Printing data object. LINQ. Lecture 130 Assignment - Cookies Cookbook - Printing the ingredients Lecture 131 Assignment - Cookies Cookbook - Composing the recipe by the user Lecture 132 Assignment - Cookies Cookbook - Reading and writing from and to a *.txt file Lecture 133 Assignment - Cookies Cookbook - Reading and writing from and to a *.json file Lecture 134 Assignment - Cookies Cookbook - Template Method Design Pattern Lecture 135 Assignment - Cookies Cookbook - Cleanup and project organizing Section 5: Exceptions and error handling Lecture 136 Section introduction Lecture 137 Exception object Lecture 138 Stack trace Lecture 139 Handling exceptions. Try-catch-finally Lecture 140 Multiple catch blocks Lecture 141 Throwing exceptions explicitly Lecture 142 Built-in exception types Lecture 143 StackOverflowException. Recursive methods Lecture 144 Precise exceptions Lecture 145 Rethrowing exceptions. "throw" vs "throw ex" Lecture 146 Rethrowing a System.Exception object Lecture 147 Global try-catch block Lecture 148 Code inside the catch block Lecture 149 Exception filters Lecture 150 Custom exceptions Lecture 151 When to define custom exceptions Lecture 152 Exceptions as a hidden part of a method signature Lecture 153 Two extreme schools of using exceptions Lecture 154 Smart usage of exceptions - throw Lecture 155 Smart usage of exceptions - catch Lecture 156 Assignment - Game Data Parser - Description and requirements Lecture 157 Assignment - Game Data Parser - It's time for you to try to solve it Lecture 158 Assignment - Game Data Parser - Sunny day scenario Lecture 159 Assignment - Game Data Parser - Flow controlled by exceptions Lecture 160 Assignment - Game Data Parser - Adding details to JsonException Lecture 161 Assignment - Game Data Parser - Custom logger Lecture 162 Assignment - Game Data Parser - Reducing usage of exception Lecture 163 Assignment - Game Data Parser - Refactoring - Extracting methods Lecture 164 Assignment - Game Data Parser - Refactoring - SRP, DI and classes decoupling Section 6: Generic types & advanced use of methods Lecture 165 Section introduction Lecture 166 Introduction to generic types Lecture 167 Understanding how List works under the hood Lecture 168 Simplified List (adding a new item) Lecture 169 Simplified List (deleting an item at given index) Lecture 170 A need for generic types. Implementing a generic type Lecture 171 A need for tuples Lecture 172 Tuples Lecture 173 C# without generics. ArrayList Lecture 174 Generic methods Lecture 175 Generic methods with multiple type parameters Lecture 176 Convert.ChangeType method. "typeof" keyword and the Type object Lecture 177 A need for type constraints Lecture 178 Improving the performance of the List. Measuring the time of the code execution Lecture 179 Type constraints - the constraint on the base type Lecture 180 IComparable interface. Ordering objects Lecture 181 Type constraints - the constraint on the implemented interface Lecture 182 Type constraints - numeric types. Generic math Lecture 183 Type constraints - summary. Multiple type constraints Lecture 184 Advanced use of methods - introduction Lecture 185 Funcs and Actions Lecture 186 Lambda expressions Lecture 187 Delegates Lecture 188 Dictionary - introduction Lecture 189 Dictionary - practice Lecture 190 A need for the Strategy design pattern Lecture 191 Refactoring the code using Funcs and lambda expressions Lecture 192 Open-Closed Principle. Strategy design pattern Lecture 193 Generic filtering of collections Lecture 194 Caching Lecture 195 Assignment - Custom Cache - Description and requirements Lecture 196 Assignment - Custom Cache - It's time for you to try to solve it Lecture 197 Assignment - Custom Cache - Implementation Lecture 198 Assignment - Custom Cache - The Decorator design pattern Lecture 199 Assignment - Custom Cache - Composing many Decorators together Section 7: LINQ Lecture 200 Section introduction Lecture 201 What is LINQ? Lecture 202 LINQ and extension methods Lecture 203 LINQ, IEnumerable and method chaining Lecture 204 Deferred execution Lecture 205 Any Lecture 206 All Lecture 207 Count Lecture 208 Contains Lecture 209 OrderBy Lecture 210 First and Last Lecture 211 Where Lecture 212 Distinct Lecture 213 Select Lecture 214 Average. Anonymous types Lecture 215 Assignment - Refactoring to LINQ - Description and requirements Lecture 216 Assignment - LINQ Refactoring - It's time for you to try to solve it Lecture 217 Assignment - Refactoring to LINQ - Nested loop and code readability Lecture 218 Assignment - Refactoring to LINQ - Find and Replace window Lecture 219 Assignment - Refactoring to LINQ - Fewer loops & multiline strings formatting Lecture 220 Assignment - Refactoring to LINQ - Checking if collection has duplicates Lecture 221 If you want to learn more about LINQ. Section 8: .NET under the hood Lecture 222 Section introduction Lecture 223 .NET and C# Lecture 224 Common Intermediate Language (CIL) Lecture 225 Common Language Runtime (CLR) Lecture 226 Memory of a program. The stack and the heap Lecture 227 Value semantics vs reference semantics Lecture 228 Value types vs reference types Lecture 229 Value types vs reference types - practical tips Lecture 230 "ref" keyword Lecture 231 Using "ref" with reference types Lecture 232 Unified type system. A need for boxing and unboxing Lecture 233 Boxing and unboxing Lecture 234 Boxing and unboxing - performance cost Lecture 235 Garbage Collector - introduction Lecture 236 Garbage Collector - memory fragmentation and defragmentation Lecture 237 Garbage Collector - the Mark-and-Sweep algorithm Lecture 238 Garbage Collector - generations of objects Lecture 239 Memory leaks Lecture 240 Finalizers Lecture 241 Dispose method - introduction Lecture 242 Dispose method - writing to a file using StreamWriter Lecture 243 Dispose method - reading from a file using StreamReader Lecture 244 Dispose method - implementation Lecture 245 CSV files Lecture 246 Reading CSV files Lecture 247 Assignment - CSV Processing Improvements - Description and requirements Lecture 248 Assignment - CSV Processing Improvements - It's time for you to try to solve it Lecture 249 Assignment - CSV Processing Improvements - Code analysis & tips Lecture 250 Assignment - CSV Processing Improvements - Reducing the size of Dictionaries Lecture 251 Assignment - CSV Processing Improvements - Reducing the number of boxings Lecture 252 Assignment - CSV Processing Improvements - Analysis Section 9: Advanced C# types Lecture 253 Section introduction Lecture 254 Reflection Lecture 255 Attributes Lecture 256 Structs Lecture 257 Structs vs Classes - crucial differences Lecture 258 Structs vs Classes - low-level differences Lecture 259 Choosing between structs and classes Lecture 260 Why should we make structs immutable? Lecture 261 Non-destructive mutation Lecture 262 "with" expression Lecture 263 Readonly structs Lecture 264 A close look at the System.Object type. The ReferenceEquals method Lecture 265 Equals method Lecture 266 Overriding the Equals method in classes Lecture 267 Overriding the Equals method in structs Lecture 268 IEquatable interface Lecture 269 == operator Lecture 270 Operators overloading Lecture 271 Overloading of implicit and explicit conversion operators Lecture 272 Hash functions Lecture 273 Default implementation of the GetHashCode method Lecture 274 When to override the GetHashCode method Lecture 275 Overriding the GetHashCode method Lecture 276 ValueTuples Lecture 277 Benefits of immutable types Lecture 278 Records Lecture 279 Record structs Lecture 280 Nullable value types Lecture 281 Nullable reference types Lecture 282 Null-forgiving operator Lecture 283 Using nullable reference types. Generic type constraints related to nullability Lecture 284 APIs Lecture 285 Querying an API using C# Lecture 286 A class for querying APIs Lecture 287 Assignment - Star Wars Planets Stats - Description and requirements Lecture 288 Assignment - Star Wars Planets Stats - It's time for you to try to solve it Lecture 289 Assignment - Star Wars Planets Stats - JsonPropertyNameAttribute and DTOs Lecture 290 Assignment - Star Wars Planets Stats - Exceptions handling Lecture 291 Assignment - Star Wars Planets Stats - Type design Lecture 292 Assignment - Star Wars Planets Stats - Converting DTO to a custom type Lecture 293 Assignment - Star Wars Planets Stats - Finishing the app and the MaxBy method Lecture 294 Assignment - Star Wars Planets Stats - Refactoring Lecture 295 Assignment - Star Wars Planets Stats - Splitting the class Lecture 296 Assignment - Star Wars Planets Stats - Universal table printer Section 10: Collections Lecture 297 Section introduction Lecture 298 The role of the IEnumerable interface Lecture 299 A close look at the IEnumerable interface Lecture 300 Implementing IEnumerable Lecture 301 Implicit and explicit interface implementation Lecture 302 Implementing IEnumerable Lecture 303 Indexers Lecture 304 Collection initializers Lecture 305 ICollection and IList interfaces Lecture 306 Breaking the Interface Segregation Principle Lecture 307 Interface Segregation Principle Lecture 308 The benefits of readonly collections Lecture 309 Readonly collections. ReadOnlyCollection and ReadOnlyDictionary Lecture 310 Big O Notation Lecture 311 Binary search algorithm Lecture 312 Binary search algorithm - implementation Lecture 313 Binary search algorithm - complexity Lecture 314 Improving performance when using Lists Lecture 315 Linked list Lecture 316 Linked list vs List Lecture 317 Dictionaries under the hood Lecture 318 Performance of Dictionaries Lecture 319 HashSet Lecture 320 Queue Lecture 321 Stack Lecture 322 "params" keyword Lecture 323 A need for yield statement Lecture 324 yield statement - behavior analysis Lecture 325 yield statement and iterators Lecture 326 yield statement - practice. yield break statement Lecture 327 Implementing IEnumerable interface using iterators Lecture 328 Assignment - Custom Linked List - Description and requirements Lecture 329 Assignment - Custom Linked List - It's time for you to try to solve it Lecture 330 Assignment - Custom Linked List - Data structures Lecture 331 Assignment - Custom Linked List - The AddToFront method Lecture 332 Assignment - Custom Linked List - Implementing IEnumerable Lecture 333 Assignment - Custom Linked List - Adding new items at the end of the list Lecture 334 Assignment - Custom Linked List - The Clear method Lecture 335 Assignment - Custom Linked List - Removing items and the Contains method Lecture 336 Assignment - Custom Linked List - The CopyTo method Lecture 337 Assignment - Custom Linked List - Summary and performance. Private classes Section 11: Projects, assemblies, solutions Lecture 338 Section introduction Lecture 339 Projects and solutions Lecture 340 Project properties Lecture 341 Debug build vs Release build Lecture 342 Assemblies Lecture 343 Referencing types from another assembly Lecture 344 Referencing types from another project Lecture 345 Internal access modifier. Principles of using access modifiers Lecture 346 Protected internal access modifier Lecture 347 Private protected access modifier Lecture 348 Access modifiers - summary Lecture 349 How to structure the code in a solution Lecture 350 NuGet Lecture 351 *.csproj files Lecture 352 *.sln files Lecture 353 Updating the .NET version Section 12: Strings Lecture 354 Section introduction Lecture 355 Char Lecture 356 Char representation in memory. Character encoding Lecture 357 Managing various encodings Lecture 358 Immutability of strings Lecture 359 Strings - value or reference types? Lecture 360 Strings as members in structs Lecture 361 A need for StringBuilder Lecture 362 StringBuilder Lecture 363 String interning Lecture 364 Flyweight design pattern Lecture 365 Advanced string formatting Lecture 366 Culture-specific string formatting Lecture 367 Specific culture vs Invariant culture Lecture 368 Assignment - Tickets Data Aggregator - Description and requirements Lecture 369 Assignment - Tickets Data Aggregator - It's time for you to try to solve it Lecture 370 Assignment - Tickets Data Aggregator - Reading text from PDF Lecture 371 Assignment - Tickets Data Aggregator - List all PDFs from a folder Lecture 372 Assignment - Tickets Data Aggegator - Splitting a string by multiple separatos Lecture 373 Assignment - Tickets Data Aggegator - Parsing culture-specific strings Lecture 374 Assignment - Tickets Data Aggegator - Saving result in a text file Lecture 375 Assignment - Tickets Data Aggegator - Refactoring Lecture 376 Assignment - Tickets Data Aggegator - Compliance with the SRP Section 13: Numeric types Lecture 377 Section introduction Lecture 378 Decimal number system Lecture 379 Binary number system Lecture 380 Maximal numbers on a given number of digits Lecture 381 Numbers in memory. Integer Lecture 382 Adding binary numbers Lecture 383 Numeric overflow & silent failures Lecture 384 "checked" keyword Lecture 385 Checked context - when to use it? Lecture 386 Scope of the checked context. "unechecked" keyword Lecture 387 Integral numeric types overview Lecture 388 Floating-point numbers Lecture 389 double and float Lecture 390 Smart usage of binary floating point numbers Lecture 391 Decimal Section 14: Events Lecture 392 Section introduction Lecture 393 A need for communication between objects Lecture 394 A need for the Observer design pattern Lecture 395 Observer design pattern Lecture 396 Defining an event and subsribing to it Lecture 397 Raising events Lecture 398 EventHandler delegate & EventArgs type Lecture 399 Event vs delegate members Lecture 400 Memory leaks caused by events Lecture 401 Windows Forms - introduction Lecture 402 The first Windows Forms app Lecture 403 Understanding Windows Forms files Lecture 404 Events in Windows Forms Lecture 405 Windows Forms - basic UI elements Lecture 406 Assignment - Numeric Types Suggester - Description and requirements Lecture 407 Assignment - Numeric Types Suggester - It's time for you to try to solve it Lecture 408 Assignment - Numeric Types Suggester - User Interface & basic events Lecture 409 Assignment - Numeric Types Suggester - Handling KeyPress event Lecture 410 Assignment - Numeric Types Suggester - Numbers validation and BigInteger type Lecture 411 Assignment - Numeric Types Suggester - Choosing numeric type Section 15: Bonus section Lecture 412 Bonus lecture Beginners who have never programmed before.,Intermediete C# developers who want to improve their skills and gain in-depth understanding of this language.,Programmers switching languages to C#. ![]() RapidGator NitroFlare DDownload |