In the previous chapter, we talked about hardware, and specifically about computers. But a computer without software is like a human brain that could do calculations, but no one ever told it what to calculate.

Software is actually a set of instructions for the computer. These instructions are written, or we should say coded in a programming language. I'll expand on programming languages in the following chapters.

Usually, software is the mediator between the human user and the machine: it translates the human's command into a set of instructions that the computer can follow.

For example, when a user presses a button on a piece of software, the software's code runs a set of logic to determine which commands it needs to send to the computer. It will read the computer's response and present the result to the user.

A simple example: the calculator app

Let's simplify this with a short example.

Today, every smartphone has a calculator app on it. When you want to use it, you'll enter a number, let's say 2, an operator, say "+", and a second number, say 3.

When you press the "=" button, the software will read the user's inputs (we mentioned inputs in the previous chapter, in this case, the input device is your keyboard). The calculator software was coded to send "2+3" to the computer for calculation, and it gets back the result from the CPU (as you remember from the previous chapter, this is the computer's brain). Finally, it outputs the result 5 to the user's screen.

I said "usually a human command," because sometimes there's no human entering a command at all. We see this widely today with AI agents, which operate autonomously, triggered to action by time or by an event. I'll expand on this in our Advanced section.

When software talks to software

And yes, sometimes software sends commands to other software. That second piece of software will send the command to the computer, get the results, and return them to the calling software, which then presents the results to the user. I'll expand on this subject in the Intermediate section, but here's a simple example:

Actually, browsing this website is a great example. You're browsing this website with your favourite browser, and when you press a link to go to the next article, the browser sends a command to another piece of software running on a remote computer. That software looks for the right article and returns it to the software running on your local computer, which then displays it in your browser. Again, I'll explain how the internet works in the Intermediate section.

The oven and the recipe

Let's summarize this article with a short analogy.

You have an oven in your home kitchen. The oven has the ability to cook, but it needs a recipe to know what to cook.

The oven is the hardware, the computer. And the recipe is the software.

Different recipes for different jobs

There are different types of software, with "recipes" for different uses. For example:

  • Your operating system is software. whether you have Windows or Mac installed on your computer. Its "recipe" is to translate your commands for managing your computer, like creating folders, files, and so on.
  • Your browser is software. Its "recipe" is to translate your commands for browsing the internet, like "go to this website" or "go to this page."
  • The games you play on your computer are software. Their "recipe" is to translate your commands, like "jump" or "shoot," into graphics on the screen.

To create software, you need to use a programming language, and the people who know how to "talk" a programming language are called software developers, programmers, or software engineers, you can use these titles interchangeably.

It's time to move to the next chapter, about programming languages and how it's actually done.