topic: Learning how to teach coders

In order to address and assess knowledge and skill gaps with our students, we schedule one on one sessions with the students.

Roles

  • Leader: This person drives the session and is generally responsible for scheduling the session. This is usually a staff member or JTL
  • Follower: This person is there to learn and grow
  • Observer: This person is there to keep an eye on the quality of the event in order to pursue continual improvement. Ideally the observer will be silent and have a brief chat with the Leader soon after the pairing event to give feedback. The Observer can step into the pairing session if the Leader is less experienced and is falling into one of the common pitfalls/anti-patterns badly enough that the session is a waste of time for the follower.

Purpose

The purpose of these sessions should be kept top of mind during the sessions. If you are optimising for the right things and critically looking at your actions through the correct lense then your skills will likely improve

  1. Technical and conceptual growth. This is the primary goal
  2. Cultural aspects. We need the students to know that it is ok to struggle and that we are here to support them. It’s useful to tell them that their success is our success and to try to keep things friendly and lighthearted. DO NOT treat the followers like naughty kids. Treat them like the high potential future rock stars that they are
  3. Assessing technical ability. This generally happens automatically if you take 1 and 2 seriously

Patterns and Anti-patterns

Learning is not a passive thing. If the follower is not actively practicing a skill by interacting with the content/problem being addressed then this is not useful.

  1. Don’t give the follower the answers immediately, give them time to think. This takes patience and occasional silence
  2. Don’t ask simple yes/no questions. Get explanations and predictions. Good eg: “What does this code print?”
  3. If you are unsure if they really get a concept then jump into “Deep practice” mode to level them up
  4. Don’t get the learner to write too many comments. If they are rewriting their code in English then that is pointless. Eg # declare a new variable called x and set it to zero can be better written as let x=0. Comments exist to add clarity, not to take up space and time.
  5. Don’t insist that the follower says pointless things. Eg “I am now writing a function, derp derp, I am naming my variable x, derp”. It is good for them to explain what they are doing but if you are too high res about things here then it’s just painful and useless.
  6. If you ever need to ask the question “do you understand?” then it is important to get the follower to demonstrate their understanding
  7. If you need to explain what a code statement does then make sure that there is a screen being shared and it is doing useful things. Don’t just riff about things with no visual aid
  8. DO get the learner to write clean code and name their stuff properly

Types of sessions


RAW CONTENT URL