Before examining the mentoring mindset, it may be helpful to understand what a mindset is.
According to the Oxford English Dictionary, Mindset
is an "established set of attitudes, esp. regarded as typical of a particular group's social or cultural values."
A person may have an individual motivation for engaging in an activity, but a mindset directs that the motivation is in line with a group's values.
For the Exercism mentor, that means approaching the mentoring process within the spirit of the Exercism community.
It can be helpful to review the intent of Exercism as expressed on the About page. All of it is worth reading and considering, especially
- "We’re building a place where anyone can learn and master programming for free, without ever feeling lost or stupid."
- "Exercism should be enjoyable, challenging and valuable."
- "Exercism should encourage a growth-mindset, clear and empathetic communication, and emphasize the value in learning together."
- "Exercism should feel safe and nurturing."
- "Exercism focusses on the learning journey, not the destination. The process and enjoyment of learning is more important than absolute factual correctness."
The spirit of a mentee could be seemingly off-putting.
Some mentees may have something in their comment which is self-deprecatory. They may say something like "I'm not very smart" or "I don't understand" or "I'm not very good at this". It may be tempting to address such statements directly in the Exercism spirit of empathy and nurturing. As a mentor, though, it may be more effective to express the specific things you like about their solution than to give them some kind of vague reassurance. If there is nothing you can honestly praise about their solution, you can congratulate them on passing the tests, or, if they didn't pass the tests, at least acknowledge their effort.
Some mentees may start their comment with something that may come across as negative. They may say something like "Why do I have to do so-and-so?" It may feel as if they are complaining in the manner of, "Why do I have to eat my peas? I hate peas!" You may be put off from mentoring the person because they seem to be off to a confrontational start. But what can seem like defiance or a complaint could just be a simple inquiry, even if expressed a bit abruptly.
Many mentees do not have English as their first language.
This can be another reason why a mentee's initial comments may seem less friendly than they really are.
It's best to ignore what emotion their comment may have triggered and simply respond to the question.
Those are just two examples illustrating how the perceived spirit of the mentee should not affect the attitude of the mentor in responding to them.
The spirit of the mentor could be based on either pride or humility. A mentor may feel they are entitled to mentor because they are smart and/or have a certain amount of experience. They may feel they should mentor because they know better than others. A mentor whose spirit is based on pride may still approach the mentee with patience and polite guidance, even though it may be more out of magnanimity than empathy.
Or a mentor may have the spirit of humility. They may be keenly aware of what challenges they faced in learning how to program. They may know they don't have all the answers, but they know some, and they are willing to share their hard-earned knowledge. A mentor whose spirit is based on humility is still human, and may be tempted to respond to a difficult mentoring session in a curt or argumentative way. Even a person with the best intentions needs to be vigilant when having a bad day.
There is a third spirit which is a variant on the spirit of pride, and that is the spirit of insecurity. A mentor may feel insecure about their reputation and seek validation from mentees as a way to compensate. They may overwhelm the mentee with voluminous data and references to show how well-informed they are. The mentee may get useful information out of such a data-dump, but that is the secondary objective of the insecure mentor. The primary objective is to demonstrate how knowledgeable the mentor is. Although motivated by a different objective, the insecure mentor may still succeed in achieving the goals of the Exercism mindset to the extent they don't lose the mentee in the weeds.
Factual correctness is certainly important and has its place. For example, it's important that imperial units of measurement are not used where metric units of measurement are expected. Otherwise, a $327 million Mars Climate Orbiter can crash. Certainly, a person using a language professionally is expected to observe correctness as a key requirement.
For someone learning a language, however, the requirements are a bit different. For one, we don't want to discourage the person from continuing to learn the language. For some mentors, especially the ones with a spirit of pride, there may be a feeling of accomplishment in getting someone to realize they may not be suited to a particular language, or that this is not the right stage at which to learn that language. Although that may be an acceptable outcome in some work environments, it is not an outcome that is within the mindset of Exercism.
One exception to that is for someone who is learning their first programming language.
Exercism is intended for someone who already knows how to program and wants to learn another language or improve their existing skills.
The upcoming Learn to Code platform will be directed at people who are just learning how to program.
Often, someone looking to be mentored has been studying a programming language for a few weeks or months and is seeking to improve on the basics they've learned. That person may or may not have experience with another language. If this is their first language, but they've picked up basic keywords and concepts, then they stand a good chance of benefitting from being mentored. They may require a bit more patience and explanation, which the mentor may not have realized when they first accepted the mentoring request. Once committed to the encounter, though, the Exercism mindset is to either be as supportive and encouraging as possible, even if that requires some extra effort, or to politely suggest that the session end so the mentee can resubmit for another mentor.
Of course, mentees may decide for themselves not to continue pursuing a language. Most will likely not tell us, but will simply stop solving exercises for the language. During the course of a mentoring session, however, we should be faithfully supportive and encouraging. But there are different ways to do that. One way we don't want to do it is to be toxically positive. For instance, it is less helpful, and may make someone feel "less than", if we encouragingly insist "I know you can figure it out" when they are having trouble understanding something. It may be more helpful to keep trying different explanations and offering other examples then to simply push them with encouragement that can sound to them like "C'mon! Don't you get it yet?"
The solution a mentee arrives at, even after several iterations with a mentor, may not be the most performant, or may not be perfectly conformant with coding standards. To drive the mentee for a perfect solution is an example of the absolute factual correctness that is not in the spirit of Exercism. The solution may be good enough, at which point the refinement of technique can be reserved for another mentoring session.
A mentor may not be sure of their obligations. The obligations are few and simple: to be helpful and encouraging. If at any point the mentor feels they can't be either of those, then it may be best to politely suggest that the session end so the mentee can resubmit for another mentor. It may be best for the mentor to invite the mentee to end the discussion, but if the mentor feels the need to end the discussion, it would be polite to do so with a final comment explaining why. Although it may be tempting to focus on the faults of the mentee that made the session unsatisfactory, it would be more in the spirit of Exercism for the mentor to not focus blame on the mentee.
The cooperative spirit of Exercism is best expressed by not just giving away the (better) solution to the exercise, but by describing other appproaches that could be used and leaving it to the mentee to code the implementation of those suggestions. The solution could be made optionally available to the mentee in case they get stuck. It could be a snippet example in a collapsible details section, or it could be a link to a published solution. It would be the mentee's choice whether to expand the section or follow the link.
It's possible the mentee may acknowledge a preference for a suggestion, but say they will keep it in mind for the future. The mentor may suggest that another iteration could be submitted that is based on the suggestion, but the mentee may decide to end the discussion without modifying their original solution. Although it may a bit embarrassing to have a published solution marked as being mentored by you that you think could be better, it is in the spirit of cooperation to not push the mentee to implement the suggestion if they seem disinclined.
Another way the cooperative spirit works is by the mentor learning from the mentee. During the course of the session the mentee may bring up something the mentor doesn't know. A mentor is not expected to present an "all-knowing" facade. It's perfectly fine for a mentor to express that they didn't know or had not thought of something the mentee brings up. Letting the mentee know that they taught you something can be one of the biggest boosts you can give. It's part of the cooperative learning process.