C# Academy icon

C# Academy

C_SHARPBackendWebGamesDesktopMobileFrontendBeginnerCloudDatabaseEnterprise

Master C# programming and develop versatile software solutions with C# Academy.

🤖 AI-Powered
Course Overview

Unlock the power of C# and embark on an exciting journey into the world of software development with CoddyKit! C# is a versatile, modern, and object-oriented programming language developed by Microsoft, making it a cornerstone for building robust applications across various platforms. Whether you aspire to create dynamic web applications with ASP.NET, develop high-performance desktop software, craft engaging games with Unity, or dive into cloud services, C# provides the robust foundation you need. Our comprehensive C# curriculum is designed to transform you from a complete beginner to a confident developer, equipped with the essential skills for today's tech landscape. With CoddyKit's bite-sized lessons tailored for mobile learning, mastering C# programming has never been more accessible or efficient.

C# Programming: Your Path to Software Development Mastery

1. Introduction to Programming with C# (Level: A1)

Dive into the basics of programming with C#—a powerful, beginner-friendly language used for creating applications ranging from desktop to web and games. In this category, you'll set up your environment, write your first program, and learn fundamental concepts like variables, input/output, and comments. These lessons will form the foundation for your programming journey in C# software development.

  • What is C#? — Learn about C#, its features, and why it’s a great language for beginners and professionals alike.
  • Setting Up Your Environment — Set up your development environment with Visual Studio and prepare to code.
  • Your First C# Program — Write and run your first "Hello, World!" program in C#.
  • Understanding Variables and Data Types — Discover how to store and manipulate data using variables and data types in C#.
  • Basic Input and Output — Learn to interact with the user by accepting input and displaying output.
  • Understanding Comments and Code Readability — Use comments and formatting to make your code easier to understand and maintain.

2. C# Kickoff: Concepts & Setup (Level: A1)

Kick off C# with the CLR/.NET runtime, JIT vs AOT basics, the SDK and dotnet CLI, and your first program. Designed for small screens and quick wins, this mini-course sets the stage for your .NET development journey.

  • What is C#, CLR/.NET, JIT vs AOT, SDK & dotnet CLI — Understand what C# and .NET are, how CLR executes IL, the difference between JIT and AOT, and how to use the SDK and dotnet CLI to run a first app.
  • First Program: top-level statements vs Program class; build & run — Compare top-level statements with the classic Program class, then build and run with the dotnet CLI; finish with quick debugging tips.
  • Project layout, NuGet restore, debugging basics — Explore the project layout (.csproj), how NuGet restore works, and simple debugging techniques for beginners.

3. Types & Variables Essentials (Level: A1)

Master the building blocks: value vs reference types, literals and numeric suffixes, var inference, and constants vs readonly fields. Essential knowledge for any C# developer.

  • Value vs reference; literals; var inference; const/readonly — Learn how value types differ from reference types, how literals and numeric suffixes work, when to use var, and the roles of const and readonly.
  • Operators & expressions: arithmetic, comparison, logical — Work with arithmetic operators (+, -, *, /, %), comparisons (==, !=, <, >, <=, >=), and logical operators (&&, ||, !). Understand precedence and short-circuiting.
  • Suffixes in practice; casting vs conversion; C# 6 object creation — Learn numeric suffixes in practice, the difference between casting and conversion, and how to write C# 6-friendly object creation (no target-typed new).

4. Control Flow Basics (Level: A1)

Learn fundamental control flow: if/else, classic switch, loops, breaks/continues, and safe guard checks with clear, tiny examples. Crucial for C# problem-solving.

  • if/else, switch (classic), loops: for, while, do, foreach — Use if/else to branch, classic switch for discrete cases, and core loops (for, while, do, foreach) to repeat work clearly.
  • break/continue; goto (avoid); scope; exceptions vs guard checks — Use break and continue correctly, understand why goto is discouraged, apply scope rules safely, and choose between exceptions and guard checks.
  • Simple diagnostics: exceptions vs guard checks — Apply guard checks for expected invalid inputs, throw exceptions for exceptional states, and use try/catch to handle errors gracefully.

5. Methods & Parameters (Level: A1)

