Learn C
Structured lessons from the basics up — follow the path below in order, at your own pace.
-
1
Level 1 — Beginner Beginner 26 lessons
Start here if you have never written a line of C before. Work through these lessons in order — each one builds on the last, and pointers in...
Lessons in this module
What Is C? Why Learn C? Installing a C Compiler Setting Up Your Development Environment Your First C Program How C Code Runs: Compiling and Linking Variables & Data Types Type Casting & Conversion Operators Constants Strings Reading User Input Conditionals Switch Statements Loops Arrays Multidimensional Arrays Functions Function Declarations & Header Files Pointers: Introduction Pointers and Arrays The Preprocessor and Macros Structs typedef Comments & Code Style Debugging Basics: Warnings and Segfaults -
2
Beginner Projects Beginner 1 lesson
Build these with nothing but what Level 1 covered — variables, arrays, functions, and basic pointers. 1. Command Line Calculator Read two nu...
-
3
Level 2 — Intermediate Intermediate 18 lessons
These lessons cover dynamic memory, multi file programs, the standard library, and the classic data structures every C programmer builds by...
Lessons in this module
Pointers Deep Dive Dynamic Memory Allocation Memory Leaks & Common Pitfalls Unions Enums File I/O Command-Line Arguments Multi-File Programs & Header Files The Standard Library: An Overview String Manipulation in Depth Bit Manipulation Recursion Sorting & Searching Algorithms Linked Lists Stacks & Queues Build Tools: Make Debugging with GDB and Valgrind Error Handling Conventions -
4
Intermediate Projects Intermediate 1 lesson
Build these using dynamic memory, structs, and the data structures from Level 2. 1. Singly Linked List To Do List Rebuild the console to do...
-
5
Level 3 — Advanced Advanced 17 lessons
These lessons cover concurrency, systems level programming, and how a real C project is built, tested, and shipped.
Lessons in this module
Function Pointers & Callbacks Void Pointers & Generic Programming Binary Trees Hash Tables Multithreading with pthreads Process Management: fork and exec Inter-Process Communication: Pipes Networking Basics: Sockets Memory Management in Depth Undefined Behavior & Writing Safer C The C Standard: C89 Through C23 Static & Shared Libraries Build Systems: CMake Testing in C Performance Optimization & Profiling Security Fundamentals Packaging & Deployment -
6
Advanced Projects Advanced 1 lesson
Build these using data structures, concurrency, and systems knowledge from Level 3. 1. Multi Threaded File Word Counter Given a folder of te...
-
7
What You Should Know Now — and What's Next 1 lesson
What You Should Know Now Core syntax: variables, control flow, arrays, functions Pointers in depth: addresses, dereferencing, pointer arithm...