Tuesday, August 9, 2011

Everyday I'm bloggin'

So my astoundingly awesome nerd buddy Kyle is doing this fancy Blog Every Day in August thing and tells me I should do the same. I'm 9 days late and horrible at updating my blog, so it seems improbably that I'll be able to keep it up, but I'll take a stab at it anyway. Maybe.

So, where should we start? I rarely talk about my own personal life in this blog, but I feel compelled to talk about my summer job a bit. Ages ago I found a listing on Craigslist looking for people to teach teenagers game design at a summer camp. I followed the link, and next thing you know I've been hired by a pretty fancy company to teach for two weeks (was supposed to be four but one session got cancelled) at Lake Forest College. Two weeks isn't much, but fortunately they had openings at another school and I was able to teach for another four weeks at Northwestern University.

It was an interesting experience. Teaching can be a fair bit stressful but also, at the risk of sounding sappy, fairly rewarding. I also learned that teaching programming presents some unique challenges.

The problem with teaching a programming class, especially one that is only a week long, is that there is no conceivable way to teach the kids everything they'd need to know about the given language. Even in a semester long college course you can only scrape the tip of the iceberg. I saw my job as not to teach them to program, but to teach them how to learn to program. The first couple of days I'd hand them everything as they had no idea what anything meant, but as the end of the class drew nearer I'd become intentionally more vague. Rather than spelling out everything, I'd give them a higher level suggestion and tell them to think about how to implement, or rather than fixing their problems for them, I'd give them some general troubleshooting strategies. If they had a problem, I'd tell them to Google it first.

This wasn't to be lazy on my part, this is just how I program. Nobody has all the answers out of the box. I don't sit down to start on a piece of software and instantly know what to do. I figure out what I want to do, pull out some Google tutorials and start thinking about how I'll make it happen. The problem is that kids aren't used to classes like this. They expect the adults to have all the answers and dispense them freely, so sometimes when I'd tell a student "Why don't you Google it and see what you find?" they'd get frustrated, thinking it mean I didn't know the answer and was just trying to keep them busy.

Sure, a few times I didn't know the answer, but most of the time I was just trying to show them how to figure things out on their own. Some of the kids got this fine, and developed the ability to solve most of their problems on their own, only calling me over to ask for help when they had a huge issue. Others, however, became entirely dependent on me. Sure, I don't mind helping and answering questions, but if you refuse to do anything without my help, what are you going to do when I'm gone, kids? Fortunately, those cases were the minority, and I like to think that most of my kids left prepared to Google and MSDN/Apple Dev Network their way to success. (Or is that just me being naively optimistic?)

Well, that post ended up a lot more substantial than I expected. Now to figure out what to ramble about tomorrow.

tl;dr Going to try (and fail) to post every day in August. Teaching is hard but fun.

No comments:

Post a Comment