Explaining 4 Key Programming Concepts with Household Items

April 19, 2012

I’ve often found myself providing others with simple explanations of fundamental programming concepts. While I’m by no means committed to writing an Ultimate Programming Primer, my work on The Ultimate PC Primer got me thinking: what analogies, stories, or props would I use to explain the basics of programming/scripting to total newcomers?

First, newcomers need to understand that programming or scripting is the discipline of writing instructions for a computer to follow. In order to be useful, the instructions must conform to a language the computer can understand. Simple scripting (like Javascript for the Web) often involves taking information in textual or numerical form, structuring it, manipulating it, and producing output (like textual or numerical information, or even animation). In short, scripting is providing the recipe (as I call software in The Ultimate PC Primer) for a computer to “cook” something up.

Learning how to write a “virtual recipe” can be difficult, since computer languages, as with real spoken and written languages, require correct grammar. In fact, computers are unforgiving with grammar, and usually they’re not smart enough to guess at what you mean. So, programming is challenging due to the precision required as well as the foreign nature of the structural concepts. And that’s why comparing the intangible to something physical — something from the real world — is often so handy.

Here’s how I explain four of the most common computer scripting/programming concepts to newcomers trying to grasp them, leveraging a few common household items. (Since I haven’t included photos of each of these, be sure to see the video at the bottom of this post to grasp the power of the visuals.) Read the rest of this entry »

Explaining Troubleshooting

April 10, 2012

Unfortunately, troubleshooting computer and digital device problems is all too common an occurrence. But how does one explain the concept of troubleshooting?

Fortunately, there is a wonderful analog in the real world: physicians. Troubleshooting is what your doctor does for your body’s aliments, and for the most part, the process is the same. It starts with a review of the symptoms and when they started. Then, knowledge-based analysis kicks in: how are the symptoms related? Are they related, or are they coincidentally occurring at the same time? What are all the possibilities that could be causing them? The treatment — the fix — is based on the diagnosis, which sometimes requires additional research.

With a computer, this process works the same way. Troubleshooting is something that a computer can attempt to do itself, but often, this task still falls to the owner/operator. Here’s an example…

Read the rest of this entry »