Skip to content
AgileLogics
5 min read

What You Should Know Now — and What's Next

What You Should Know Now

  • Core syntax: variables, control flow, arrays, functions
  • Pointers in depth: addresses, dereferencing, pointer arithmetic, and passing by pointer
  • Manual memory management with malloc/free, and the bugs (leaks, double-frees, use-after-free) that come with it
  • Structs, unions, enums, and building your own data structures (linked lists, stacks, trees, hash tables) from scratch
  • Multi-file programs, Make/CMake, and linking static and shared libraries
  • Concurrency with pthreads, processes with fork, and raw sockets
  • Undefined behavior, sanitizers, and what "safe C" actually means

What Should You Learn Next?

  • A related language — C++ builds directly on everything here, adding classes, templates, and a much larger standard library on top of the same underlying memory model.
  • Rust — a modern systems language that enforces the memory-safety rules this course asked you to track by hand, at compile time instead.
  • Operating systems concepts — now that pointers, processes, and memory are concrete, a real OS course (or Operating Systems: Three Easy Pieces, a well-regarded free text) will make far more sense.

Build Something

Pick a project idea that solves an actual problem you personally have — and build it in C from the start, running it under Valgrind and with -fsanitize=address,undefined enabled from day one, rather than only reaching for them after something breaks.