I’m volunteering a couple mornings a week at a local high school, helping out with computer science classes.
This morning, in AP Computer Science Principles, the teacher went through an explanation of the hexadecimal number system, then gave an in-class assignment for students to convert their cell phone number to hexadecimal. Not in two parts, 3 digits and 4 digits, but as a 7-digit number.
It seemed pretty obvious from the interaction and the body language and the looks on their faces that a lot of students didn’t get it, but in a class of 25 students, only one student asked for help. Until the teacher finished with that student and asked “Does anyone else need help?” and eight more students immediately raised their hand.
I asked the teacher, “Can I address the class for a minute?”
“First off, doing a 7-digit hex conversion is not easy. I know professional programmers who can’t do it. So I’d expect someone trying to do it for the first time to need some help.
“In fact, if you know any professional programmers, ask them to do a hex conversion on their phone number. Let me know what happens. I guarantee you won’t have to ask too many people before you stump someone.
“None of the material in this class is easy. Snap programming? You might look at it and think ‘There’s a cat and a fish and a duck . . . I’m not understanding it but it looks like a program for 5-year-olds. It’s embarrassing as a high school student to have to ask for help with it. Maybe I’m not very smart.’
“No, Snap is a university-level curriculum from Berkeley. Academically rigorous. I worked through the assignments myself and I found them pretty challenging. I’d expect many of you to find them challenging as well. So you should be asking for help.
“If you need help, waiting for someone to ask if you need help is not going to be a winning strategy. In school, in life or in anything. Because if no one asks, then you need help and you don’t get it.
“There’s probably a natural reluctance to ask questions because what if I’m the only person who doesn’t know the answer? Then I ask a question and look foolish.
“It’s going to be unusual in any class that you’re the only person who doesn’t understand something. If you find that happens to you a lot, you may have a problem. But normally it’s going to be pretty unusual.
“I can tell you in this class, there’s definitely more than one person who finds the material pretty challenging. As I said, I find it pretty challenging myself. It’s not so challenging that I need help with it, but it’s definitely challenging enough that I’d expect most people who are not programmers to need help with it.
“I’m also hearing some people today saying to themselves or to the person next to them, ‘Why do we need to know this?'” That’s actually a very good question. Binary of course is the fundamental language of computers, but why would you need to know hexadecimal? Anyone?”
No hands go up.
“OK, we’ll talk about that in a minute. If it’s not clear to you, in this class or any class, why you’re being asked to learn something, put your hand up and insist on understanding the relevance.
“One final anecdote:
“I worked with an AP class a couple of years ago at another school. About this same timeframe, late first semester, I was in class on a Monday and before the class started, one of the students asked me, ‘How was your weekend?’
“I said, ‘It was okay. How was yours?’
“‘It was great! I played like 47 straight hours of [some video game I can’t remember the name of].’
“And he was one of the worst students in the class, maybe the worst.
“I know he and his parents had met with the principal and the teacher to figure out why he was doing so poorly in computer science. It had to be the school’s fault, right?
“So I’m trying to wrap my mind around this. You played 47 hours of video games, you have no idea what’s going on in this class, and it’s the teacher’s fault?!
“No, it’s your fault. You put nothing into it so you get nothing out of it, you don’t ask for help, and that’s why you’re failing.
“Moral of the story: Don’t be that guy.”
Thus spoke The Programmer.