Comment on page


How to be the best Education Buddy you can be

Training Details

Projected Time

  • Lesson: 30 minutes
  • Exercises: 30 minutes

Prior Knowledge

Here are areas that you will need to have before starting this training. You should have
  • Some experience being managed or mentored (i.e. at work)


It is important to learn about this because
  • We want you to have the best experience possible as an Education Buddy
  • We want you make best use of yours and your buddies time
  • We want you to use the skills you develop at CYF in your own career

Learning Objectives

Participants will be able to:
  • list the responsibilities of an Education Buddy at CodeYourFuture
  • provide concrete feedback on a student
  • confidently mentor a student at CodeYourFuture
  • advise students on how they can get help when they need it



What is a Mentor?

Exercise 1 (5 Minutes)
In small groups, discuss
- What you think are qualities of a good mentor?
- What about the qualities of a programming mentor?
- Have you had a good mentor in the past? Why were they good?

Mentoring at CodeYourFuture

At CodeYourFuture, being a mentor means you have a set of core responsibilities
  1. 1.
    Check in at least every two weeks and assess understanding
  2. 2.
    Code review coursework and projects
  3. 3.
    Pass feedback from your group to the wider team
This role is an ongoing commitment you make to three trainees for around three months.
You are the first point of contact for technical mentorship. For many trainees you will be the first developer they will ever work closely with. Meaningful technical mentorship is the heart of this role. You will build a close, supportive team with your trainees and model code review, accountability, time management and professional behaviour.
You will also attend a weekly meeting with your Buddy volunteer team. This meeting is a place to communicate feedback on individual progress, get additional support, and share skills.

Mentoring Sessions/ Check In

Buddy groups meet every two weeks. (Some Buddies run standups more often.)
In these sessions you will identify blockers and talk/live code through them. You will do code review and give coursework feedback. You will reassure them and empathise with the immense challenge they are facing. This thing we are doing together is really really hard!
You will also facilitate access to resources, including mentoring support, online study resources and access to study groups or peer learning. Developing your trainees to lead their own study groups is a great way to empower them in their own learning.

Before The Call

Consider getting or Doodle etc so that your team can book in times with you that work for them. This will save a significant amount of time and faffing around! You might schedule your meeting for the same time each fortnight; it depends what people can reasonably do.
Take a quick look at the syllabus to see what the student is working on.

During Calls

At the highest level when you speak to your trainees you will
  1. 1.
    Hold them accountable to their commitments and goals, mainly around submitting coursework
  2. 2.
    Find out how challenging they are finding the work and what further resources and support they need
  3. 3.
    Check and develop their understanding
As you become more experienced you will develop your own style and pacing to the sessions.
Some ways to check understanding and develop technical skills
  • Ask the trainee to talk through their code
  • Ask the trainee to add a new small feature to their coursework, or refactor something
  • Complete a programming challenge (look in the syllabus)

Feeding Back To The Team

Depending on your team you will decide to meet every week or two weeks to discuss course progress. Especially earlier in the course it is important that you flag up those falling behind so that we can get the support they need in time. It's also helpful to flag up trainees who could use some extension work.
In these sessions try to be as succinct as possible. It will be tempting to spend time talking about people who are doing well but it is important that you also give time to addressing problems.
In your sessions, try to notice who is struggling in the same ways or in the same areas. Sharing problems (and solutions) with the team is wise.
Feedback should be
  1. 1.
  2. 2.
    Evidence Based
  3. 3.
A less useful piece of feedback might be:
NAME is struggling with their JavaScript homework and is generally lost in lessons
This piece of feedback is not precise - which part of the homework are they struggling with? - it is not evidence based - how do you know they are struggling? - and it is not actionable - how would we be able to help the student with this statement?
A better piece of feedback might be
NAME has struggled to do the homework because they do not understand functions. They could not work out how to return a variable from a function.
This is better because we can more easily work out how to help NAME.
Exercise 2 (10 Minutes)
In our meetings we need to feedback on our student in an accurate, succinct and precise way.
Here are several comments that Buddies have given about students in the past.
You should rank them in order of how useful the comment is to judge how a student is performing. Also give reasons for why it is good or bad.
- The student is doing well and is helping other students.
- The student has created a React app for thier most recently homework that's really excellent. When pressed they can accurately explain the React render loop.
- The student does not understand JavaScript to a sufficient standard but would benefit from additional exercises
- The student has used forEach, map and reduce in their most recent homework and used documentation to assist them

Remedial Tools

If you discover that your trainee needs more intensive help, you have these main tools.
  • Technical Mentoring - When you have time, specific Technical Mentoring can be a really impactful way to help your students. Don't overcommit and burn yourself out. Model healthy working practices please!
  • Organised Study Groups - Ask other Buddies if they are running an open study group this week. For most people, dedicated time with a mentor is an effective way to catch up with the course
  • Encouraging Team Work - The best support a trainee can get is from their fellow trainees. Building and working in teams is essential for our trainees' success. Encourage trainees to set up and lead study groups. You can bring this in gently; it can be scary and hard. Consider setting up the first calls and invite others. Do this in public and lead by example.
  • Organising a Break Week - If lots of people have not understood some concepts, then run a consolidation week and give people time and space to catch up. Volunteers are empowered to deliver the course in a way that works for the real, actual people doing it, and that can mean adapting the course.
