Programming

A Short Introduction

Hello and welcome to this guide to programming! I hope you like it (and the decoration :))!

What is programming?

Programming is the process of designing logical systems. A logical system is a set of conditions and actions to be carried out if these conditions are true. Now, I could keep talking about this for hours, but an example tells a lot, and quickly, so here’s mine.

Let's say you have an infinite strip of tape that you take on tour all over the world. Let’s divide the tape into cells, and on each cell, we can store on instruction. This instruction can be one of two: go to a cell and perform the instructions described on it or write or erase a cell. We can also have blank cells.

Let’s call this strip of tape, this machine, a touring machine, because you’re taking it on tour. This touring machine was proven to be able to compute all computable problems (see this paper).

By pure coincidence (trust me), the touring machine happens to be the exact same thing as the Turing machine, developed by Alan Turing. I tooootally didn’t plan that out.

You might think this doesn’t relate to modern programming, but it 100% does. Every modern programming language must be turing-complete in order to be considered a programming language.

This means that you can simulate a turing machine in the language. This also means that you can compute anything. Programming is cleverness, creativity, expression, logic, and math, all rolled into one.

Real Computers

Great! We have our theoretical fantasy computer that is painfully impractical and would be horrible to program for in the real world! How does stuff actually work?

For that part, not Alan Turing, but John von Neumann gets the credit. See, John von Neumann had this idea of having units communicating with each other, and with input and output devices: a Central Processing Unit and a Memory Unit.

Today, this architecture, called the Von Neumann architecture, is everywhere, including whatever device you happen to be reading this on. It’s everywhere.

Now it’s important to understand how to work with that memory. Treat it well, design good logical systems (I’ll call logical systems algorithms now), and a well designed program you will have.

Memory is generally thought of in two parts: the first part of memory includes data that is simply appended to a list of other objects. We have a place in memory to look for old things and add new ones, so we always know where to go. We call this the stack, because it’s a stack of data.

We have another place where we ask for memory while the program is running. We call that the heap.

An important thing to note is that each program has its own “fake memory” and no program can access the real physical memory unit. This is because if they could, nobody would know what memory belonged to them and what belonged to other programs, and everybody would start overwriting each others memory.

Another important and fascinating to note is that programs themselves are loaded into memory in order to run them. Code is data.

TO BE CONTINUED

Edit

Pub: 15 Feb 2026 20:00 UTC

Edit: 16 Feb 2026 00:42 UTC

Views: 39