The concept of a function, a variable, a condition, and a loop are completely alien to novices. These four elements build the foundations of programming. Everything a program is made of relies on them.
The main pillars of learning programming — and why beginners should master them.
Rainer Hahnekamp

I would suggest going lower than that (like MIT has done for years). Everything in the universe is composed of objects and events with a bit being the most fundamental object. Other primitive objects are composed of bits (bytes, numbers, characters). All objects have properties and most have things they can do to other objects to modify their properties (methods). All functions ultimately are methods associated with an object, even if that object might be the language or interpreter itself. This helps intuitively understanding that typing is just a matter of a language author putting on different glasses when looking at the same composition of primitive objects. And so on. This is produced more “aha” moments on beginners faces when discussing typing and variables and state than any other approach so far for me.

It’s worth distinguishing digital computing (the computing we all assume with bits of 1 or 0 state) and other computing methods. Quantum builds on qubits of course. This is perhaps the simplest distinction between digital and quantum computing. One has 1 or 0 and another has 1 or 0 or unknown.

Like what you read? Give Rob Muhlestein a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.