C is the lingua franca of systems programming: the language of UNIX, Linux kernels, embedded devices, and the universal external interface of every other language. Created at Bell Labs by Dennis Ritchie in 1972, it is small, predictable, and unforgiving — and it rewards disciplined engineers with complete control over the machine. This roadmap teaches C honestly: what it does brilliantly, where it hurts, and how modern successors like Zig and Oberon compare.
gcc -Wall -Wextra -std=c11 file.c -o app), and revisit the index for targeted reference.
| # | C | Topic | Description |
|---|---|---|---|
| PHASE 1: LANGUAGE FOUNDATIONS | |||
| 01 | Why C & Thinking in C | Origins, purpose, and an honest look at C compared with Zig and Oberon. | |
| 02 | Toolchain & First Program | Install GCC or Clang, compile, lint, and run your first program safely. | |
| 03 | Lexical Structure | Punctuation, keywords, comments, statements, and expressions. | |
| 04 | Data Types & Conversions | Primitive types, qualifiers, and the implicit/explicit conversion rules. | |
| 05 | Arrays, Structs, Unions | Arrays, structs, unions, enums, bit-fields, and typedef. | |
| 06 | Pointers & Arrays | Addresses, dereferencing, pointer arithmetic, and pointer-to-pointer. | |
| PHASE 2: PROGRAM EXECUTION | |||
| 07 | Functions & Scope | Prototypes, recursion, scope, linkage, static, and variadic functions. | |
| 08 | Control Flow | Conditionals, loops, break/continue, switch, and goto. | |
| 09 | Input & Output | printf/scanf formats, robust text input, and standard file I/O. | |
| PHASE 3: MEMORY & PRECOMPILATION | |||
| 10 | The Preprocessor | #include, #define, macros and their pitfalls, include guards, #if. | |
| 11 | Dynamic Memory | Stack vs heap, malloc/calloc/realloc/free, leaks, and sanitizers. | |
| 12 | Error Handling | Return codes, errno, perror/strerror, setjmp/longjmp, and assertions. | |
| 13 | Strings | Char arrays vs pointers, NUL termination, and safe string functions. | |
| PHASE 4: DATA STRUCTURES & ALGORITHMS | |||
| 14 | Data Structures | Linked lists, dynamic arrays, stacks, queues, hash tables, and BSTs. | |
| 15 | Algorithms | Sorting, searching, recursion, memoization, and complexity analysis. | |
| PHASE 5: ADVANCED C | |||
| 16 | Advanced C | Function pointers, callbacks, bit manipulation, endianness, type punning. | |
| 17 | Parallel & Multicore | Threads, atomics, mutexes, OpenMP, SIMD, and MPI for the CPU. | |
| 18 | GPU Computing | Kernels, memory transfers, and CUDA / OpenCL / SYCL on many-core devices. | |
| 19 | ABI & Assembly | Calling conventions, inline asm, C-to-assembly interop, and assembler choices. | |
| PHASE 6: PRACTICE & DEMO | |||
| 20 | Lab Examples | Run and modify single-file practice demos for every lesson. | |
| 21 | Study Projects | Composed mini-projects: linked list, vector library, hash table tool. | |
| PHASE 7: REFERENCE | |||
| 22 | References & Compilers | Browser playgrounds, official docs, free courses, and sample repos. | |
For the full categorized table — online C playgrounds, official documentation, courses, and sample repos — see the References & Compilers page.