To most instructors and students, learning is work. “School is your job,” they like to say. Students need to discipline themselves to study hard and get their work done, which will allow them to pass their exams and receive good grades. We assume that learning takes place somewhere throughout all of that.
I’ve learned very little under this model. Most of my technical knowledge comes not from hard work, but from play. Some people understand what I mean immediately when I say this, but as often as not I get blank stares.
Look at physical fitness, for example. Most athletic people get their training and exercise by playing sports. There’s a game at the center of their workouts, and they come back week after week because they enjoy playing. Trying to improve math or science skills by studying hard is like trying to lose weight by going to the gym. There are a few people who have the drive and determination to keep up their schedule and make progress, but most folks have trouble with it. On the other hand, playing a sport makes staying in shape a mere side-effect of having fun. This is true for physical education, and it works for other types of education as well.
I’m a computer science major because of a game called Robocode. My friend introduced me to it in middle school and I’ve played on-and-off ever since. Basically, each player receives a little robot that can shoot darts of energy at other robots until one of them runs out of power. The catch is that neither player has direct control over their robot during the game; instead, they predefine behavior in a Java program. These driver programs vary in complexity from simple directions for moving in a circle to thousands of lines of code for machine learning and statistical targeting algorithms. Like most athletic games, it’s scalable; it gets more interesting and difficult as the player’s skill level increases.
Robocode was my first exposure to programming and has probably taught me the more about coding than any class I’ve taken. During my efforts to make ever smarter and more effective robots, I learned about Java syntax, data structures, and lots of other sundry CS knowledge. Last week during an interview, I was asked a question about multithreading—I knew the answer because each Robocode driver program runs in a separate thread. This Monday in one of my CS classes, we covered k-d trees, a data structure I’d learned about since one of the top targeting system designs uses them extensively. It was a huge head start, and I never had to worry about keeping motivated. It was just fun.
This is different from well-intentioned instructors trying to “gamify” their curricula. Multiplication Jeopardy! won’t hold anyone’s interest for more than a few minutes. It starts getting boring when “six times seven” comes up for the third time in a row, and there’s no creativity or critical thinking involved. The important thing isn’t the game structures like teams or points; it’s the feeling of playing instead of working. The game doesn’t have to be something like Robocode, or even technically a game at all. It just has to be enjoyable for its own sake.
Finding fun in academic subjects isn’t as hard as it seems. Math homework might be boring, but some people can spend hours with sports statistics. I know I’ve spent a good deal of time learning probability because I like card games and dice games. (That also helped me out on an interview question last week!) The point is that your coursework is as applicable to your life as you make it. There’s a lot of buzz nowadays around the catchphrase “work hard, play hard,” but there doesn’t always have to be a clear line between the two. Games that exercise your mind are as good for you as ones that exert your body, and they can be just as fun, too.