No description
- C 100%
| stage-1-beginner | ||
| stage-2-intermediate | ||
| stage-3-upper-intermediate | ||
| stage-4-advanced | ||
| stage-5-expert/ongoing | ||
| .gitignore | ||
| README.md | ||
C Learning Path
A structured repository for learning C from beginner to expert.
Structure
| Stage | Folder | Weeks | Topics |
|---|---|---|---|
| 1 — Beginner | stage-1-beginner/ |
1–3 | Syntax, types, arrays, strings, I/O |
| 2 — Intermediate | stage-2-intermediate/ |
4–6 | Pointers, memory, structs, files |
| 3 — Upper-intermediate | stage-3-upper-intermediate/ |
7–9 | Data structures, algorithms, POSIX |
| 4 — Advanced | stage-4-advanced/ |
10–13 | Concurrency, sockets, performance |
| 5 — Expert | stage-5-expert/ |
Ongoing | ABI, allocators, security, lock-free |
How to use
- Work through each stage in order — later stages build on earlier ones.
- Open the topic folder, read
README.md, and complete the TODOs in the.cfile. - Compile with:
gcc -Wall -Wextra -Werror -g -o out <file>.c && ./out - Once all TODOs pass, tick the topic off in your checklist.
Compile flags cheat sheet
# Basic
gcc -Wall -Wextra -Werror -g -o out file.c
# With sanitisers (stage 3+)
gcc -Wall -Wextra -Werror -g -fsanitize=address,undefined -o out file.c
# Optimised + LTO (stage 5)
gcc -O2 -flto -o out file.c