Write clear methods: signatures and returns, expression-bodied members (C# 6), optional/named parameters, ref/out basics, overloading, and notes on local functions. Key for structured C# programming.

  • Signatures, returns; expr-bodied; optional/named; ref/out; overloading — Define method signatures and return values, use expression-bodied methods, optional/named parameters, ref/out, and understand overloading. Note: no local functions in C# 6.
  • Optional/named params; ref/out/in (basics) — Use optional parameters and named arguments for clarity; pass by reference with ref; return extra values with out; note that in parameters are not available in C# 6.
  • Local functions (C# 6 note) & overloading — Overload methods safely (same name, different parameters) and, since C# 6 has no local functions, emulate them with small private helpers.

6. Strings & Text (Level: A1)

Work with text: string immutability, interpolation and escape sequences, verbatim strings for paths, efficient StringBuilder, comparisons, culture notes, and char basics. Essential for C# data manipulation.

  • Strings & Text: immutability, interpolation, verbatim, StringBuilder, comparison — Understand string immutability, use interpolation, escape and verbatim strings, build text efficiently with StringBuilder, compare safely, and review char/Unicode basics.
  • StringBuilder, comparison & culture notes — Build large text efficiently with StringBuilder and compare strings safely using StringComparison and culture-aware APIs.
  • char, Unicode basics, simple parsing/formatting — Understand char (UTF-16 code unit), surrogate pairs for some characters, basic UTF-8 encoding/decoding, and simple number parsing/formatting.

7. Arrays & Collections (Intro) (Level: A1)

Get started with core collections: arrays, List<T>, and Dictionary<TKey,TValue>. Learn simple slicing and safe lookups. Building blocks for C# data structures.

  • Arrays, slicing, List<T>, Dictionary<TKey,TValue> — Create and use arrays, copy a slice, and work with List<T> and Dictionary<TKey,TValue> for dynamic items and key-based lookups.
  • foreach patterns; collection initializers — Write safe foreach loops over arrays, lists, and dictionaries; initialize collections concisely with collection initializer syntax.
  • LINQ preview: Where, Select, OrderBy, Take/Skip; deferred execution — Build small LINQ pipelines over IEnumerable<T>: filter with Where, transform with Select, order with OrderBy, and learn deferred execution vs materialization.

8. Object-Oriented Programming (OOP) Basics (Level: A1)

Explore the principles of Object-Oriented Programming (OOP) in C#, including classes, objects, and inheritance. Learn how to encapsulate data, reuse code, and extend functionality through properties, methods, and constructors. This category introduces you to creating modular and reusable code structures, essential for any software developer.

  • What is Object-Oriented Programming? — Understand the principles of OOP and how they shape modern programming.
  • Defining Classes and Objects — Learn how to define classes and create objects in C#.
  • Understanding Properties and Methods — Explore how objects use properties and methods to store data and perform actions.
  • Constructors in C# — Discover how to initialize objects using constructors in C#.
  • Encapsulation and Access Modifiers — Learn how encapsulation protects data and how access modifiers control visibility.
  • Inheritance: Reusing Code — Reuse and extend existing code using inheritance in C#.
  • Polymorphism and Method Overriding — Master polymorphism to create flexible and reusable code through method overriding.

9. Classes & Objects (Level: A2)

Create simple types with fields and auto-properties, use object initializers, then move on to constructors, static members, and encapsulation. Deeper dive into C# OOP concepts.

  • Fields, auto-properties, object initializers — Define fields and auto-properties, and create objects with concise object initializers.
  • Constructors, static members — Build objects with constructors (including overloads and chaining) and use static fields/methods to hold data shared by all instances.
  • Encapsulation & invariants — Hide internal state, expose safe operations, and keep class invariants true (e.g., non-negative balance, valid ranges).

10. Inheritance & Abstraction (Level: A2)

Use inheritance to reuse behavior. Master virtual/override/sealed, abstract classes, and prepare for polymorphism with interfaces. Advanced C# object-oriented design.

  • virtual/override/sealed; abstract classes — Learn virtual methods, overriding, sealing overrides, and abstract classes; see how base references dispatch to derived implementations.
  • Interfaces (intro) & multiple interface implementation — Define interfaces as contracts, implement multiple interfaces in one class, use interface-based polymorphism, and learn explicit interface implementation basics.
  • Polymorphism & dynamic dispatch — Understand polymorphism: call virtual members through a base reference, use base-typed collections, avoid method hiding, and cast safely when needed.

11. Structs, Records, Enums (Level: A2)

Explore structs (value types), the idea of record-like value equality (C# 6 pattern), and enums for named constants. Important for efficient C# data modeling.

  • Structs: value semantics & immutability pattern — Understand struct value semantics in C# 6 and build an immutable struct pattern (copy-on-change).
  • Record-like types & value-based equality (pattern) — Implement value-based equality like records: override Equals/GetHashCode, implement IEquatable<T>, add ==/!= operators, and keep types immutable.
  • Enums & [Flags] — Define enums with explicit values and underlying types, convert and parse safely, and model combinable options with [Flags].

12. Access Control & Namespaces (Level: A2)

Control visibility with public, internal, protected, private; understand where members can be accessed. Note: file modifier is newer than C# 6. Crucial for organized C# codebase management.

  • public/internal/protected/private (with note on file) — Learn how public, internal, protected, and private change visibility; see inheritance and same-assembly rules. Note that file-scoped access is not in C# 6.
  • Namespaces, using directives, global usings (note) — Organize types with namespaces, import namespaces with using (and aliases), avoid name collisions, and note that global using is newer than C# 6.
  • Partial types & files — Split a type across files with partial classes/structs and use partial methods to hook custom logic into generated code.

13. Mini Project: Shape Library (Level: A2)

Build a tiny Shape library: design with interfaces, implement shapes, and use polymorphism to compute areas/perimeters. A practical application of C# OOP principles.

  • Design (interfaces + inheritance) — Design a simple Shape API with an interface and a small base class; decide what belongs to the contract vs implementation detail.
  • Implementation & tests — Implement Rectangle, Circle, and Triangle; add basic input guards; write tiny ad-hoc tests without a framework.
  • Polymorphic behaviors — Use interface-based polymorphism: process mixed shapes uniformly, add new shapes without changing callers, and compose small behaviors.

14. Generics I (Level: B1)

Build type-safe reusable code with generics: generic methods and types, plus core constraints like class, struct, new(), and interface bounds. Essential for writing flexible C# code.

  • Generic methods/types; constraints — Write generic methods and types; add constraints with where T : … (class, struct, new(), interface/base).
  • Variance (in/out) with interfaces & delegates — Understand C# variance: out for producers (covariance) and in for consumers (contravariance) on interfaces and delegates.
  • Nullable reference types (awareness) & annotations (C# 6 patterns) — C# 6 does not have nullable reference types (string?). Learn safe null handling: input guards, clear docs, helper Require.NotNull, and contrast with Nullable<T> for value types.

15. Delegates, Lambdas & Events (Level: B1)

Use delegates to pass methods as values, write concise lambdas, and understand variable closures; prepares you for C# events next. Foundation for event-driven C# applications.

  • delegate, Action/Func, closures — Pass behavior via delegates: declare custom delegates, use built-in Action/Func, and see how lambdas capture variables (closures).
  • Events: publish/subscribe, event keyword — Publish/subscribe with events: declare event, add/remove handlers, pass data via EventArgs, and raise with the OnX pattern.
  • Event patterns, pitfalls (memory leaks) — Spot and fix event pitfalls: unsubscribe to avoid memory leaks, store delegate references to remove them, and use an IDisposable subscription pattern.

16. C# Quick Review (Level: A1)

Master the building blocks of C# programming with lessons on control flow, loops, arrays, and strings. This category teaches you how to make decisions in your code, perform repetitive tasks efficiently, and manage collections of data. By the end, you’ll have the tools to solve practical problems using C# fundamentals.

  • Control Flow: If-Else Statements — Learn how to make decisions in your programs using if-else statements.
  • Loops in C#: For, While, and Do-While — Master looping structures to perform repetitive tasks efficiently.
  • Switch Statements — Simplify complex conditional logic with switch statements.
  • Introduction to Arrays — Learn how to store and manage multiple data items using arrays.
  • Working with Strings — Manipulate and process text using C#'s powerful string handling features.

17. Exceptions & Resource Safety (Level: B1)

Handle failures with try/catch/finally, know when to throw, and learn correct rethrow to keep the original stack trace. Vital for robust C# error handling.

  • try/catch/finally, throw new vs rethrow — Use try/catch/finally for predictable error handling; understand throw new vs rethrow; keep examples small and focused.
  • Custom exceptions; error design — Create small custom exceptions, pick correct built-in types (ArgumentException, InvalidOperationException), and add context with InnerException.
  • IDisposable, using statement — Implement IDisposable, use the using statement for deterministic cleanup, and contrast with manual try/finally. C# 6 only.

18. LINQ Fundamentals (Level: B2)

Learn LINQ basics: build IEnumerable<T> pipelines and understand deferred execution and when results are materialized. Revolutionize your C# data querying.

  • IEnumerable<T> pipelines; deferred execution — Build LINQ pipelines over IEnumerable<T> and see deferred execution vs materialization with ToList/ToArray.
  • Select, Where, OrderBy, Take/Skip — Filter with Where, transform with Select, sort with OrderBy/ThenBy, and page with Take/Skip. Simple, readable chains.
  • Query vs method syntax — Write the same LINQ with query or method syntax; see compiler translation and when to choose each style.

19. LINQ Advanced (Level: B2)

Dive deeper into LINQ: GroupBy, Join, Aggregate, and clean projections with anonymous types. Master complex C# data transformations.

  • GroupBy, Join, Aggregate, projections (anonymous types) — Group items, join sequences, reduce with Aggregate, and project clean results using anonymous types.
  • Materialization (ToList, ToDictionary) & perf notes — Turn deferred queries into concrete collections with ToList/ToArray/ToDictionary; avoid repeated enumeration and know key-uniqueness rules.
  • Composability tips — Keep LINQ composable: use small pure predicates/transforms, compose delegates, add tiny extension helpers, and return IEnumerable<T> pipelines.

20. Collections II (Level: B2)

Meet more core collections: HashSet<T>, SortedSet<T>, Queue<T>, and Stack<T>. Learn their shapes (set, FIFO, LIFO) and when to use each. Expand your C# data handling toolkit.

  • HashSet<T>, SortedSet<T>, Queue<T>, Stack<T> — Understand unique sets vs ordered sets and FIFO/LIFO collections; practice Add/Contains, Enqueue/Dequeue, Push/Pop.
  • ConcurrentDictionary<T>, immutable collections — Use ConcurrentDictionary<T> for thread-safe updates and learn simple immutable approaches: read-only views and copy-on-write.
  • Equality & hashing (value vs reference) — Understand reference vs value equality, override Equals/GetHashCode correctly, implement IEquatable<T>, and use custom comparers with sets/dictionaries.

21. Working with Files and Data (Level: A1)

Learn to handle data like a pro by reading and writing files, processing JSON and XML, and working with databases. This category equips you with the knowledge to manage data effectively, whether it’s storing user inputs, querying a database, or handling errors with robust exception handling techniques. Foundational for C# backend development.

  • Reading and Writing Files — Learn how to create, read, and write files using C#.
  • Working with JSON and XML — Process structured data using JSON and XML in C# applications.
  • Understanding Exception Handling — Handle runtime errors gracefully using exception handling techniques.
  • Working with Databases — Connect to databases and perform CRUD operations using C#.
  • Using LINQ for Data Queries — Simplify complex data queries with LINQ (Language Integrated Query).

22. Files & Serialization (Level: B2)

Work with System.IO: paths, files, and streams. Learn safe read/write patterns and small checks for existence. Practical skills for C# file operations and data persistence.

  • System.IO (paths, streams) — Use Path helpers, check existence, and read/write text with StreamReader/StreamWriter using the using statement.
  • JSON with System.Text.Json (opt-ins, converters) — C# 6-friendly JSON: use DataContractJsonSerializer with [DataContract]/[DataMember] (opt-in members) and simple naming tweaks akin to converters.
  • Simple CSV parsing patterns — Parse CSV lines: naive Split for simple files, safe TryParse for numbers, then a small quote-aware splitter for commas inside quotes.

23. Unit Testing Basics (Level: B2)

Start testing in C#: understand test structure, common frameworks (MSTest/xUnit), and how assertions turn expectations into pass/fail. Build confidence in your C# code quality.

  • xUnit/MSTest setup, assertions — Learn test shape (Arrange-Act-Assert), see how assertions fail tests, and map the ideas to MSTest/xUnit attributes.
  • Fakes via interfaces; test data builders — Inject dependencies via interfaces, write simple fakes to observe behavior, and build complex inputs with a tiny test data builder.
  • Debugging failing tests — Make failures reproducible, remove time/randomness, shrink to a minimal case, and improve assertion messages for fast diagnosis.

24. Pattern Matching Deep Dive (Level: C1)

Understand pattern-matching concepts and how to emulate them in C# 6 using classic techniques: is + casts, guard helpers, and small predicates. A look into modern C# language features.

  • is patterns; relational & logical patterns (C# 6 emulation) — Emulate basic patterns in C# 6: type checks with is, range/relational checks, and logical composition via tiny predicate helpers.
  • switch expressions; exhaustive checks with when (C# 6 emulation) — Emulate switch expressions with classic switch-return methods, add guard checks, and use default throws to catch unhandled cases at runtime.
  • Domain modeling with discriminated unions (records) — C# 6 emulation — Model a discriminated union in C# 6 using a tag enum and small classes, create factory methods, and handle variants via switch with a default throw.

25. Advanced Generics & Constraints (Level: C1)

Use generic constraints available in C# 6 (class/struct/new()) and learn practical emulations for newer notnull/unmanaged ideas. Deepen your understanding of flexible C# programming.

  • unmanaged, notnull, new() (C# 6 emulation) — C# 6 supports class/struct/new() constraints; emulate newer notnull/unmanaged via guards, API shape, and conventions.
  • Generic math (overview), generic attributes (when relevant) — Emulate generic math without modern features: pass an ops-provider or delegates, constrain types carefully, and simulate "generic attributes" via Type parameters.
  • Reusable generic utilities — Build tiny, reusable helpers: Guard checks, key-based equality comparer, memoization for pure functions, and a simple Result<T>.

26. Advanced C# Features (Level: A1)

Unlock the advanced capabilities of C# with lessons on generics, asynchronous programming, threading, and reflection. This category will teach you to write flexible and efficient code, manage parallel tasks, and dive deeper into the inner workings of your programs, preparing you for complex real-world projects in .NET development.

  • Generics in C# — Learn how generics enable type-safe and reusable code structures.
  • Async and Await: Working with Asynchronous Code — Master asynchronous programming to build responsive applications.
  • Understanding Threading and Tasks — Explore threading and tasks to manage parallel processing in C#.
  • Exploring Delegates and Lambdas — Understand delegates and lambda expressions for concise and flexible code.
  • Understanding Reflection in C# — Use reflection to inspect and manipulate objects at runtime.

27. Span<T> & Memory (Level: C1)

Understand memory-friendly slicing. In C# 6 we emulate Span/ReadOnlySpan using ArraySegment<T>, offsets, and careful APIs to avoid extra allocations. Optimize your C# performance.

  • Span/ReadOnlySpan fundamentals (C# 6 emulation) — Emulate Span/ReadOnlySpan with ArraySegment<T>: create views over arrays, slice with offset/length, and process data without copying.
  • Memory/ReadOnlyMemory emulation: zero-copy windows — Pass ArraySegment<T> instead of arrays: create windows, implement Skip/Take/Slice, parse headers and payloads, and only copy at boundaries.
  • String-as-Span APIs (C# 6 emulation) — Emulate string-as-span: convert to char[], slice with ArraySegment<char>, search/trim/parse by indices, and create substrings only at the edges.

28. Reflection & Attributes (Level: C1)

Discover reflection basics: get a Type, find a MethodInfo, create objects via Activator, and read custom attributes — all compatible with C# 6. Powerful techniques for dynamic C# programming.

  • Type, MethodInfo, activation, custom attributes — Get Type objects, locate MethodInfo, invoke methods, create instances with Activator, and define/read custom attributes.
  • Source-level info (Caller attributes) — Use CallerMemberName, CallerFilePath, and CallerLineNumber to capture call-site info for logs, guards, and property notifications.
  • Light metaprogramming scenarios — Attribute driven helpers: display labels, required validation, mini constructor activator, and CSV like serialization with clear safety tips.

29. Source Generators (Intro) (Level: C1)

Understand what C# source generators are, why they help, and how to emulate the idea in C# 6 using attributes, partial classes, and simple code templates. A peek into advanced C# tooling.

  • Concept & use-cases; incremental generators (overview) — What generators do, typical use-cases, the idea of incremental generators, and a C# 6-friendly emulation using attributes + partial classes.
  • Developer experience & limitations — See how generators affect developer experience: naming, file discovery, diagnostics, build performance, and safe fallbacks — with C# 6 emulation.

30. Tasks & async/await (Level: C2)

Master the mental model of Task and async/await: what an async method returns, how awaits schedule continuations, and why the compiler builds a state machine. ValueTask is mentioned conceptually. Essential for responsive C# applications and backend development.

  • Task/ValueTask and the async state machine (concepts) — Understand Task results and the async state machine idea. Write tiny async methods, compose awaits, and see a manual TaskCompletionSource.
  • Async pitfalls: sync-over-async and deadlocks — Identify async pitfalls such as sync-over-async and deadlocks. Learn why blocking calls can freeze apps, and how to avoid common traps.
  • ConfigureAwait, exception flow — Understand context capture and ConfigureAwait(false); handle exceptions with await vs blocking; see AggregateException and best practices.

31. Cancellation & Timeouts (Level: C2)

Use CancellationToken for cooperative cancel: pass tokens, poll IsCancellationRequested, throw OperationCanceledException, and wire up sources. Build resilient C# software.

  • CancellationToken patterns; cooperative cancel — Pass and honor CancellationToken: create CTS, poll/throw for cancel, pass to async APIs, and clean up with registrations.
  • Timeouts, IProgress<T>, async disposables (emulation) — Apply CancelAfter or Task.WhenAny-based timeouts, wire IProgress<T> for UI-friendly updates, and use try/finally to emulate async cleanup in C# 6.
  • Resilience basics: retry & backoff — Implement simple retries with exponential backoff and jitter; detect transient vs fatal errors; cap delays; stop on cancellation.

32. Parallelism & Data Processing (Level: C2)

Process data faster with Parallel.ForEach and PLINQ. Learn degree of parallelism, ordering, and side-effect safety. Boost the performance of your C# programs.

  • Parallel.ForEach, PLINQ — Run work in parallel with Parallel.ForEach and build parallel pipelines with PLINQ (AsParallel, WithDegreeOfParallelism, AsOrdered).
  • Producer/consumer with Channels (overview) — Model producer/consumer queues like Channels using BlockingCollection<T>: bounded buffers (backpressure), multiple consumers, and graceful completion.
  • Throughput vs latency trade-offs — Balance total work per second (throughput) vs time per item (latency): compare per-item processing, batching, and degree-of-parallelism tuning.

33. NuGet & Packaging (Level: C2)

Create reusable libraries and publish them as NuGet packages. Learn project types, versioning, and packing basics. Essential for C# library development and sharing code.

  • Library vs app .csproj, semantic versioning — Understand library vs app .csproj, how NuGet consumes libraries, and how semantic versioning (MAJOR.MINOR.PATCH) guides releases.
  • Packing & publishing to NuGet — Pack a library into a .nupkg and publish it. Fill minimal metadata, run dotnet pack, push with an API key, and follow safe publishing practices.
  • Multi-targeting — Build one library for multiple target frameworks from a single project; use conditional compilation and fallback shims for API differences.

34. Diagnostics & Logging (Level: C2)

Add simple diagnostics with Debug/Trace and a small logging abstraction so outputs can be routed to console, files, or tools. Improve the maintainability of your C# applications.

  • Logging abstractions, Debug/Trace — Use System.Diagnostics Debug/Trace, add listeners, and create a tiny ILogger-style abstraction to decouple app code from sinks.
  • Basic profiling & traces (concepts) — Measure code with Stopwatch, create tiny timing scopes, understand trace correlation IDs, and learn basic micro-benchmark hygiene.
  • Guard & validation patterns — Validate inputs early with guard clauses, throw the right exceptions, and use TryParse-style checks for user data.

35. Scripting & Interop (Level: C2)

Use C# scripting to try ideas fast: dotnet script, REPL/snippets, and quick glue code without full projects. Expand your toolkit for various C# use cases.

  • C# scripting (dotnet script), snippets & REPL — Run small C# snippets quickly: what scripting is, typical use-cases, and how script code maps to a Program.Main in normal apps.
  • Interop basics (P/Invoke) at a glance — Call native functions with P/Invoke: DllImport basics, marshaling strings, SetLastError, and simple Win32 demos (Sleep, GetTickCount64).
  • CLI ergonomics — Build friendly command-line tools: clear help, short flags, exit codes, stdout vs stderr, basic parsing, and simple verbosity.

36. Advanced Programming Concepts (Level: A1)

Step up your coding skills with advanced C# features like interfaces, abstract classes, and delegates. This category dives into sophisticated topics that enhance your ability to write clean, efficient, and scalable code. You'll also explore collections and events, providing powerful tools for managing data and interactions in your applications. This is key for aspiring C# software engineers.

  • Introduction to Interfaces — Learn how interfaces define contracts for classes and enhance code flexibility.
  • Abstract Classes — Explore abstract classes and their role in creating a shared structure for derived classes.
  • Static Members and Methods — Understand how to use static members and methods for shared functionality.
  • Exploring Enums and Structs — Discover enums and structs to represent fixed sets of values and lightweight objects.
  • Delegates and Events — Learn how delegates and events enable communication between objects in C#.
  • Working with Collections: Lists, Dictionaries, and Queues — Dive into C# collections to manage dynamic data efficiently.

37. Building Desktop Applications (Level: A1)

Bring your skills to life by building interactive desktop applications with Windows Forms. In this category, you’ll design user interfaces, handle events, and create practical projects like a calculator and a to-do list. By the end, you’ll be able to build professional-grade desktop applications with C#.

  • Introduction to Windows Forms — Get started with Windows Forms to build graphical desktop applications.
  • Designing User Interfaces — Design intuitive user interfaces using drag-and-drop tools in Windows Forms.
  • Handling Events in Forms — Learn how to handle user interactions like button clicks and form submissions.

What You'll Learn in Our C# Curriculum

By completing CoddyKit's comprehensive C# curriculum, you'll gain a deep understanding of:

  • C# Fundamentals: Master variables, data types, operators, and control flow for robust programming.
  • Object-Oriented Programming (OOP): Grasp classes, objects, inheritance, polymorphism, encapsulation, and abstraction to write modular and reusable code.
  • Data Structures & Collections: Efficiently manage data with arrays, lists, dictionaries, sets, queues, and stacks.
  • Advanced C# Features: Dive into generics, delegates, lambdas, events, and asynchronous programming (async/await) for high-performance applications.
  • Data Handling & Persistence: Learn to read/write files, process JSON/XML, interact with databases, and use LINQ for powerful data querying.
  • Robust Error Handling: Implement effective exception handling, resource management with IDisposable, and resilience patterns.
  • Code Quality & Testing: Develop skills in unit testing, debugging, and writing maintainable code.
  • Performance Optimization: Explore memory-efficient techniques, parallelism, and advanced LINQ for faster applications.
  • Application Development: Build practical desktop applications with Windows Forms and understand the principles of modern software architecture.
  • Ecosystem Knowledge: Get familiar with .NET runtime, SDK, CLI, NuGet packaging, and basic diagnostics.

Who Is This Course For?

This extensive C# curriculum is perfect for a wide range of learners:

  • Absolute Beginners: If you've never coded before, our A1-level courses provide a gentle yet thorough introduction to C# programming.
  • Aspiring Software Developers: Build a strong foundation in C# and .NET, opening doors to careers in web development, game development, desktop application development, and enterprise solutions.
  • Career Changers: Transition into tech with highly sought-after C# skills, backed by a comprehensive curriculum.
  • Students & Academics: Supplement your studies with practical, hands-on learning that reinforces theoretical concepts.
  • Developers from Other Languages: Quickly adapt your existing programming knowledge to C# and the .NET ecosystem.
  • Anyone Interested in Game Development: C# is the language of Unity, making this an ideal starting point for game designers and developers.

Start your C# journey with CoddyKit today and transform your coding aspirations into tangible skills. Our mobile-first approach ensures you can learn anytime, anywhere, making professional software development education fit seamlessly into your life. Dive into hands-on lessons, build real-world projects, and join a thriving community of C# developers. Your future in software development starts here – enroll now and begin building the applications of tomorrow!

Start Learning →

How You'll Learn

🎯
Interactive Lessons
Hands-on coding exercises with real-time feedback
🤖
AI Tutor
Get instant help from our AI when you're stuck
💻
Built-in Editor
Write and run code directly in your browser
🏆
Certificate
Earn a certificate when you complete the course
Curriculum

83 Courses

Every course in the C# Academy learning path.

01

Introduction to Programming with C#

A13 lessons

Dive into the basics of programming with C#—a powerful, beginner-friendly language used for creating applications ranging from desktop to w…

  • What is C#?
  • Setting Up Your Environment
  • Your First C# Program
02

Introduction to Programming with C# — Part 2

A13 lessonsPRO

Dive into the basics of programming with C#—a powerful, beginner-friendly language used for creating applications ranging from desktop to w…

  • Understanding Variables and Data Types
  • Basic Input and Output
  • Understanding Comments and Code Readability
03

C# Kickoff: Concepts & Setup

A13 lessonsPRO

Kick off C# with the CLR/.NET runtime, JIT vs AOT basics, the SDK and dotnet CLI, and your first program. Designed for small screens and qu…

  • What is C#, CLR/.NET, JIT vs AOT, SDK & dotnet CLI
  • First Program: top-level statements vs Program class; build & run
  • Project layout, NuGet restore, debugging basics
04

Types & Variables Essentials

A13 lessonsPRO

Master the building blocks: value vs reference types, literals and numeric suffixes, var inference, and constants vs readonly fields.

  • Value vs reference; literals; var inference; const/readonly
  • Operators & expressions: arithmetic, comparison, logical
  • Suffixes in practice; casting vs conversion; C# 6 object creation
05

C# Quick Review

A15 lessonsPRO

Master the building blocks of C# programming with lessons on control flow, loops, arrays, and strings. This category teaches you how to mak…

  • Control Flow: If-Else Statements
  • Loops in C#: For, While, and Do-While
  • Switch Statements
  • +2 more
06

C# Operators and Expressions

A24 lessonsPRO

Master arithmetic, comparison, logical, and bitwise operators along with operator precedence in C#.

  • Arithmetic and Assignment Operators
  • Comparison and Logical Operators
  • Bitwise and Shift Operators
  • +1 more
07

var, dynamic and Type Inference

A24 lessonsPRO

Choose correctly between var, dynamic, and explicit typing in modern C#.

  • Local Variable Type Inference with var
  • When to Avoid var
  • The dynamic Type
  • +1 more
08

String Formatting and Interpolation

A24 lessonsPRO

Build readable, formatted text with interpolation, composite formatting, and format specifiers.

  • String Interpolation Basics
  • Composite Formatting with string.Format
  • Numeric and Date Format Specifiers
  • +1 more
09

Enums Deep Dive

A24 lessonsPRO

Use enums effectively including flags, underlying types, and safe conversions.

  • Defining and Using Enums
  • Flags Enums and Bitwise Combinations
  • Enum Conversions and Parsing
  • +1 more
10

Control Flow Basics

A23 lessonsPRO

Learn fundamental control flow: if/else, classic switch, loops, breaks/continues, and safe guard checks with clear, tiny examples.

  • if/else, switch (classic), loops: for, while, do, foreach
  • break/continue; goto (avoid); scope; exceptions vs guard checks
  • Simple diagnostics: exceptions vs guard checks
11

Methods & Parameters

A23 lessonsPRO

Write clear methods: signatures and returns, expression-bodied members (C# 6), optional/named parameters, ref/out basics, overloading, and…

  • Signatures, returns; expr-bodied; optional/named; ref/out; overloading
  • Optional/named params; ref/out/in (basics)
  • Local functions (C# 6 note) & overloading
12

Strings & Text

A23 lessonsPRO

Work with text: string immutability, interpolation and escape sequences, verbatim strings for paths, efficient StringBuilder , comparisons,…

  • Strings & Text: immutability, interpolation, verbatim, StringBuilder, comparison
  • StringBuilder, comparison & culture notes
  • char, Unicode basics, simple parsing/formatting
13

Arrays & Collections (Intro)

A23 lessonsPRO

Get started with core collections: arrays , List<T> , and Dictionary<TKey,TValue> . Learn simple slicing and safe lookups.

  • Arrays, slicing, List , Dictionary
  • foreach patterns; collection initializers
  • LINQ preview: Where, Select, OrderBy, Take/Skip; deferred execution
14

Access Control & Namespaces

A23 lessonsPRO

Control visibility with public , internal , protected , private ; understand where members can be accessed. Note: file modifier is newer th…

  • public/internal/protected/private (with note on file)
  • Namespaces, using directives, global usings (note)
  • Partial types & files
15

Nullable Value Types

B14 lessonsPRO

Work safely with optional value types using Nullable , the ? syntax, and null-aware operators.

  • Introducing Nullable Value Types
  • HasValue and Value Properties
  • Null-Coalescing Operators
  • +1 more
16

Properties and Indexers

B14 lessonsPRO

Encapsulate state with properties, auto-properties, expression-bodied members, and indexers.

  • Auto-Implemented Properties
  • Full Properties with Backing Fields
  • Expression-Bodied Members
  • +1 more
17

Constructors and Object Initializers

B14 lessonsPRO

Initialize objects cleanly using constructors, chaining, and object initializer syntax.

  • Defining Constructors
  • Constructor Chaining with this
  • Object and Collection Initializers
  • +1 more
18

Static Classes and Members

B14 lessonsPRO

Design utility types and shared state with static classes, methods, fields, and constructors.

  • Static Methods and Fields
  • Static Classes for Utilities
  • Constants and readonly Fields
  • +1 more
19

Tuples and Deconstruction

B14 lessonsPRO

Return and unpack multiple values with value tuples, named elements, and deconstruction.

  • Value Tuples Basics
  • Named Tuple Elements
  • Deconstruction
  • +1 more
20

Boxing, Unboxing and Type Conversion

B14 lessonsPRO

Understand value vs reference semantics, boxing costs, and safe type conversions.

  • Value Types vs Reference Types
  • Boxing and Unboxing
  • Implicit and Explicit Conversions
  • +1 more
21

Extension Methods

B14 lessonsPRO

Add behavior to existing types without modifying them using extension methods.

  • Defining Extension Methods
  • Extending Interfaces and Generics
  • Extension Method Resolution
  • +1 more
22

Local Functions and Closures

B14 lessonsPRO

Organize logic with nested local functions and understand how closures capture state.

  • Declaring Local Functions
  • Closures and Captured Variables
  • Static Local Functions
  • +1 more
23

Ranges and Indices

B14 lessonsPRO

Slice arrays and spans expressively with the index-from-end and range operators.

  • The Index Type and ^ Operator
  • The Range Type and .. Operator
  • Ranges with Arrays and Strings
  • +1 more
24

Collection Expressions and Spreads

B14 lessonsPRO

Create and combine collections concisely with C# 12 collection expressions.

  • Collection Expression Syntax
  • The Spread Element
  • Target Typing Collections
  • +1 more
25

Primary Constructors

B14 lessonsPRO

Reduce boilerplate with C# 12 primary constructors on classes and structs.

  • Primary Constructors on Classes
  • Capturing Parameters in Members
  • Primary Constructors with Structs
  • +1 more
26

Required Members and init Setters

B14 lessonsPRO

Enforce object initialization with required members and immutable init-only properties.

  • init-Only Setters
  • The required Modifier
  • Immutable Object Patterns
  • +1 more
27

Object-Oriented Programming (OOP) Basics

B17 lessonsPRO

Explore the principles of Object-Oriented Programming (OOP) in C#, including classes, objects, and inheritance. Learn how to encapsulate da…

  • What is Object-Oriented Programming?
  • Defining Classes and Objects
  • Understanding Properties and Methods
  • +4 more
28

Working with Files and Data

B15 lessonsPRO

Learn to handle data like a pro by reading and writing files, processing JSON and XML, and working with databases. This category equips you…

  • Reading and Writing Files
  • Working with JSON and XML
  • Understanding Exception Handling
  • +2 more
29

Classes & Objects

B13 lessonsPRO

Create simple types with fields and auto-properties , use object initializers , then move on to constructors, static members, and encapsula…

  • Fields, auto-properties, object initializers
  • Constructors, static members
  • Encapsulation & invariants
30

Inheritance & Abstraction

B13 lessonsPRO

Use inheritance to reuse behavior. Master virtual/override/sealed , abstract classes , and prepare for polymorphism with interfaces.

  • virtual/override/sealed; abstract classes
  • Interfaces (intro) & multiple interface implementation
  • Polymorphism & dynamic dispatch
31

Structs, Records, Enums

B13 lessonsPRO

Explore structs (value types), the idea of record-like value equality (C# 6 pattern), and enums for named constants.

  • Structs: value semantics & immutability pattern
  • Record-like types & value-based equality (pattern)
  • Enums & [Flags]
32

Mini Project: Shape Library

B13 lessonsPRO

Build a tiny Shape library: design with interfaces , implement shapes, and use polymorphism to compute areas/perimeters.

  • Design (interfaces + inheritance)
  • Implementation & tests
  • Polymorphic behaviors
33

Exceptions & Resource Safety

B13 lessonsPRO

Handle failures with try/catch/finally , know when to throw , and learn correct rethrow to keep the original stack trace.

  • try/catch/finally, throw new vs rethrow
  • Custom exceptions; error design
  • IDisposable, using statement
34

Nullable Reference Types

B14 lessonsPRO

Eliminate NullReferenceExceptions at compile time using C# 8+ Nullable Reference Types: annotations, flow analysis, and migration strategie…

  • Enabling & Understanding NRT
  • Annotations: ?, !, MaybeNull & NotNull
  • Null-Conditional & Null-Coalescing Operators
  • +1 more
35

Records & Immutable Data

B14 lessonsPRO

Use C# records, init-only properties, and with-expressions to model immutable value objects and domain entities with built-in equality sema…

  • Record Types: Basics & Syntax
  • Immutability with init & with
  • Value Equality & Deconstruction
  • +1 more
36

Configuration & Options Pattern

B14 lessonsPRO

Master .NET configuration: appsettings.json, environment variables, secrets, strongly typed Options, IOptionsSnapshot, and validation.

  • Configuration Sources & Providers
  • Strongly Typed Options with IOptions
  • Options Validation & Named Options
  • +1 more
37

NuGet & Packaging

B13 lessonsPRO

Create reusable libraries and publish them as NuGet packages. Learn project types, versioning, and packing basics.

  • Library vs app .csproj, semantic versioning
  • Packing & publishing to NuGet
  • Multi-targeting
38

Diagnostics & Logging

B13 lessonsPRO

Add simple diagnostics with Debug/Trace and a small logging abstraction so outputs can be routed to console, files, or tools.

  • Logging abstractions, Debug/Trace
  • Basic profiling & traces (concepts)
  • Guard & validation patterns
39

Iterators and yield return

B24 lessonsPRO

Produce sequences lazily with iterator methods and the yield keyword.

  • Iterator Methods with yield return
  • yield break and Early Termination
  • Lazy Evaluation Semantics
  • +1 more
40

Operator Overloading

B24 lessonsPRO

Give your types natural syntax by overloading operators and conversions.

  • Overloading Arithmetic Operators
  • Overloading Comparison Operators
  • User-Defined Conversions
  • +1 more
41

IComparable, IEquatable and Custom Equality

B24 lessonsPRO

Make your types sortable and comparable by implementing equality and comparison interfaces correctly.

  • Implementing IEquatable
  • Overriding GetHashCode
  • Implementing IComparable
  • +1 more
42

Advanced Programming Concepts

B26 lessonsPRO

Step up your coding skills with advanced C# features like interfaces, abstract classes, and delegates. This category dives into sophisticat…

  • Introduction to Interfaces
  • Abstract Classes
  • Static Members and Methods
  • +3 more
43

Building Desktop Applications

B23 lessonsPRO

Bring your skills to life by building interactive desktop applications with Windows Forms. In this category, you’ll design user interfaces,…

  • Introduction to Windows Forms
  • Designing User Interfaces
  • Handling Events in Forms
44

Generics I

B23 lessonsPRO

Build type-safe reusable code with generics : generic methods and types, plus core constraints like class, struct, new(), and interface bou…

  • Generic methods/types; constraints
  • Variance (in/out) with interfaces & delegates
  • Nullable reference types (awareness) & annotations (C# 6 patterns)
45

Delegates, Lambdas & Events

B23 lessonsPRO

Use delegates to pass methods as values, write concise lambdas , and understand variable closures ; prepares you for C# events next.

  • delegate, Action/Func, closures
  • Events: publish/subscribe, event keyword
  • Event patterns, pitfalls (memory leaks)
46

Dependency Injection in .NET

B24 lessonsPRO

Master the built-in .NET DI container: registering services, lifetimes (Transient, Scoped, Singleton), constructor injection, and factory p…

  • DI Container Fundamentals
  • Service Lifetimes: Transient, Scoped, Singleton
  • Constructor Injection & Interfaces
  • +1 more
47

Entity Framework Core Fundamentals

B24 lessonsPRO

Get productive with EF Core: DbContext, DbSet, migrations, CRUD operations, and relationships in a code-first workflow.

  • DbContext & DbSet Basics
  • Migrations & Schema Management
  • CRUD Operations with EF Core
  • +1 more
48

ASP.NET Core Minimal APIs

B24 lessonsPRO

Build lightweight, high-performance HTTP APIs using the Minimal API model introduced in .NET 6: routing, validation, middleware, and OpenAP…

  • Creating Your First Minimal API
  • Route Groups, Parameters & Validation
  • Middleware & Filters in Minimal APIs
  • +1 more
49

SignalR Real-Time Communication

B24 lessonsPRO

Add real-time push capabilities to .NET apps using SignalR hubs, groups, backplanes, and strongly typed clients.

  • SignalR Hubs & Connections
  • Groups, Users & Connection Management
  • Strongly Typed Hubs
  • +1 more
50

Blazor Components & State

B24 lessonsPRO

Build interactive web UIs in C# with Blazor: components, data binding, event handling, dependency injection, and state management patterns.

  • Blazor Component Model
  • Data Binding & Event Handling
  • Component Communication & DI
  • +1 more
51

Middleware & Request Pipeline

B24 lessonsPRO

Understand and build ASP.NET Core middleware: request/response pipeline, short-circuiting, custom middleware classes, and ordering best pra…

  • ASP.NET Core Pipeline Overview
  • Writing Custom Middleware
  • Short-Circuiting & Branching
  • +1 more
52

Background Services & Workers

B24 lessonsPRO

Run long-running work in .NET using IHostedService, BackgroundService, Worker Services, and Quartz.NET for scheduled jobs.

  • IHostedService & BackgroundService
  • Worker Service Projects
  • Periodic Tasks & Timers
  • +1 more
53

LINQ Fundamentals

B23 lessonsPRO

Learn LINQ basics: build IEnumerable<T> pipelines and understand deferred execution and when results are materialized.

  • IEnumerable pipelines; deferred execution
  • Select, Where, OrderBy, Take/Skip
  • Query vs method syntax
54

Collections II

B23 lessonsPRO

Meet more core collections: HashSet<T> , SortedSet<T> , Queue<T> , and Stack<T> . Learn their shapes (set, FIFO, LIFO) and when to use each.

  • HashSet , SortedSet , Queue , Stack
  • ConcurrentDictionary , immutable collections
  • Equality & hashing (value vs reference)
55

Files & Serialization

B23 lessonsPRO

Work with System.IO : paths, files, and streams. Learn safe read/write patterns and small checks for existence.

  • System.IO (paths, streams)
  • JSON with System.Text.Json (opt-ins, converters)
  • Simple CSV parsing patterns
56

Unit Testing Basics

B23 lessonsPRO

Start testing in C#: understand test structure, common frameworks (MSTest/xUnit), and how assertions turn expectations into pass/fail.

  • xUnit/MSTest setup, assertions
  • Fakes via interfaces; test data builders
  • Debugging failing tests
57

gRPC with .NET

B24 lessonsPRO

Build strongly typed, high-performance inter-service communication using gRPC, Protobuf, streaming, and deadline/cancellation patterns in .…

  • gRPC & Protobuf Fundamentals
  • Unary & Server Streaming RPCs
  • Client & Bidirectional Streaming
  • +1 more
58

JWT Authentication in ASP.NET Core

B24 lessonsPRO

Secure web APIs with JSON Web Token authentication, validation, and token issuance.

  • JWT Structure and Claims
  • Configuring JWT Bearer Authentication
  • Issuing Tokens
  • +1 more
59

Authorization Policies and Claims

B24 lessonsPRO

Control access with role-based, claims-based, and policy-based authorization in ASP.NET Core.

  • Role-Based Authorization
  • Claims-Based Authorization
  • Policy-Based Authorization
  • +1 more
60

API Versioning and OpenAPI

B24 lessonsPRO

Version your APIs cleanly and generate interactive documentation with OpenAPI.

  • API Versioning Strategies
  • Configuring Asp.Versioning
  • Generating OpenAPI Documents
  • +1 more
61

Rate Limiting and Output Caching

B24 lessonsPRO

Protect and accelerate APIs with built-in rate limiting and output caching middleware.

  • Rate Limiting Algorithms
  • Configuring Rate Limiting Middleware
  • Output Caching Basics
  • +1 more
62

FluentValidation and Model Validation

B24 lessonsPRO

Validate inputs robustly using data annotations and the FluentValidation library.

  • Data Annotation Validation
  • FluentValidation Rules
  • Custom and Conditional Rules
  • +1 more
63

Resilience with Polly

B24 lessonsPRO

Build fault-tolerant apps with retries, circuit breakers, and timeouts using Polly.

  • Retry Policies
  • Circuit Breaker Pattern
  • Timeout and Fallback Policies
  • +1 more
64

Distributed Caching with Redis

B24 lessonsPRO

Scale your application with distributed caching backed by Redis in .NET.

  • IDistributedCache Abstraction
  • Connecting to Redis
  • Cache Patterns and Expiration
  • +1 more
65

Tasks & async/await

B23 lessonsPRO

Master the mental model of Task and async/await : what an async method returns, how awaits schedule continuations, and why the compiler bui…

  • Task/ValueTask and the async state machine (concepts)
  • Async pitfalls: sync-over-async and deadlocks
  • ConfigureAwait, exception flow
66

Expression Trees Basics

C14 lessonsPRO

Represent code as data with expression trees for dynamic queries and runtime compilation.

  • What Are Expression Trees
  • Building Expressions Manually
  • Compiling and Executing Expressions
  • +1 more
67

Advanced C# Features

C15 lessonsPRO

Unlock the advanced capabilities of C# with lessons on generics, asynchronous programming, threading, and reflection. This category will te…

  • Generics in C#
  • Async and Await: Working with Asynchronous Code
  • Understanding Threading and Tasks
  • +2 more
68

LINQ Advanced

C13 lessonsPRO

Dive deeper into LINQ: GroupBy , Join , Aggregate , and clean projections with anonymous types .

  • GroupBy, Join, Aggregate, projections (anonymous types)
  • Materialization (ToList, ToDictionary) & perf notes
  • Composability tips
69

EF Core Advanced Queries

C14 lessonsPRO

Go beyond the basics: eager/lazy loading, raw SQL, compiled queries, owned entities, and global query filters for production-grade data acc…

  • Eager, Lazy & Explicit Loading
  • Raw SQL, Stored Procedures & Interpolation
  • Compiled Queries & Performance
  • +1 more
70

Advanced Async Patterns

C14 lessonsPRO

Go beyond basic async/await: IAsyncEnumerable, Channels, ValueTask, ConfigureAwait, and structured concurrency patterns for scalable .NET s…

  • IAsyncEnumerable & await foreach
  • System.Threading.Channels
  • ValueTask & Avoiding Allocations
  • +1 more
71

Native AOT & Performance

C14 lessonsPRO

Compile .NET applications to standalone native binaries with AOT: trim analysis, reflection limitations, ReadyToRun, and benchmarking with…

  • Native AOT Compilation
  • Trimming & Reflection Limitations
  • ReadyToRun & Tiered Compilation
  • +1 more
72

C# Interop with Native Code

C14 lessonsPRO

Call native libraries and OS APIs from C# using P/Invoke, LibraryImport, unsafe code, fixed buffers, and COM interop techniques.

  • P/Invoke Fundamentals
  • LibraryImport & Source-Generated P/Invoke
  • Unsafe Code, Pointers & Fixed Buffers
  • +1 more
73

CQRS and MediatR Patterns

C14 lessonsPRO

Separate reads and writes and decouple handlers with the CQRS pattern and MediatR.

  • CQRS Concepts
  • Commands and Handlers with MediatR
  • Pipeline Behaviors
  • +1 more
74

OpenTelemetry and Observability

C14 lessonsPRO

Instrument .NET apps with distributed tracing, metrics, and structured logging via OpenTelemetry.

  • The Three Pillars of Observability
  • Distributed Tracing
  • Collecting Metrics
  • +1 more
75

Message Queues with MassTransit

C14 lessonsPRO

Build event-driven systems with message queues and the MassTransit framework.

  • Messaging Concepts
  • Producing and Consuming Messages
  • Sagas and Workflows
  • +1 more
76

Pattern Matching Deep Dive

C13 lessonsPRO

Understand pattern-matching concepts and how to emulate them in C# 6 using classic techniques: is + casts, guard helpers, and small predica…

  • is patterns; relational & logical patterns (C# 6 emulation)
  • switch expressions; exhaustive checks with when (C# 6 emulation)
  • Domain modeling with discriminated unions (records) — C# 6 emulation
77

Advanced Generics & Constraints

C13 lessonsPRO

Use generic constraints available in C# 6 (class/struct/new()) and learn practical emulations for newer notnull/unmanaged ideas.

  • unmanaged, notnull, new() (C# 6 emulation)
  • Generic math (overview), generic attributes (when relevant)
  • Reusable generic utilities
78

Span<T> & Memory

C13 lessonsPRO

Understand memory-friendly slicing. In C# 6 we emulate Span/ReadOnlySpan using ArraySegment<T> , offsets, and careful APIs to avoid extra a…

  • Span/ReadOnlySpan fundamentals (C# 6 emulation)
  • Memory/ReadOnlyMemory emulation: zero-copy windows
  • String-as-Span APIs (C# 6 emulation)
79

Reflection & Attributes

C13 lessonsPRO

Discover reflection basics: get a Type , find a MethodInfo , create objects via Activator , and read custom attributes — all compatible wit…

  • Type, MethodInfo, activation, custom attributes
  • Source-level info (Caller attributes)
  • Light metaprogramming scenarios
80

Cancellation & Timeouts

C13 lessonsPRO

Use CancellationToken for cooperative cancel: pass tokens, poll IsCancellationRequested, throw OperationCanceledException , and wire up sou…

  • CancellationToken patterns; cooperative cancel
  • Timeouts, IProgress , async disposables (emulation)
  • Resilience basics: retry & backoff
81

Parallelism & Data Processing

C13 lessonsPRO

Process data faster with Parallel.ForEach and PLINQ . Learn degree of parallelism, ordering, and side-effect safety.

  • Parallel.ForEach, PLINQ
  • Producer/consumer with Channels (overview)
  • Throughput vs latency trade-offs
82

Scripting & Interop

C13 lessonsPRO

Use C# scripting to try ideas fast: dotnet script, REPL/snippets, and quick glue code without full projects.

  • C# scripting (dotnet script), snippets & REPL
  • Interop basics (P/Invoke) at a glance
  • CLI ergonomics
83

Source Generators (Intro)

C22 lessonsPRO

Understand what C# source generators are, why they help, and how to emulate the idea in C# 6 using attributes, partial classes, and simple…

  • Concept & use-cases; incremental generators (overview)
  • Developer experience & limitations

Start C# Academy Now

Join thousands of learners mastering programming with AI-powered lessons.

Get Started Free →Browse All Courses