Introduction to C
C is a compiled, statically typed language with no garbage collector, no classes, and no exceptions — just functions, structs, and direct control over memory. It was created in the early 1970s, and most operating systems, language runtimes, and databases (including the Node.js, Python, and Java runtimes used elsewhere on this site) still have a C core underneath them.
Every other course on this site builds on some kind of safety net — a garbage collector, a borrow checker, RAII destructors. C has none of that. When you allocate memory, you're responsible for freeing it yourself; when you hold a pointer, nothing stops you from using it incorrectly. That's the real tradeoff this course is about: total control, with no guardrails.
A quick preview
Here's a real C program, executed for real on this page's own compiler — not a mockup:
#include <stdio.h>
int main() {
printf("C: the language that's actually running underneath everything else.\n");
return 0;
}C: the language that's actually running underneath everything else.
That's printf, C's standard way to produce output. The next lesson runs your first full program and explains exactly what's happening.
Practice exercise
Declare a variable named version of type int set to 17, then print "C version: " followed by version using printf with %d.