Question
During my career as a software engineer, I have been both the learner and the mentor, and I have noticed that it can be very easy for the mentor to become a crutch to the learner. Rather than teaching the learner to catch fish for themselves, the mentor ends up doing all the fishing (I think I destroyed that analogy - apologies).
How can this be avoided? How can a mentor properly support their charge without the charge becoming overly dependent on the mentor?
A mentor hopes to teach not only the tricks of the trade with regards to programming, but also with regards to resourcefulness and the self-reliance required to research things one doesn't know. However, what tends to happen is that the student just learns to ask the mentor (until persuaded to do otherwise).
In my experience, the student usually uses the mentor as a crutch until rudeness plays its part ("Go do it yourself! You whiny b*tch!" for example), which is obviously not preferential in polite quarters where colleagues are to get along amicably and be encouraged to grow. Does anyone have any other, less demeaning approaches that effectively teach someone the ropes of how to go about finding information for themselves?
Update
Well, there have been some very interesting answers here, so I thought I'd summarize what I see as the most popular approaches and give my take on them. This is in no way the end of this topic as there are many other suggestions that I feel play a part (though to a lesser extent than the ones I mention), I just wanted to summarize what I feel are the pertinent points given so far - if you disagree, I'd love to hear your take on things.
So far, the most popular appear to relate to:
- Time management
- Learning from mistakes
- Recruitment and management
Time Management
The essence of this is to restrict a student's access to their mentor so that the student must carefully select what questions to ask to get the most out of that time. I think that this can be a positive and a negative approach - positive because a good student will realise that they can learn and achieve most things on their own, and negative because a bad or inexperienced student might waste time on something that will not teach them much or instill confidence.
Learning From Mistakes
A lot of answers here took the approach that a mentor should give the student just enough information to get them to a point where they could work out the rest for themselves, right or wrong. For example, ask the student what they think they should do and then provide advice on that approach rather than give them a direct approach. Another example would be to point them to a resource where they might find more information.
I think this approach is by far the most effective in all but the most extreme situations and, when coupled with time management, could very well lead to a successful mentor/student relationship (within the bounds of the law, you understand).
Recruitment and Management
Of course, an important point raised is with a bad mentor or a bad student, no approach is really going to work, which is down to recruitment and management more than anything else. I mean, you don't want to recruit people who are bad at what they do and you don't want to assign tasks to those who don't have the aptitude to complete them, and let's face it, not everyone is good at teaching others even if they are extraordinarily good at everything else.