09 October 2017

Let me hedge sharing this by saying: I am a terrible teacher. I lack patience, and when presented with the opportunity I will immediately jump to providing a solution rather than explaining the problem and working through it with a colleague.

That said, I do hope to get better at it. I have been reading Jo Boaler’s “What’s Math Got To Do With It?” and some of the questions that she recommends for encouraging students along seemed applicable to teaching software development, too.

When I am called over to students who are stuck in math classes, I almost always start with “What do you think you should do?” Then, if I can persuade them to offer any ideas, I ask, “Why do you think that?” or “How did you get that?”

This is a great way to kick off a conversation with a developer that may be stuck, too!

Boaler goes on:

Some good prompts to use […] are:

  • How did you think about the problem?
  • What was the first step?
  • What did you do next?
  • Why did you do it that way?
  • Can you think of a different way to do the problem?
  • How do the two ways relate?
  • What could you change about the problem to make it easier or simpler?

That last question is a great example of problem decomposition. When faced with a big programming problem (“I can’t get this program to run!”) how can we break it into smaller problems (“Let’s apply the wolf fence algorithm!”).

The main thing to keep in mind is: be patient, encourage explanations (be the rubber duck!) and questions, and ask a lot of questions as the instructor.

I hope that I’ll get better at it. Adding these questions to my toolbox seems helpful.

Side note: if you have any interest in teaching math to kids, “What’s Math Got To Do With It?” is quite good. As usual with any good book that I find, I got it off my wife’s reading queue.