Abstraction

Have you ever wondered why you were put on the Earth? And how the world as we know it came into existence? Do you know how the rotary engine works? The universe is a phenomenally complex place, so rich with detail that comprehending it is well beyond the means of any single individual.

I don't know how computers work, do you? Sure, I know that the CPU reads the first byte of an instruction to determine the instruction's length and then reads the entire instruction. The CPU then optionally does a microcode lookup and executes the instruction. Even at this level, we haven't discussed what the set of available instructions is, how the CPU reads those instructions, what microcode is, what a byte is, how the instructions are represented, where the instructions are kept, and so on. I think you get the picture.

Despite my fundamental ignorance of the computer, however, I can use it. I'm writing this article on a computer. And, even though I don't understand the full intricacies of CPU instructions, I've generated computer instructions for different processors successfully. Furthermore, I (along with a friend) assembled this very computer - for which, and from which, I have generated CPU instructions - from many separate pieces.