Skip to content

Instantly share code, notes, and snippets.

@maryrosecook
Last active December 15, 2018 22:33
Show Gist options
  • Save maryrosecook/45555d0e34ac2c5b92ae3155a142370c to your computer and use it in GitHub Desktop.
Save maryrosecook/45555d0e34ac2c5b92ae3155a142370c to your computer and use it in GitHub Desktop.

Responding to a student's request for help

Process

  1. Map the student's request for help to one of the underlying problems listed below.

  2. Apply one of the suggested solutions.

  3. Ask the student for feedback on your help.

Problems underlying a request for help

Student doesn't have a clear problem explanation

Student wants a concrete piece of information

  • Maybe suggest they follow the escalation process.

  • Maybe suggest they look it up. Make them feel held, possibly by explaining why you're not telling them the answer.

Student doesn't know how to implement a piece of functionality

Student doesn't know how to implement a piece of functionality, and nor do you

  • Suggest they employ the developer skill that you would use in this situation. Stay with them as they apply the skill. Give instructions that are as high level as possible. Suggest they work on their own once it becomes clear they are on the right track.

Student wants your opinion on their idea

Student wants an intro to a topic

Student has a bug they should be able to solve on their own

Student has a bug they don't have the background knowledge to fix on their own

Student has a bug for which you can't predict a possible solution

  • Run through the debugging process with the student, suggesting high level causes like maybe the server is erroring when it responds to the Ajax request and letting the student worry about the details. Suggest they work on their own once it becomes clear they are on the right track.

Student has a bug that will take them a long time to fix

  • Debug and fix the problem for them. Whilst keeping the process efficient, try and make it as open as possible. Try and explain how you know to try the things you're trying.

Solutions

Escalation process

Identify and train a developer skill

For example: diagramming, delegating behaviour, breaking classes into single responsibilities, debugging asynchronous code etc.

  • You can identify a skill that's lacking by looking at how the student asks their question, what solutions they've tried, and how they've tried to find the problem.

  • Name the skill you want the student to train to set their expectations. Suggest they employ the skill to solve the problem. Name the skill at the end of the session to help them remember to use it.

  • Figure out how much to scaffold the skill. Maybe the first time you suggest diagramming, you'll need to walk the student through it. But, in future interactions, you should be able to reduce the scaffolding.

Identify and train a developer behaviour

  • For example: the XP values.

Help student clarify their problem explanation

  • Maybe ask them to clarify their question.

  • Maybe use 5 whys.

Debugging process

  • Tighten the loop.

  • p everywhere.

Suggest reading material

  • Suggest a blog post or 💊.

Handy, broadly applicable skills

Diagramming, 5 whys, falsifying assumptions, following the flow.

Traps I sometimes fall into

  • Giving into the student's desire to get a solution NOW. In these cases, I should try to get them out of their writing code brain and into their observing brain.

  • Asking breadcrumb questions that really just require reading my mind.

  • Not having a clear plan for where I want the interaction to go, and jumping between methods of helping the student.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment