Programming · Intermediate
C Programming
The language underneath the others — small, sharp, and completely willing to let you make a mistake.
- Lessons
- 12 lessons
- Total runtime
- 48 hours of video
- Modules
- 4 modules
- Optional lessons
- 10 optional
Free. No account.

About this course
C is a small language. The whole thing fits in a thin book, and there is almost nothing between what you write and what the processor does. That is its appeal and its danger in the same breath: nothing is checked, nothing is hidden, and a mistake with a pointer does not raise an exception — it corrupts memory somewhere else and surfaces as a bug three functions away an hour later.
Learning it changes how you read every other language. Once you have managed memory by hand, garbage collection stops being invisible, a Python list stops being magic, and the entire design of Rust suddenly makes obvious sense. That perspective is the real reason to take this course, more than any intention to write C professionally.
Pointers are the whole difficulty and the whole point, so they get a module to themselves with five separate explanations in it. Most people bounce off pointers once, come back, and find them straightforward on the second attempt — so if the first pass does not land, that is the normal experience rather than a verdict, and the next lesson down is the second attempt. It helps a great deal to have done the How Computers Work course first, because a pointer is much less mysterious once you know what memory physically is.
About four hours required. The optional lessons run to about forty-five more, including three alternative full courses and Dr Chuck's eighteen-hour treatment built around Kernighan and Ritchie. Compile and run everything; C is not a language you can learn by watching.
What you'll be able to do
- Write, compile and debug a C program from the command line
- Explain what a pointer is and use one without guessing
- Allocate and free memory deliberately, and recognise a leak
- Work with arrays, strings and structs as the thin abstractions they actually are
- Read C, which is what a great deal of foundational software is still written in
Curriculum
12 lessons · 48 hours
Orientation
1 lesson · 3m
The Language
3 lessons · 16h 23m
- 02CompletedC Programming Tutorial for BeginnersfreeCodeCamp.orgVideoThe whole language in one course. The pointer and memory sections are the ones that matter — everything before them is syntax you already half know from other languages, and everything after them depends on them completely.3h 40m
- 03CompletedC Programming Full CourseOptionalBro CodeVideoSeven hours in short, self-contained chapters. The easiest of the full courses to take in pieces, which suits a language you should be compiling alongside.6h 54m
- 04CompletedC Programming for Beginners — Full CourseOptionalPortfolio CoursesVideoA university-style treatment from a lecturer, more careful about undefined behaviour and the standard library than the others. The best second opinion here.5h 49m
Pointers and Memory
6 lessons · 12h 1m
- 05CompletedIntroduction to PointersOptionalPortfolio CoursesVideoStart here. Addresses, dereferencing and the two operators, taught once and slowly, without trying to cover arrays and strings in the same breath.25m
- 06CompletedPointers — CS50 ShortsOptionalCS50VideoHarvard's explanation, which leans on drawings of memory rather than on code. This is the one that tends to work for people who found the code-first version slippery.29m
- 07CompletedDynamic Memory AllocationOptionalPortfolio CoursesVideomalloc, free, and what a leak actually is. The heap is where C stops being an exercise, and this is the half hour that makes the difference.32m
- 08CompletedC Programming and Memory Management — Full CourseOptionalBoot devVideoNearly five hours built specifically around memory rather than around syntax, ending with a garbage collector written by hand. The single best thing on this page if you want the hard part properly.4h 44m
- 09CompletedPointers in C for Absolute BeginnersOptionalfreeCodeCamp.orgVideoTwo hours on pointers alone, at the slowest pace of anything here. The third attempt, if the first two did not land.2h 4m
- 10CompletedPointers in C / C++ — Full CourseOptionalfreeCodeCamp.orgVideoThe exhaustive version: pointer arithmetic, pointers to pointers, function pointers and arrays. Reference material for when something specific stops making sense.3h 47m
Writing C Well
2 lessons · 19h 10m
- 11CompletedTips for C ProgrammingOptionalNic BarkerVideoHow people who write C for a living actually structure it — arena allocation, avoiding malloc in a loop, keeping ownership obvious. Almost none of this appears in beginner courses.35m
- 12CompletedLearn C Programming and OOP with Dr. ChuckOptionalfreeCodeCamp.orgVideoEighteen hours structured around Kernighan and Ritchie, the book C was defined by. A course to take over months rather than an afternoon, and the closest thing here to a formal education in the language.18h 35m
Credits
Every lesson in this course was made by one of these channels. Tubeversity sequenced them; it did not make them. If a course is useful to you, the people below are the ones who earned it.