Where To Go Next
Projects to build and topics to explore once the basics are solid.
Everything up to this point — variables, control flow, functions, arrays, pointers, memory, and files — is enough to build real programs. The rest of C is mostly combinations and refinements of these same ideas.
Projects worth building
- A command-line to-do list — practice structs, arrays, and file I/O together by saving tasks to disk.
- A simple text adventure — practice control flow, strings, and program structure across multiple files.
- A linked list from scratch — the natural next data structure once pointers and
mallocfeel comfortable; it's a small, self-contained way to practice both. - A basic hash table or dynamic array — forces you to think carefully about
reallocand memory ownership.
Topics beyond this course
- Linked lists, stacks, queues, and trees — data structures built directly from structs and pointers.
- Function pointers — storing and passing functions themselves as values.
- The standard library in depth —
<math.h>,<time.h>, and<ctype.h>cover most everyday needs beyond what this course touched. - Bitwise operators —
&,|,^,<<,>>, for working directly with individual bits. - Build systems —
makeorCMake, for projects with many source files. - How C connects to systems programming — processes, the standard library's relationship to system calls, and eventually reading real-world C codebases.
checklist.c
1/* Before moving on, you should be comfortable:2* - reading a compiler warning and knowing what it means3* - tracing what a pointer points to, by hand, on paper4* - explaining why every malloc needs a free5* - splitting a small program across a .c and .h file6*/
note: The best next step is a project, not another tutorial
Pick something slightly beyond your comfort level from the list above and build it end to end. You will hit real bugs — that's where the ideas in 0x10 actually stick.