◐ ai-teacher

🔧 Free course

C Programming

Learn C from zero the way a systems engineer knows it: what every line does to memory, why it crashes, and how to build real data structures in C.

Start the course free →

What you will learn

  1. Why C, and how source code becomes a running program
    Python, Git, SQLite, Linux and the Python interpreter itself are written in C. Learn it and you see what every other language hides from you.
  2. Variables, types and how many bytes they take
    In Python a variable is a label on a value. In C a variable IS the box — a fixed number of bytes at a fixed address — and the type decides how many.
  3. Operators, integer division and overflow
    In C, 7 / 2 is 3, -1 is not less than 1u, and 2.5 billion fits in nothing you declared. Arithmetic does exactly what the types say — not what you meant.
  4. Decisions and loops: if, switch, for, while (coming soon)
  5. Functions, the call stack and pass-by-value (coming soon)
  6. Pointers: an address is just a number (coming soon)
  7. Arrays and pointer arithmetic (coming soon)
  8. Strings are char arrays ending in '\0' (coming soon)
  9. Stack vs heap: malloc, free and lifetime (coming soon)
  10. Memory bugs: leaks, dangling pointers and buffer overflows (coming soon)
  11. Structs, unions and memory layout (padding) (coming soon)
  12. Pointers to pointers and 2-D arrays (coming soon)
  13. Function pointers and callbacks (coming soon)
  14. const, static, extern and storage classes (coming soon)
  15. The preprocessor: #include, #define, macros and header guards (coming soon)
  16. Multi-file programs, headers and make (coming soon)
  17. File I/O: fopen, fgets, fprintf and binary files (coming soon)
  18. Bit manipulation: masks, shifts and flags (coming soon)
  19. Build a dynamic array (a growable vector) (coming soon)
  20. Linked lists in C (coming soon)
  21. Stacks and queues in C (coming soon)
  22. A hash table in C (coming soon)
  23. Undefined behaviour — what the compiler is allowed to do (coming soon)
  24. Debugging with gdb, Valgrind and AddressSanitizer (coming soon)
  25. C interview classics: sizeof, strings and pointer puzzles (coming soon)

How the course works