Why Learn C?

Before we write a single line of code, let’s address the elephant in the room: why learn a programming language from 1972?

C Is Everywhere

The software that runs your computer is mostly written in C.

Every computer has an operating system - the master program that controls everything else. Windows, macOS, Linux, Android, iOS - the core of each one (called the kernel) is written in C. That’s Linux, Windows, and macOS - all C.

The program that runs Python code? Written in C. The engine inside your web browser that runs JavaScript? C at its core. The software moving information across the internet, the code running inside your router, the program controlling your smart TV - C.

When you learn C, you learn to read the foundation of modern computing.

C Is Small

Here’s the complete list of C keywords - every special word the language uses:

auto     break    case     char     const    continue
default  do       double   else     enum     extern
float    for      goto     if       int      long
register return   short    signed   sizeof   static
struct   switch   typedef  union    unsigned void
volatile while

That’s it. 32 words. Compare that to C++ (97+), Java (50+), or Python (35 and growing).

You’ll use maybe 20 of these regularly. Words like auto and register are rarely written in everyday code, but they’re not useless. register still appears in performance-critical code like embedded systems and game engines, where programmers want to hint that the compiler should keep a variable in a fast CPU register. auto is the default way C stores local variables, so it’s technically used everywhere - you just don’t need to write it.

And goto? A famous computer scientist named Edsger Dijkstra wrote a paper called “Go To Statement Considered Harmful” in 1968, and many programmers avoid it for “structured programming” reasons. But goto is actually used in major projects like the Linux kernel for error handling - it’s the cleanest way to jump to cleanup code when something fails. Like most tools, it’s about using it wisely.

C Teaches You How Computers Actually Work

Most programming languages hide what the computer is really doing. C shows you.

When you run a program, the computer stores information in its memory - think of it like a giant grid of numbered boxes. Each box can hold a small piece of data. Most languages don’t let you see these boxes directly. C does.

Why would other languages hide this from you? Partly to make things simpler. Partly because when you understand how computers actually work, you start asking uncomfortable questions. Like: “Why does this simple app use 4 gigabytes of memory just to show a to-do list?” Or: “Where exactly is my data going?”

Here’s an important lesson: not all software is built the same way.

Some programs are built by people genuinely trying to help. They take complex stuff and make it simpler so you can focus on what you’re trying to do. These are gifts from programmers who came before you.

But other programs are built to hide things. They make it hard to see what’s happening with your data - where it goes, who sees it, what it really costs. They make it harder to ask questions, harder to say no, harder to build something better.

When you understand what’s happening underneath, you can tell the difference. You can choose which software to trust.

C Makes You Dangerous (They Don’t Love That)

Someone who really understands C can:

  • Read and modify operating systems
  • Write code that runs incredibly fast
  • Fix problems that confuse everyone else
  • Learn any other programming language quickly

This knowledge is valuable. It’s also a little threatening to companies that would rather you didn’t look too closely at how things work. Learn it anyway.

What C Won’t Give You

Let’s be honest about the tradeoffs:

  • C won’t stop you from making mistakes. If you tell it to do something wrong, it will do it. Other languages try to catch your errors before they cause problems. C assumes you know what you’re doing. When you don’t, you learn fast.

  • C won’t clean up after you. When your program needs memory to store information, you have to ask for it. When you’re done, you have to give it back. Forget, and your program slowly uses more and more memory until it crashes. (We’ll learn exactly how this works later.)

  • C won’t give you much to start with. Many languages come with built-in tools for handling text, lists, dates, and internet connections. C gives you the basics and expects you to build what you need - or use tools (libraries) that others have built.

These aren’t flaws - they’re the point. C gives you control. With that control comes responsibility.

There’s an old saying: “With great power comes great responsibility.”

C gives you real power over the machine. You’ll make mistakes. Things will break. That’s how you learn what’s really happening inside the computer.

The Mental Model

Think of C as a thin layer between you and the machine. When you write:

int x = 42;

You’re telling the computer: “I need a place to store an integer. Call it x. Put the number 42 there.”

The computer finds an empty spot in memory, remembers that spot is called x, and puts 42 in it. That’s it. No magic. Just you telling the machine exactly what to do, and the machine doing it.

Ready?

In the next part, we’ll set up your computer to write C programs. You’ll have your first working program within 10 minutes.

The goal isn’t to memorize rules. It’s to understand how the computer actually works. Everything else builds from that.


Enjoyed This?

If this helped something click, subscribe to my YouTube channel. More content like this, same approach - making things stick without insulting your intelligence. It’s free, it helps more people find this stuff, and it tells me what’s worth making more of.