No description
Find a file
2026-05-18 23:24:39 +01:00
stage-1-beginner week 1 - variables completed 2026-05-18 23:24:39 +01:00
stage-2-intermediate added lessons 2026-05-14 21:37:30 +01:00
stage-3-upper-intermediate added lessons 2026-05-14 21:37:30 +01:00
stage-4-advanced added lessons 2026-05-14 21:37:30 +01:00
stage-5-expert/ongoing added lessons 2026-05-14 21:37:30 +01:00
.gitignore Initial commit: full C learning path structure 2026-05-12 21:34:05 +01:00
README.md Initial commit: full C learning path structure 2026-05-12 21:34:05 +01:00

C Learning Path

A structured repository for learning C from beginner to expert.

Structure

Stage Folder Weeks Topics
1 — Beginner stage-1-beginner/ 13 Syntax, types, arrays, strings, I/O
2 — Intermediate stage-2-intermediate/ 46 Pointers, memory, structs, files
3 — Upper-intermediate stage-3-upper-intermediate/ 79 Data structures, algorithms, POSIX
4 — Advanced stage-4-advanced/ 1013 Concurrency, sockets, performance
5 — Expert stage-5-expert/ Ongoing ABI, allocators, security, lock-free

How to use

  1. Work through each stage in order — later stages build on earlier ones.
  2. Open the topic folder, read README.md, and complete the TODOs in the .c file.
  3. Compile with: gcc -Wall -Wextra -Werror -g -o out <file>.c && ./out
  4. 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

Resources