If you hear a voice within you say you cannot paint, then by all means paint and that voice will be silenced.
-- Vincent Van Gogh
Brief Computer History
Computation is transformation of information, a program is a sequence of computations, and it itself is information.
Not all programs are run by computers.
For example, there are programs in the old looms that were making fabric. They were almost computers, but not quite, and still they could execute program instructions. Or a music box - it has a program, but is not a computer.

You can see the program on the cylinder, each spike is in a particular location. When you turn it, it kicks the metal comb to make a sound. You could say that the computer that executes the program is the universe itself, but it is not the music box.
In order for something to be called a computer, it must be able to store and retrieve information, and use that information to make decisions about what to store or retrieve. In an infinite loop, the choices depend on the information, and the information is shaped by the choices, and of course, choices are information themselves. Any system that has those properties can execute any program ever written, and those that would be written, man-made or not.
There are many kinds of computers: biological, mechanical, emergent, digital, analog and many more. There are computers in every cell in our bodies, in our immune system. Some systems are so complex we don't even know if they are computers, like the weather system, ant colonies, fungi networks, or even the global economy.
The most interesting computers are those that can write their own programs. They are both the programmer and the program. Deep Neural Networks are such a computer, self-programming machines - the most recent ones are called Transformers, discovered in 2017. It is a machine of many, many layers. Each layer transforms its input to prepare it for the next layer, and in the end, the last layer's output is the first layer's input, forever and ever, in an infinite loop, until its program emits a STOP output. When we train it, it learns how to program the layers so that it can output what we want from it. It does not know right from wrong, truth from lie, it just outputs what its program thinks is needed. Some say that we do not train it, but we grow it, and it trains it self.
It took humanity millennia to discover the computer. After Charles Babbage in the 1830s, then in 1936, Turing and Church formalized it. Since then, trillions of lines of code have been written, and yet we still do not know how to truly program. Despite the lack of understanding, we managed to create simulacra that are enough to control and empower our digital society. In the modern world, programs control your life. They will work for you, spy on you, teach you, heal you, or physically harm you. At this very moment, programs are deciding who to hire and who to fire, they decide which movie you should watch, and who should be your friend.
For the first time since 1936, we have a glimpse of the next level of computer organization. For the first time, a computer that can do something for you.
To build the new world, you must understand the old. It is imperative to remove the confusion of modern software and understand the digital computer at its core, invent your own language to interact with it, to think from first principles.
A new age is coming, a new way to interact with computers and new ways to program them and a new way for programs to interact with each other.
Take your time, relax and ignore the noise, ignore the design patterns, ignore the programming paradigms, libraries, frameworks and conventions. Reinvent the wheel!
Today most developers have forgotten, and some never knew, what it means to program. And I must tell you, we have not even begun to understand it, not even a little bit.
So first things first, I will tell you how I learn.