I’ve made my living writing software. But again and again in my checkered career, I’ve written software that is intimately associated with hardware. (Here’s a particularly egregious case.) I’ve helped to architect hardware that my software needed. I’ve read hardware diagrams to understand how to program interfaces. And often, I’ve debugged software and hardware together when it was unclear where a bug lay. I’m even a tyro at using logic analyzers and and oscilloscopes.
During one of my hardware/software binges, I decided I really ought to learn a little something about hardware. I acquired some components, read up a bit, and breadboarded a few experiments.
During this newbie phase, I remembered our compact transistor radio. These devices were still pretty new at the time. We had bought one so that when power was out in an emergency, we could still get radio news. But after a while the thing produced only static. I took it to a shop, but they said they couldn’t fix it, and because we hardly ever throw a device away, it sat in some closet.
Time to look at it, I thought. With my newfound hardware skills, I might just fix it. I opened it up on a table with my tools, just as my wife was leaving to run some errands.
When she returned, the radio was working.
”How did you fix it?” she asked.
”It’s no use trying to explain it to you,” I said. “You would never be able to understand.”
”It just needed a new battery!” she said.
And I replied, “Yup.”