This article may be a little technical, but I'll try to minimize the technical parts as much as possible, and in any case, the next chapters won't require a deep understanding of this one.

Before we can start talking about Software, we need to talk about Hardware.

Software refers to an application a developer has coded, for example, your email application, your Excel, or just the game you're playing on your smartphone.

Hardware refers to electronics and communication equipment, and in the context of this website, I'm referring mainly to the computer and its peripherals, like the keyboard, monitor, and so on.

Software, as I'll explain in the next chapter, simply reads results from and writes commands to the Hardware.

Many software developers, from time to time, shout at their computer: "Stupid!" when something goes wrong. Probably some of you tend to do so as well.

Well, you're probably right, the computer is just an electrical device, and electrical devices understand only two things: power on and power off.

So how does this magic happen?

Since "on" and "off" is also mathematics, we can say 0 = power off, and 1 = power on. We call this machine language a binary code.

You may point out that mathematics has 10 digits, while binary has only 2,that's because we humans use what's called a base-10 system. Why? Because we have 10 fingers.

The ancient shepherd who wanted to count his sheep used his fingers: 1, 2, 3, 4… 10… 10+1, 10+2, and so on. But imagine you're an alien shepherd from outer space who has only 2 fingers, you'd probably count: 0, 1, 1+0… and so on.

Maybe now the scenes in The Matrix showing screens full of "0010101001" make a little more sense, that's binary code.

Until now we've explained the computer's language, but how do we translate all these numbers into text and media?

The answer is ASCII - it stands for American Standard Code for Information Interchange. It's a system that gives a unique number to each letter, number, and symbol on a computer. Think of it as a dictionary that maps numbers to letters, for example, the capital letter "A" is written as 01000001.

In the next chapter, when we talk about software, we'll see how it uses ASCII tables to translate machine code into something that communicates with the computer.

A bit of history

Long before electricity, humans already tried to build machines that could calculate. In the early 1800s, the English mathematician Charles Babbage designed the "Analytical Engine," a mechanical machine made of gears and levers that could, in theory, perform calculations based on instructions.

The design already included the core ideas we still use today: a way to input data, a way to process it, and a way to output results.

His collaborator, Ada Lovelace, wrote what's considered the first computer program, for a machine that didn't even exist yet.

For over a century, "computing" stayed mostly mechanical or electro-mechanical. That changed in the 1940s, with machines like the ENIAC, built using vacuum tubes. These were the first true electronic computers, but they were enormous, filling entire rooms, generating huge amounts of heat, and requiring teams of people just to operate them.

The next leap came in the late 1940s and 1950s with the invention of the transistor, a tiny electronic switch that could do the same job as a vacuum tube, but was smaller, faster, cheaper, and far more reliable. This one invention is arguably what made modern computing possible.

Then, in the 1960s and 70s, engineers found a way to pack many transistors onto a single small chip of silicon the integrated circuit, or microchip. This is the moment computers stopped needing to fill a room and started fitting on a desk. It also kicked off decades of a trend where computers kept getting smaller, faster, and cheaper, roughly doubling in power every couple of years.

In fact, the smartphone in your pocket today has more processing power than the computers that guided the Apollo astronauts to the moon.

How the computer works

Remember the previous chapter on data, and how I compared it to how humans process data? Computers have electrical parts that do the same job:

  • CPU (the brain) — stands for Central Processing Unit. It does the thinking, follows instructions, and does the math. Today, related to AI, you'll also hear about the GPU, or Graphics Processing Unit, I'll expand on that in the advanced articles.
  • RAM (short-term memory) — like your brain holding a phone number just long enough to dial it.
  • Storage/disk (long-term memory) — like writing a phone number in a notebook so you can remember it forever.
  • Input/output (the senses) — how you pass data to the computer and get data back from it:
    • Input = keyboard/mouse/camera, like your eyes and ears.
    • Output = screen/speakers, like a mouth talking back.

In the next chapter, we'll start explaining software and how it relates to the hardware.