Ever wondered how computers really work?
Not just what an operating system is or how the printer talks to it, but how their little (very little) heads actually do all that work so quickly?
I got interested in this when I was in high school, soon after I got interested in business. One of my better habits was wandering into company offices in Anderson (Indiana, where I grew up), Indianapolis (the nearby big city), and Chicago (the closest “world city”), asking them, “What do you do here? Do you have any brochures or documents I can take home to study?” (The beginnings of my lifelong addiction to collecting anything printed on paper.) As a high school graduation gift, my parents offered me a color TV – a big deal in 1969. But instead I convinced them to buy me a round trip bus ticket to New York City, Philadelphia, and Washington – a trip I remember as vividly as yesterday. Maybe better than I remember yesterday. My main goal while in New York was to stop in as many corporate headquarters as possible, collecting annual reports along the way.
In this process, I came across the Indianapolis office of IBM. Back then the only computers were mainframes and most computer programming was done in languages like COBOL, RPG, and FORTRAN – BASIC seemed “kid’s stuff.” IBM ruled the computer world, both in hardware and software, and had a room full of books about how to program. There were tablets laid out just to write programs on, there were punch cards, there were neat plastic templates – like stencils – that included all the little shapes that programs were drawn in – inputs, outputs, processes. I carried armload after armload of these books out of the IBM offices, and (unlike some offices) they did not seem annoyed by my behavior.
I still have the big green books labeled “IBM 1401 Symbolic Programming System.” In the unlikely event my life depended on it, I probably could figure out how to write that first program which makes the computer print out “Gary’s first program.” IBM made and sold 20,000 of the room-size 1401’s between 1959 and 1971. The most powerful 1401’s had 16k of memory (RAM), although a very small number had 32k by special order. The Computer History Museum in Mountain View, CA, is working on a 1401 restoration project (http://www.computerhistory.org/events/special_projects/restorations.shtml and http://ed-thelen.org/1401Project/1401RestorationPage.html).
Of course computers have come a long way from those old machines. But the way they think, the “atoms” of their existence, have not changed that much. It’s all about electrically charged particles running around, and since the only choices that they have is to be positively or negatively charged, all they can do is think in binary terms – zero or one, on or off. So how can such basic simplicity ultimately give rise to Microsoft Excel, Adobe Photoshop, Propellerhead Reason, and YouTube?
The book Code: The Hidden Language of Computer Hardware and Software by Charles Petzold (Microsoft Press, 2000) is the only book I have found that clearly and simply explains, step by step, how all this happens, without ever reaching above my head with scientific language and formulas. Hardly a page goes by without an illustration. I cannot imagine a better teacher, a better communicator of potentially complex ideas, than Petzold. If you start at the beginning of the book and follow it, you will understand computers, how they work, their logic. There is no magic in there, it is ultimately pretty straight-forward, perhaps the ultimate application of logic. If you want to understand everything from bits and bytes to hexadecimal numbers, read the whole book; if you just want to understand how the most basic addition works, read the first few chapters.
For those who are truly curious about the computers we live and work with every day, but don’t want to stop and take the time to get a degree in electrical engineering, I cannot recommend Code highly enough.