The foundational systems language.
WHAT IT IS
A statically typed, compiled, procedural language with manual memory management and minimal abstraction.
WHY IT MATTERS
Operating systems, language runtimes, databases and embedded systems are largely written in it.
WHAT THAT MEANS
Understanding C means understanding what other languages hide.
WHAT IT PROVIDES
Direct memory access through pointers Predictable performance Minimal runtime Portability across essentially every platform
WHAT IT DOES NOT PROVIDE
Memory safety Bounds checking Automatic memory management Much of a standard library
WHAT THAT MEANS
The programmer is responsible for correctness entirely.
WHAT THE CONSEQUENCES ARE
Buffer overflows Use after freeing Memory leaks Undefined behaviour
WHY THAT MATTERS
Those are among the most exploited classes of vulnerability in history.
WHAT TO USE
Modern compilers with warnings enabled Static analysis Sanitisers detecting memory faults at runtime
WHO SHOULD LEARN IT
Anyone working close to hardware, and anyone wanting to understand how computers actually work.