How do people tell a computer what to do? Code is the special language that computer programs are written in, and a computer understands it. A computer can't think for itself, so people have to give it instructions. A computer program is a list of instructions for a computer. Games, websites and animation tools are all made with computer programs. Let's see how the instructions get from a person to a machine. Let's see how a person's words reach a machine.
Start with the language a computer can run directly. Machine language is made of the numeric codes a computer can run directly. It is also called binary code or machine code. Computers use the binary number system, which has just two digits, 0 and 1. Keep two names in mind: binary code and machine code. Take it one step at a time. Let's see what people did about this. Take it one step at a time, and look at each fact in turn.
Let's look at two tools that used English-like words. Grace Hopper made an early tool that let people give a computer instructions in English-like words instead of numbers. An IBM team led by John Backus made FORTRAN, a programming language that uses English-like statements. Here is a question: if a computer runs machine code, who does the translating? A compiler does. A compiler translates code written in a language people can read into the machine code a computer can run.
Today there are many languages. Python is a high-level, general-purpose programming language. Python is open source, so anyone can use it for free. Python can be easy to pick up, whether you are a first-time programmer or you have used other languages. Every language has rules, so let's meet them. Syntax is the set of rules for how code must be written. A syntax bug is a mistake in writing the code itself, such as a typing error.
Next, some words about how programs are planned. An algorithm is a list of steps for solving a problem or getting something done. A recipe is an algorithm for people: a list of steps to follow. The steps have to be in the right order, and the instructions have to be clear. Big jobs are easier in pieces, so here is a good word to know. Decomposition means breaking a big problem into smaller parts so it is easier to tackle.
Now look at the tools inside a program. A loop makes a computer repeat a set of instructions, so code can do the same kind of job many times without writing it out again each time. A loop can repeat a set number of times, or repeat until something happens. A program can also make a choice. A conditional runs one set of code if a test is true and another if it is not, like taking an umbrella only if it is raining.
Programs also keep information. A variable is like a box that holds a value, and the value inside can change. Every variable gets its own name, so the program can find what is stored in it. A program can use a variable to keep track of something that changes, like a score or a count of clicks. Computers store information in variables and other data structures. A function is a named piece of code that can be run, or called, whenever it is needed.
Let's talk about mistakes, and what to do when they show up. A mistake in a computer program is called a bug. There are syntax bugs, which are typing mistakes in the code, and logic bugs. Programmers test a program to look for bugs. Debugging means finding and fixing the bugs in a program. Here is a fact to keep in your head as you go. It is okay to make mistakes in a program, because finding and fixing bugs is a good way to learn.
Here are some last facts about who writes code and the ways kids can try it. Let's take them one at a time, from the people to the tools, and see what each one says. There are only a few, and each one is short and plain. People called programmers write the code that makes computer programs. As of November 2026, Scratch is a coding tool where kids make their own stories, games and animations. Scratch was developed at the MIT Media Lab and released to the public in 2007.
Words to know
- binary: two digits
- compiler: code translator
- syntax: code writing rules
- loop: repeats steps
- variable: holds a value