I teach, and have taught, a lot of introductory programming classes. Over time I’ve developed techniques that I think are effective for helping people learn to program, and I was recently reminded of the one I call “the one hour rule”. According to the one-hour rule a student who has worked on one issue in a focused way, meaning with no distractions, for one hour and has not made progress should e-mail me with a question. I tell them they need to honestly and judiciously apply it, but if they do I don’t complain (to them) about the e-mails that result.
The one-hour rule is crucial for students taking languages like C++ and Java, but I’m also finding it helpful for students taking Python. I like it for several reasons. First, it helps students to understand that they need to be focused about their work. Coding while distracted isn’t good for anyone, and if they are applying the one-hour rule they are forced to recognize what a focused approach feels like. I also like that it reduces frustration. If you’re making progress on something regularly, say at least once an hour, you’re not going to feel as unhappy about coding. One of the benefits of writing code is that you produce an artifact that actually runs, but that’s only true if you can make enough progress to get to that point. I also like that it practically eliminates the “but I worked for hours on this” complaints. If anyone says that, I get to legitimately ask why they didn’t contact me sooner.
The one-hour rule doesn’t work in every introductory programming class everywhere. For example, I have relatively small classes, thanks to DePaul, so I can expect to be able to answer the volume of e-mail that the one-hour rule generates. And it does generate a lot of e-mail. I also don’t think that the one-hour rule is helpful beyond the first couple of quarters of programming. Learning to sweat over small things for hours on end and persist until you figure them out is an experience every programmer needs to have, ideally repeatedly. I think though that frustration is best saved for the point where you are confident enough in your abilities to put in that level of time and energy. So while it’s not a perfect or universal rule, I think it helps my students to be less frustrated and learn more.