bitwise

C Programming

A complete path through C for developers coming from JavaScript: memory, pointers, the toolchain, debugging, concurrency and the standards, in the order the roadmap.sh C path teaches them.

Chapters
23
Roadmap topics
141
Video lessons
29· 4h 07m
Sources
269· 165 + 104

You need a C compiler (gcc or clang) and a terminal. Chapter 2 walks through the setup.

Chapters

DoneIn progress

Getting started01–02

  1. 01IntroductionApplications · C vs Assembly · C vs C++7:27
  2. 02Setting upInstalling C · Running your first program · Code editors / IDEs · vim / nvim · VSCode6:55

The basics03–07

  1. 03VariablesDeclaration vs definition · Initialization · Printing variables6:24
  2. 04Data Typesintegers · float · double · char · fixed-width integers · booleans · extended types · type conversion · type qualifiers · const · volatile · restrict · _Atomic7:42
  3. 05OperatorsArithmetic · Comparison · Logical · Ternary · Bitwise8:36
  4. 06Control Flowif / else and switch · for, while and do while loops · break / continue6:35
  5. 07Functionsmain function · Recursive functions · Variable scopes · Variadic functions · Command-line arguments9:08

Core C08–19

  1. 08Pointers & MemoryMemory model · Stack vs heap · Lifetime of objects · Pointer basics · Null pointers · void pointers · Pointer arithmetic · malloc · calloc · realloc · free · Memory leaks · Dangling pointers · Undefined behavior · Buffer overflow3 videos · 24:43
  2. 09ArraysArrays7:31
  3. 10StringsStrings8:53
  4. 11User-Defined TypesStructs · Typedef · Unions · Enums9:38
  5. 12Common Data StructuresDynamic arrays · Hash maps · Linked lists · Ring buffers / FIFO queues9:19
  6. 13Structuring CodebaseHeader files · Linkage · static · extern9:25
  7. 14Error Handlingerrno · Exit codes · setjmp / longjmp7:54
  8. 15File I/OStreams · File pointers · Binary vs text mode9:42
  9. 16Standard LibraryInput / output · Data utilities · Text processing · Math and time · Diagnostics and limits · OS and signal interfaces9:31
  10. 17Build & CompilationPreprocessor · Macros · Conditional compilation · Compilers · GCC / Clang · Optimization levels · Linking · ABI · GNU Make · CMake · Ninja · Meson · Package managers3 videos · 24:55
  11. 18DebuggingGDB · LLDB · WinDbg · Valgrind · strace · ASan & LSan9:53
  12. 19Testingassert.h · Unity · CMocka · Check9:25

Advanced C20–23

  1. 20Idioms & Design PatternsFunction pointers & callbacks · Opaque pointers · Object-oriented C · RAII-simulated cleanup9:19
  2. 21ConcurrencyPOSIX threads · Mutexes · IPC2 videos · 17:07
  3. 22Process ManagementProcess management9:52
  4. 23C StandardsC89 / C90 · C99 · C11 · C17 · C2311:01

Course map

A 6:48 tour of all 23 chapters: what each one covers and how they build on each other.

Course map — video lesson

6:48 · Explainer