C
A low-level systems language that underpins most other languages.
CurrentintermediateFull course available
Overview
C gives direct control over memory and hardware with minimal abstraction. Operating systems, language runtimes, and embedded systems are commonly written in C -- understanding it demystifies what higher-level languages (Python, JavaScript) are doing underneath.
- What it is
- A statically-typed, compiled, low-level language with manual memory management.
- Why it's used
- For systems programming, performance-critical code, and embedded devices where you need direct memory/hardware control.
- Where it fits
- After general programming basics, ideally alongside a data structures course -- C makes memory layout and pointers concrete.
Core concepts
- Pointers and memory addresses
- Manual memory management (malloc/free)
- Arrays and structs
- Compilation to machine code
Example
Every variable has an explicit type and a fixed memory size -- there's no garbage collector; the programmer is responsible for memory C dynamically allocates.
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(2, 3);
return 0;
}Common use cases
- Operating systems and drivers
- Embedded systems
- Performance-critical libraries
Project ideas
- A simple linked-list implementation, managing memory manually