Skip to content

Commit 19555f3

Browse files
authored
Add mentoring docs (#171)
1 parent a0ae39b commit 19555f3

File tree

3 files changed

+180
-0
lines changed

3 files changed

+180
-0
lines changed

mentoring/choosing_a_solution.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Choosing a solution to mentor
2+
3+
The first decision you need to make as a mentor is which solution to mentor.
4+
5+
## Working with the Queue
6+
7+
You can find a list of all solutions that have been submitted for mentoring in the [Mentoring Queue](/mentoring/queue).
8+
The UI should look something like this:
9+
10+
[TODO: Image of queue].
11+
12+
If you have a particular student you'd like to mentor, you can search using the filter box, and you can order by oldest or most recent.
13+
On the right-hand side you can filter by language or exercise.
14+
You can also choose to only show exercises you've completed yourself (enabled by default), which is often wise as you will struggle to give great feedback if you've not wrestled with solving the exercise yourself.
15+
16+
The main table shows the exercise, the student and when they requested mentoring.
17+
Hovering on a row gives you lots more detail.
18+
You can see more about the user: their name, location and reputation (which is a great indicator of whether they are a contributor or mentor themselves) and also how many times they've been mentored before.
19+
You'll also see some blurb they've written explaining what they're looking to get out of the track.
20+
As you start mentoring people, you'll also see whether you've mentored them before, and if you've favourited them,
21+
22+
The blurb on the tooltip is a great first indicator about whether this student is right for you.
23+
Do their knowledge gaps match your expertise?
24+
If they say they're looking to get good at functional programming, can you help with that?
25+
If they new to the language and looking to learn the basis, then if you have **any** real experience, you'll probably be able to help, but if they've been programming in that language for years and trying to hit expert-level, you'll need to have a pretty solid grasp of the language yourself.
26+
27+
Once you've found a solution that looks like it might be good, we can take the next step and have a look at the code.
28+
So click on that solution and enter the Mentoring Discussion UI
29+
30+
## The Mentoring Discussion UI
31+
32+
At this stage you're looking at someone's solution, but haven't yet committed to mentoring it.
33+
You first have the opportunity to read their code and get some other information, before starting.
34+
35+
**If you're new to this UI, it might feel a little overwhelming as there is a lot of information, but don't worry - it'll soon become familiar.**
36+
37+
### The student's code
38+
39+
On the left hand side of the screen is the student's code.
40+
The UI will look something like this:
41+
42+
[TODO: Image of mentor discussion with areas marked].
43+
44+
1. The left hand side shows you the students code.
45+
By default you'll be seeing their most recent iteration.
46+
If they've submitted multiple iterations, you can switch through these using the numbers in circles at the bottom, but they've only submitted one iteration, then you won't see those icons.
47+
48+
2. You can use the tabs at the top to switch between the student's code, the tests, and the instructions.
49+
This is useful for reminding yourself about what the student has been asked to do in this exercise.
50+
51+
3. You'll also see an indicator as to whether the tests have passed or failed.
52+
If they failed, then clicking on this indicator will open a modal that shows you the specific details of their test run, so you can see what they did wrong.
53+
54+
On the right hand side, you'll see three tabs.
55+
The overview tab will contain the same information about the user that you saw on the toolip.
56+
Below that you'll see a comment for the user about what it is that they want to learn from this specific solution.
57+
(For some older solutions, this might be missing).
58+
This is a key indicator as to whether this solution is right for you.
59+
Can you answer their question?
60+
Can you fulfil their hopes for this exercise?
61+
62+
The third tab is called "Guidance".
63+
If you click on this you'll see some information that might be useful for you:
64+
65+
- **Mentor notes:** These are community-written notes that help point other mentors towards the best way to mentor an exercise.
66+
We'd really love you to help contribute your experience back to these notes.
67+
- **Automated feedback:** This is feedback that our analyzers have determined might be useful for you to give to a student.
68+
We'll discuss this more later.
69+
- **Your solution:** A link back to your own solution, which you can use as a reference for how you solved the exercise.
70+
71+
## Start mentoring
72+
73+
If you've read the code, checked the guidance, and feel you can be helpful, then it's time to get going!
74+
Click the "Start mentoring" button and you'll be promoted to write your feedback.
75+
76+
Have a read of [How to give great feedback](./how-to-give-great-feedback) next!

mentoring/config.json

+16
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,21 @@
66
"path": "mentoring/README.md",
77
"title": "Mentoring Guides",
88
"blurb": "Learn how to make the most of our mentoring on Exercism"
9+
},
10+
{
11+
"uuid": "6abb0b03-b639-4fff-9089-b0956e0209c8",
12+
"section": "mentoring",
13+
"slug": "choosing-a-solution",
14+
"path": "mentoring/choosing_a_solution.md",
15+
"title": "Choosing a solution to mentor",
16+
"blurb": "Decide which solution is right for you"
17+
},
18+
{
19+
"uuid": "3463ebad-fb50-4a7d-afeb-cbe125b181fe",
20+
"section": "mentoring",
21+
"slug": "how-to-give-great-feedback",
22+
"path": "mentoring/how_to_give_great_feedback.md",
23+
"title": "How to give great feeback",
24+
"blurb": "You've chosen an exercise to mentor - now give some great feedback."
925
}
1026
]
+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# How to give great feedback
2+
3+
At this stage you should have chosen a solution to mentor.
4+
If you've not, work your way through [Choosing a solution to mentor](./choosing-a-solution) first, then come back here.
5+
6+
## Your first feedback
7+
8+
You're now about to give your first feedback to a student.
9+
This can be exciting but also pretty daunting.
10+
A lot of (the best!) mentors suffer from [Impostor Syndrome](https://en.wikipedia.org/wiki/Impostor_syndrome) at this stage, and give up before they start.
11+
If you feel like that, it's totally understandable, but also almost always unnecessary.
12+
By the fact you're worrying about whether your feedback is going to be good enough, it's likely that you'll give thoughtful humble comments that students really appreciate.
13+
And in the worst case, a student can always end the discussion, and wait for another mentor, so let's give it a go!
14+
15+
## Mindset
16+
17+
The first thing to keep in mind is having the right mindset as a mentor.
18+
Students are hoping you can help improve their knowledge, and tell them things that they don't know.
19+
Your job isn't to "mark" their work, it's to use their solution as a basis for unlocking ideas that they are not familiar with or are struggling with.
20+
21+
It's also worth remembering that most Exercism users are experienced developers learning a new language.
22+
So although their code might look bad, that may well be because they don't know how to write this language.
23+
Similar code in a different language might be totally idiomatic and correct.
24+
Conversations tend to go much better when they are approached as two peers discussing a topic, rather than one person showing off their knowledge to another.
25+
26+
## Addressing the student's request vs teaching a new idea
27+
28+
When a student submits a solution for mentoring, they are promoted to tell the mentor what they are hoping to get from it.
29+
It's really important that you as the mentor read that and try and address it in your feedback.
30+
31+
However, one of the key values of mentoring on Exercism is that mentors can help students discover ideas they had no idea about.
32+
So you might look at a student's solution, read their comment which asks if there are any tweaks they could make, and think "Wow - you really don't have a grasp on this exercise at all".
33+
It might be that they've totally missed the point of the exercise.
34+
In your time as a mentor, you'll see some incredibly "overfit" solutons where students make the tests pass but totally miss the point of the challenge.
35+
Or see incredibly complex solutions that can be rewritten in a couple of lines of code.
36+
37+
Your job as a mentor is to help take the student forward **from where they start**.
38+
What's the biggest thing you could do to help unlock an idea or unblock your thinking?
39+
You'll find that if you can explain an idea to a student and set a lightbulb off in their head, it'll be an incredibly rewarding discussion.
40+
41+
## Don't just give the solution away
42+
43+
The aim in mentoring is **not** for a student to get to the optimal solution, it is for a student to learn new things.
44+
Simply giving a student the correct answer is neither useful nor helpful.
45+
Exercism encourages students to go and look at other people's solutions and learn from them, so you giving them a good solution doesn't add any value.
46+
The value you add as a mentor is helping them think differently, helping them see things in a different light.
47+
48+
Different mentors have different approaches to whether they give "hints" or "explanations".
49+
As a general rule, aim for somewhere between the two.
50+
Ensure that you tell the student enough that they can understand what they should try, but try not to just give them the answer and tell them why it works.
51+
52+
For example, let's imagine you see an `if` statement in Ruby that would be much more nicely written using the [ternary operator](https://en.wikipedia.org/wiki/%3F:):
53+
54+
```
55+
# Student's code
56+
if a
57+
b = 1
58+
else
59+
b = 2
60+
end
61+
62+
# Mentor's suggestion
63+
b = a ? 1 : 2
64+
```
65+
66+
You could just say "Write `b = a ? 1 : 2` instead of the `if` statement on L10.
67+
But that wouldn't be helping a student understand the why or have a lightbulb moment of their own.
68+
69+
Instead it would be much better to introduce the idea of a ternary, and pose the student a challenge.
70+
For example: "I think you could reduce the Lines 10-14 down to one line using the Ternary Operator. How might that look?"
71+
A student will then have to play with that and solve it themselves, but you've given them enough info to work with.
72+
73+
On the other end of the scale, saying "Reduce lines 10-14 to one line" wouldn't give a student any indication of how that's achievable, and so could be incredibly frustrating for them.
74+
So try to ensure you give enough information for a student to progress.
75+
76+
## How much feedback should you give
77+
78+
Different mentors have different styles, but our default suggestion is to give the most important one to three pieces of feedback on any iteration.
79+
If the student submits a new iteration with those solved, then you could give another one to three pieces of feedback.
80+
By breaking things up in that way, a student will not feel overwhelmed, but will also have enough to do to make meaningful changes each time.
81+
82+
As you gain experience mentoring, you will get a feel for the different ways students react to different feedback, and develop a style that fits your personality.
83+
84+
## Unsure of something? Chat to other mentors?
85+
86+
One of the best things about being an Exercism mentor, is the community of other mentors you can learn from.
87+
If you've got a question about a solution, or just want to bounce ideas with other mentors, jump into our [Slack Room]() and ask away!
88+
You'll probably find people you can help there too 🙂

0 commit comments

Comments
 (0)