Learning Curves

Understanding the properties of a medium is a process of repeatedly testing its bounds.

If you're seated in front of a large panel with fifty buttons, you push them and see what happens. You watch what each one does on its own, and you start to notice patterns. Sometimes complex and interesting effects emerge because two buttons actually interact in a non-obvious way. Any system is like this; you fuck around with it until you grok it. Every time you give it an input, it responds and your mind makes a note of it, developing a more and more comprehensive model of its behavior. At some point, that understanding becomes like a reflex. When you're learning to shoot a basketball, your muscles learn the subtle control needed to give the ball just the right amount of thrust. The faster you can iteratively make these "changes and observations", the faster you learn the hidden properties.  

Sure. Obviously! But in life, there is a broad spectrum of activities, varying in how difficult or expensive they are to learn and master. But some of them don't need to be that hard; technology done right can make them easier.

What's harder: learning a video game or learning how to bake a cake?

Understanding how to play Pac Man takes about 10 seconds. The first time you run into a ghost you know they're bad for you. Meanwhile, learning how to bake a semi-edible cake takes at least an hour to figure out something small, like how you screwed up by using too much milk. Reduce the milk, try again. Taste it. Oops, you used too many eggs and probably took it out of the oven too soon. Baking requires several factors to go right AND has a long cycle time.

In general, the ideal medium gives you a direct connection between your action and a result. Instantaneously. Video Games have really mastered this concept (at least, the well-designed ones like Mega Man X) with tight controls and self-teaching levels. No manuals. You press a button, jump and see how far you can go. The rules of this little universe are illuminated immediately, as you play. Could you imagine if programming were as tactile as that? Try to envision a language + environment that didn't need a manual or any outside documentation. What would that look like?

Difficulty is directly tied to the length of the feedback loop, multiplied by the number of input factors (dimensions). It also depends on whether the information you receive indicates a clear direction when you screw up. If you get a lot of conflicting information or ambiguity, it's not that helpful; imagine if some PacMan ghosts hurt you while others didn't, but they all looked the same and it seemed pretty random. Pretty frustrating, eh? As it just so happens, programming languages do exactly this shit. It's extremely frustrating for novices. 

But keep in mind: software doesn't need to be foolproof. In fact, making foolproof software is extremely time consuming because 90% of your code will deal with edge cases from side effects of side effects messing with other side effects. There is a notion of "acceptable failure" that should be embraced, so long as the cause is made clear and it's easy to CTRL+Z out of it. User error is a perfectly acceptable scenario if the feedback is clear and immediate. You don't blame the designer if Mario falls into a pit; you were warned.