If a student is struggling with time management and dedicating enough time the course you can try these tools
  • Daily Stand-up - Ask the trainee to send you a message every morning about their progress over the past day, or create a Slack bot to do this. It's fine for them to say they've done nothing - the aim of this exercise is to build a habit of consistent working - not to shame trainees into working every day.
  • Study Plans - A good tactic is to ask your trainees to write a Study Plan to accurately plan out their week. (It can also be useful to work with their Personal Development Mentor on this plan).
Exercise 3 (10 minutes)
In small groups, let's brainstorm some other ideas of how people can get help if they fall behind.
What other kinds of issues might people have on the course?
What techniques have you used in the past?

Technical Mentoring

Hosting a short call for some technical mentoring is a great way to build a relationship with your trainees.
When you're working with your trainees there are a few rules that you should follow
1. Don't touch the keyboard
It is vitally important that no matter how great the temptation the learner should always be in control of the keyboard.
2. You're there to guide - not to tell
When you are mentoring, your role is to help the trainee get to the solution themselves and not simply to complete the exercise. There is absolutely no need for you to complete the exercises. There is no CYF hotel desperately waiting for bookings. The point of the work is for the trainee to work the problem and develop their skills.
Actively consider whether you should be:
  • Asking general questions to prompt the answer
    • "What values could cause problems for this function?"
  • Asking specific questions to prompt the answer
    • "What happens when you call this function with 0?"
  • Giving the student a high-level instruction
    • "Let's add a state variable and wire it up to a click handler"
  • Giving the student a low-level instruction
    • "On line 7 type '= useState(0);'"
Each of these has appropriate places, but prefer to be as high up the list as you can.
3. Use Google
Developing google skills is vital so don't be afraid to ask them to google to find the answer. The whole problem solving process is important. A great way to model this is to google things yourself - even if you already know the answer.
4. Let them think
Prolonged silences may feel awkward but giving people enough time to think and work through a problem is critical. Don't be afraid to step away for a moment while they work the problem.
If the trainee is taking a very long time, try to guide them through questioning - rather than through facts - to reach the solution they are working towards.
5. Be Logical
Be deeply logical and talk as you carefully inspect every line of the code together. Ask questions like “what does that line of code do?”, “who calls this function?”., "what will this function return?" It's common for trainees to skip around when reading problem descriptions, and have trouble interpreting the requirements. Walk through the question slowly together and ask questions like "what is the first thing this question asks me to do?" or "what kind of input is this expecting?"
6. Reject Self-Response
When offering technical support try not to let yourself fall into the trap of
"Right, we've covered map functions, do you think you understand everything we just did" ... "Yes"
Trainees will always want to seem like they understand and may be afraid of letting you down. Instead try to probe for understanding:
"Right, we've covered map functions, can you tell me what this part inside the parenthesis are doing?" ... "Yes, it's converting a String into a Number"
7. Be Public
Alway try to have these calls in public Slack channels so that multiple trainees can benefit from your work. It also normalises the idea of having public calls with other trainees.
It's okay to be explicit about the focus of a call. Saying things like "We're focusing on using map and forEach - we can cover other topics if we have time.", or "I'm going to be focusing on working with Amalia - others are welcome to join, but she has priority".
8. Above all else, be kind
At times it may be frustrating or tiring - it's hard work! Try to remember what it was like when you first learned how to code. Remember that with hard work, they will get there eventually.

Getting Help

First and foremost - you should remember that you are not alone with your trainees. If you are struggling to find the time to commit to your team reach out on Slack and in your Team Calls to find more people to help.
If your trainees are all struggling with a similar concept it's important to share this on Slack, not only does this help build a culture of open learning, it also invites more people to get involved in the discussion.

Supplementary Material



Time: 20 minutes
Read the materials in the Supplementary Material section of this document

Teach Like A Champion

Time: 30 minutes to 5 hours
This fantastic book is a host of practical advice for teachers and mentors.
Teach Like A Champion (Condensed)
We also have full copies to send you. Please speak to your lesson coordinator.
The most important chapters - for your use - are Chapter 1 and Chapter 4.


Time: ~2 hours
Technical mentoring is a skill like any other that can be developed through practice and critical, constructive feedback.
As a pair, setup a mentoring session with a group of trainees. One person should spend twenty minutes working with the trainees on the challenges that they are facing. The other person should take notes and feedback on the session, After twenty minutes, swap roles and continue with the exercise.
For the mentor, try to keep in mind everything that we've cover in this session. You'll make mistakes but don't worry! It's all in the process.
For the watcher, take notes on if your partner is covering the rules that we spoke about earlier.
After the session, feedback your notes to each other.

Buddy Work

Time: 30 minutes
Next time you speak to your trainee spend some time working out what motivates them and what they want to get from the course. Try to find out
  1. 1.
    Why are they doing the course?
  2. 2.
    Why do they want to be a programmer?
  3. 3.
    What do they think their biggest challenges are to becoming a programmer?
Answering these questions will make it easier for you to tailor your mentoring to the individuals you are working with.


Feedback on this course can be given directly to Chris Owen or by completing this form.