I spend a fair amount of time thinking about how to introduce my three young boys to programming. As much as personal computers have evolved over the last 30 years, I feel learning to code has gotten more complicated.
Computers weren't very accessible until about 1976, when Steve Wozniak developed the Apple. My grade school, like just about every other school in the country, got an Apple II that sat at the back of the classroom. Considering that computers had always been room-sized objects that only existed in movies, it seemed like the future had arrived.
It seems kind of crazy now, but there were actually very few things we could do with the computer at that time. We had a couple games, such as Oregon Trail. We quickly discovered that the Apple II came with a BASIC compiler, so we started to learn how to use it. During breaks between classes, three or four of us would huddle around the computer and type in programs from magazines like Enter (I wrote about my love of Enter a while back).
So what is different nowadays? Why should learning to code be more complicated in 2014 than it was in 1980? I can think of at least a couple reasons.
Kids are harder to impress. When I was a kid, just hitting letters on a keyboard and seeing them show up on a screen was pretty thrilling. Until then, the only thing I'd every seen in a screen was whatever the TV station decided to show me. Even cooler, typing
10 PRINT "Todd"
20 GOTO 10
would print my name an infinite number of times. What could be cooler than that?
Today, my kids play with computers all the time. I hate to admit it, but I frequently take a powerful one out of my pocket to keep them entertained when I need a little peace and quiet. They have pretty high standards: an app the prints
Drew
Drew
Drew
Drew
isn't going to impress them.
Coding is a lot more complicated. Computers can do so much more than they ever could before. However, this adds countless layers of complexity and, as a result, creates a much larger barrier to entry.
When I wrote little programs on an Apple IIe, I just fired up the computer, fired up BASIC, and started typing. Today, it's a little more abstract. For most, the easiest place to start would be to write some javascript and HTML in a text editor and run it in a web browser. However, this still requires multiple steps along which multiple things could go wrong. After this option, things get a lot more complicated: proprietary software, frameworks, fancy IDEs, etc. might be required just to get started, which would likely be out of reach of any kids that don't have a programming- savvy adult to help them out.
I do think things are improving, however. Apple's new Swift programming language includes Playgrounds, which allows newbies to write small amounts of code and immediately see the results.
"Playgrounds make writing Swift code incredibly simple and fun. Type a line of code and the result appears immediately."