Tuesday, June 19, 2012

Popular science books about computing

There’s a common aphorism in academia: You don’t really understand a subject until you teach it. This isn’t entirely true, of course, but being asked questions can make you think harder about what you know and what you don’t know.
I’ve found something similar in writing a popular science book. And I’ve realized a bit more.

The popular science literature on computing is largely invisible. Search online for a list of the 100 best popular science books, or even an attempt to list the 1,000 best popular science books—you won’t find a single one about computing. (Some come close, such as Douglas Hofstadter’s Gödel, Escher, Bach, but according to Wikipedia, “Hofstadter has emphasized that GEB is not about mathematics, art, and music but rather about how cognition and thinking emerge from well-hidden neurological mechanisms.” There’s a connection to computing, but the focus is elsewhere. Ditto biographies, histories of the computer industry, and books about math.)
A couple of years ago I mentioned to my sister-in-law, whom I love dearly, that I was writing a popular science book. About computing. “That’s great,” she said. “I barely know how to turn a computer on.” I had to explain that it wasn’t that kind of book. But what kind of book do I mean? Here’s an analogy. I’m writing a popular science book. About biology. Imagine hearing, “Great—I’d love to know how to use a microscope.” Or… About astronomy. “I never know which telescope I should buy, or which lenses are worthwhile.” 
You see the difficulty. Most books that people read about computing are how-to books. There’s only a tiny handful of books about the grand, inspirational ideas in the field, ideas that should be accessible to everyone. But those books are still out there! Here are a few of my favorites:
Blown to Bits: Your Life, Liberty, and Happiness after the Digital Explosion, by Hal Abelson, Ken Ledeen, and Harry Lewis (Addison Wesley, 2008). For readers who would like to understand the relationships between digitized information and our everyday lives.
Code: The Hidden Language of Computer Hardware and Software, by Charles Petzold (Microsoft Press, 2010). For readers interested in how a computer works, down to the level of bits and switches and gates. 
Computer Science Unplugged, by Mike Fellows, Tim Bell, and Ian Witten (lulu.com, 2002). For five- to twelve-year-old readers (or their parents or teachers).
“What is computation?” by Ian Horswill. This online document is a marvelous and readable overview of computing in 23 pages.
Computing for Ordinary Mortals, by... me (and Oxford University Press). For readers who want grand overview of the most important ideas in computing... and can wait until October to start reading. :-)

I’ve realized something else as well: Even well-informed professionals can disagree about what’s important in a given field. When you write a popular science book, you’re saying, “These are the things everyone should know.” (It’s an almost universal feeling among scientists, I think, that everyone should know something about their specific field.) But of course you can’t include everything. You leave out what you consider less important.
So when my friends and colleagues tell me about how to improve my book, I’m grateful for their corrections (usually of errors that would be embarrassing if they were left in) but sometimes I have to argue a bit. “You left out this.” “I know. That was deliberate.” “But it’s an important topic.” “Sure, but not as important as other ideas I want to cover.” I’ve had a lot of such arguments.
It turns out that there’s no unified view even of what computer science is, as a field. I graduated from college with a degree in computer science, and I went to work as a software engineer. Is computing a science or a branch of engineering? Perhaps it’s neither. Donald Knuth, the most famous living person in the field, titled his seminal multi-volume monograph The Art of Computer Programming. Maybe this is an issue for philosophers rather than working scientists, engineers, or programmer/artists.
And how do you resolves such issues? You don’t, really. You just take a stand, and you argue your case. 


  1. Computing for Ordinary Mortals, by... me (and Oxford University Press). For readers who want grand overview of the most important ideas in computing... and can wait until October to start reading. :-)

  2. "Thanks for the awesome weblog. It was very useful for me. Keep discussing such concepts later on as well.Thanks for discussing the such details with us."
    acting class