0%
Learn C#
Work through the course in order, or jump to any lesson below.
Orientation (Mindset & Reality)
Prerequisites: Your Real Development Environment
C# Fundamentals (Core Language Fluency)
- No AI — Learn First
- Hello World: Every Token Explained
- Variables, Types & Declarations
- Value Types vs Reference Types
- Strings & Interpolation
- Operators & Math
- Conditionals
- Loops
- Arrays
- Methods
- Reading Input
- Type Casting
- Mini Project: Number Guessing Game
- Mini Project: Simple Calculator
- Mini Project: Grade Calculator
Thinking in Systems (Advanced Fundamentals)
Console Applications (Real Software, No Frameworks)
- What Is a Console Application?
- ReadLine vs Command-Line Args
- Program Structure & Entry Points
- Designing User Interaction in the Terminal
- Exception Handling in CLI Programs
- Organizing Larger Console Apps
- Intro to Verification — How Do You Know It Works?
- Mini-Project: Todo CLI
- Mini-Project: Quiz Game with Score Tracking
- Mini-Project: Text-Based Adventure Game
Files, Data & the Operating System
- Reading Files — File.ReadAllText & StreamReader
- Writing Files — File.WriteAllText & StreamWriter
- Working with CSV & Text Data
- Directories & Paths — System.IO
- Handling Missing or Broken Files
- Automating Repetitive Tasks
- Working with JSON — System.Text.Json
- Path Class & Cross-Platform File Handling
- Mini-Project: CSV Report Generator
- Mini-Project: Backup Script
- Mini-Project: File Renaming Tool
- Mini-Project: Log File Analyzer
Object-Oriented Programming (Foundations)
- Why OOP? From Functions to Classes
- Classes, Instances & Constructors
- Fields, Properties & Auto-Properties
- Methods & this
- Access Modifiers — public, private, protected
- The static Keyword
- Object Initializers & Named Arguments
- ToString(), Equals(), GetHashCode()
- When NOT to Use OOP
- Mini-Project: Refactor Your Todo CLI Using Classes
- Mini-Project: Library Catalogue System
- Mini-Project: Bank Account Simulator
Interfaces, Abstraction & Advanced OOP
Collections, LINQ & Generics
- Why Collections? The Limits of Arrays
- List<T> and LinkedList<T>
- Dictionary<TKey, TValue>
- HashSet<T> and SortedSet<T>
- Queue<T> and Stack<T>
- Iterating Collections
- Generics — Writing Type-Safe Reusable Code
- IEnumerable and IComparable
- Intro to LINQ — Querying Collections
- LINQ — Filtering, Projecting, Aggregating
- Choosing the Right Collection
- Mini-Project: Word Frequency Counter
- Mini-Project: Student Roster with Sorting & Filtering
- Mini-Project: Generic Stack Implementation
- Mini-Project: LINQ Data Pipeline Challenge
Testing with xUnit
Async, Tasks & Concurrency
- Why Async? The Problem With Blocking
- Tasks — What They Are and How They Work
- async and await — The Pattern in Depth
- Race Conditions and Why They Are Dangerous
- ConfigureAwait and Context
- Task.WhenAll and Task.WhenAny
- CancellationToken — Cooperative Cancellation
- Thread-Safe Collections
- Mini-Project: Async File Processor
- Mini-Project: Parallel API Caller
Project Structure & NuGet
APIs & HTTP Requests
- What Is an API?
- HTTP Basics — GET, POST, Headers, Status Codes
- HttpClient — The Right Way to Use It
- Parsing JSON with System.Text.Json
- Reading API Documentation
- Authentication — API Keys and Bearer Tokens
- Error Handling for Network Requests
- Mini-Project: Weather CLI App Using a Public API
- Mini-Project: GitHub Repository Fetcher
- Mini-Project: Currency Converter with Live Rates
Professional Workflow (Git & Collaboration)
Standard Library Essentials
- System.DateTime & DateTimeOffset — Working with Time Correctly
- TimeZoneInfo — Handling Zones and UTC
- String Utilities — StringBuilder, String.Format, Interpolation Deep-Dive
- Regular Expressions with System.Text.RegularExpressions
- Guid and Random — Identifiers and Randomness
- Environment & Path — OS-Level Information
- How to Read the .NET API Documentation