September 14, 2013
There’s been a lot of focus on preparing the next generation to learn to code/program. (See Code.org for starters.) And many websites have sprung up sporting interactive tutorials for hands-on learning. But what about really young kids? Is it ever too early to learn the core concepts of programming?
Dan Shapiro doesn’t think so. He took a leave of absence from his job at Google to give the world another way: a board game. His project, Robot Turtles, went up on Kickstarter last week and is gaining funding. I hope he gets everything he needs, because this is a clever approach. Give kids a fun board game with great graphics, but at the heart of learning to route the Turtles appropriately, players learn the logic for writing basic computer programs. It’s brilliant.
So if you’ve got some kids you want to introduce to programming concepts in a fun, offline format, consider supporting the Robot Turtles project. It looks like it’s going to be a reality for now, but like Dan says, it may never be in print again.
November 12, 2012
Since I’m fond of analogies and metaphors for explanations, here’s the first thing I tell my learner to do when explaining to him/her what an API (Application Programming Interface) is. Watch the first half of this clip from the old game show Who Wants to be a Millionaire, where the contestant uses his “Phone a Friend” lifeline:
What’s “Phone a Friend?” When the contestant gets stuck, he/she can make a single phone call to any friend and ask the question at hand, hoping the friend’s response will be the correct answer (or help lead to the correct answer). Provided the call is made correctly, the question is asked correctly, and the friend is the right person to answer such a question, the response will greatly help the contestant/caller to do something he/she otherwise could not do alone. With that in mind….
What’s an API? It’s when computer code (or an entire program) makes a call to something else to do something it could not otherwise do alone, allowing it to be greater than it is by itself. The call must be made correctly, according to the rules the API specifies, so that the caller can ask correctly and the recipient can understand the request and respond appropriately. And unlike the game show contestants, computer programs aren’t limited to talking with just one API. Programmers/developers often leverage multiple existing APIs to accomplish greater holistic functionality rather than taking the time to develop all the desired functionality themselves. The chances are, most programs you use have been designed to tap some existing API to achieve some part of its functionality.
So, do computer programs do this a lot? You bet. Programs aren’t superheros*; they often just have a lot of friends to call.
* I’ll make an exception for Tron.
August 16, 2012
Having recently worked with a couple of groups developing games, I’ve found myself explaining nuances of programming concepts. Here’s one such topic I find I must cover with new developers: when to use a variable vs. an array vs. an object. I whipped up this quick video to explain the difference, and since summer picnic season is upon us, I leveraged some related food and props appropriately…
Stay hungry, my programmers!
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?
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 »