6-month track
C
Six months from 'hello, world' to writing your own data structures and a small interpreter.
What is C?
C is the language most operating systems, compilers and embedded devices are still written in. It gives you almost nothing for free — no garbage collector, no built-in strings, no safety net — which is exactly why learning it teaches you how memory, pointers and the machine underneath every other language actually work.
What you'll learn
- Understand pointers, the stack and the heap well enough to explain them, not just use them
- Implement core data structures — lists, stacks, trees — from scratch, with no library
- Manage memory manually without leaking it, and catch bugs with valgrind
- Read a Makefile and build a multi-file C project from the command line
Curriculum
month 1
Foundations
Learn the syntax and the mental model C runs on.
- Variables, types and operators
- Control flow and functions
- Compiling with gcc
- Reading compiler errors
month 2
Arrays & Strings
Work with raw data the way C actually represents it.
- Arrays and multi-dimensional arrays
- C strings and string.h
- Command-line arguments
- Scope and storage duration
month 3
Pointers & Memory
The core skill C is taught for.
- Pointers and pointer arithmetic
- malloc, calloc, realloc, free
- structs and typedef
- Common memory bugs and how to spot them
month 4
Data Structures
Build the structures other languages give you for free.
- Linked lists
- Stacks and queues
- Binary trees
- Testing your own data structures
month 5
Systems Basics
Move from a single file to a real, buildable project.
- File I/O
- The preprocessor and macros
- Makefiles and multi-file projects
- Debugging with gdb and valgrind
month 6
Capstone Project
Build something real with everything so far.
- Design a small CLI tool or interpreter
- Error handling without exceptions
- Memory-leak-free by design
- Ship and document the project