C Course

C is the language most of the software you use every day is either written in or descended from — operating system kernels, interpreters for other languages, embedded firmware, database engines. It doesn't hide the machine from you, which is exactly why it's worth learning: once you understand C, the "magic" behind memory, pointers, and how a program is actually structured stops being magic.

What you'll learn

This course starts with the basics of compiling and running a program, then works through the core language piece by piece: types, operators, control flow, functions, and arrays. The second half is where C really earns its reputation — strings as raw character data, pointers as addresses you can read and write directly, structs for grouping data, and manual memory management with malloc and free. Every code sample in this course was checked against what gcc actually produces, output included, so you can trust what you see on the page.

Lessons

  1. Introduction
  2. Variables & Data Types
  3. Operators
  4. printf & scanf
  5. Conditionals
  6. Loops
  7. Functions
  8. Arrays
  9. Strings
  10. Pointers
  11. Structs
  12. Memory & malloc/free
Where to start: go in order, even if you've written code before. C builds each idea on the last — functions pass copies of their arguments (lesson 7), which is exactly the problem pointers solve (lesson 10), which is exactly what makes malloc and free make sense (lesson 12). Skipping ahead tends to mean back-filling later.