When my father was hired at IBM in 1946, there was no real concept of software. He actually worked as the first black "systems engineer" in the company. Over the course of a few years, software came into being but the title "systems engineer" stuck at IBM even though systems engineers worked mainly with software.

What was it like before software? No programmable computer had been mass-produced or was commercially available until IBM introduced the model 407. In fact, there's still some debate over whether to call the IBM 407 the first true computer or the last programmable accounting machine. Just as the fossilized skeleton found in Ethiopia, called Lucy, had characteristics of both modern-day humans and apes, the IBM 407 had characteristics of both modern-day computers and older accounting machines. Still, it's a safe bet to trace the origins of modern humans at least as far back as Lucy. And it's a safe bet to trace the origins of modern computers at least as far back as the IBM 407. IBM announced the model 407 in 1949, not long after my father began his career. The company trained him to operate and program the machine. So it's safe to say that my father was present at the dawn of the Computer Age.

You can swipe or type to enter data into your smartphone or laptop. But the only way to enter data into an IBM 407 was through punch cards, read at 150 cards per minute by a card reader built into the machine. The smartphone you're carrying contains at least eight gigabytes of memory. The IBM 407 had none. Still the idea of memory could be found within the model 407: punch new cards to store the data required, and then load that new deck back into the machine.

Today, we take for granted being able to view the results of a spreadsheet computation on a monitor or video display. With a model 407, you had to wait for a clackety line printer to slowly spit out results, line by line. But that line printer—essentially a typewriter connected to a computer—was, in itself, a revolutionary advance in information processing. Until the advent of the 407, the best typists could produce 100 words a minute. Along came a machine that could compute, and produce results, much faster than any human could type. Line printers, capable of printing customized text at 100 lines a minute, rather than 100 words a minute, bridged this gap between the information a machine could produce and the information a human could understand. Printers were the window into the mind of the machine. The 407 produced output that a line printer could print and humans could read. In that humble beginning lies the foundation of much of our modern-day human-machine interaction.

Vestiges of the 407's line printer are still with us today. Modern-day operating systems, such as Windows, possess an LPR command (short for Line PrinteR) that sends output to a printer, and modern-day software developers describe their output in terms of "lines of code," harkening back to a time when line printers produced a single line of print for each written line of code.

At up to six tons, including supporting equipment, an IBM 407 often occupied its own separate room. By modern measurements, the all-electromechanical IBM 407—with no solid-state devices, no transistors, and not even vacuum tubes—was ancient and primitive. Yet in its day, the model 407 represented state-of-the-art digital technology, and it was the first of many IBM machines my father mastered.

A door at the far-right of the IBM 407 contained a heavy, removable board known as a control board or "plug board." To program an IBM 407, you placed a single colored patch cord between two sockets (also known as hubs) on the control board. To an untrained eye, the fully wired control board of an IBM 407 looked like a jumble of wires or a woven basket; systems engineers at the time even called the practice of wiring control boards "basket weaving." Patching sockets together controlled how one internal circuit communicated with another and therefore governed how the machine added numbers and printed results. Software had not yet been invented. Long before HTML, BASIC, Java, or C#—modern-day software languages used to program computers—my father hard-wired control boards to program the IBM 407.

My father brought home an IBM 407 control board in 1956. After dinner, he placed it on our kitchen table and pulled out a bag of patch cords. He set down a list of hand-drawn connections, which he read to my sister and me, while supervising which hubs we pushed the ends of the patch cords into. At six years old, I was programming a computer. At three years old, Claudia was a bit too young to do much more than play with the colored wires. As usual, a pithy quote accompanied the lesson.

"Computers will control your life one day," he said. "Better if you learn how to control them first."

We wound up with a dense jumble of colored wires arcing between holes on the control board. My father sent us to bed with his thanks. That next evening he told us our control panel had worked perfectly and had caused the 407 to do exactly what he needed, though I can only imagine now that we'd left him with much to rewire.

An adapted excerpt from the book, THINK BLACK, published by Amistad Press, a division of HarperCollins.

An IBM Model 407

Punch card reader on the far left. Converted typewriter in the center. Control panel door at the far right.

IBM 407 Control Panel Door

Open control panel door showing a wired control panel.

IBM 407 Fully Wired Control Board

Early systems engineers called this process of wiring control boards, "basket weaving."