Get A Mentor, Be A Mentor

23Dec08

A few weeks back I was at an ArcReady event given by Phil Wheat which focused mainly on soft skills for developers.  I like technology a lot, and I love my profession as a software developer, but being a code ninja without interacting with humans is pretty rare these days. 

Phil’s presentation was filled with useful advice, but the one topic that stuck out for me the most was mentoring.  I believe that all developers could benefit from having mentors, but you just don’t see much of it in the wild.  (Well, your experiences may vary, but I personally haven’t seen much of it.)

I’ve been thinking a lot about mentoring, and synthesizing some of Phil’s comments with my own requirements and goals.  I see mentoring as a two-way street: if you are serious about having someone to learn from, then you should reciprocate whenever you get a chance.  So, get a mentor, but also be willing to be a mentor.  So here’s my rough list of what I think that should entail:

  • Get a mentor. 
    • Pick someone that you respect and open up a dialog.  This doesn’t have to be some sort of awkward, platonic variant on a promise ring exchange or anything like that.  Just ask questions, gain knowledge, that’s about it.
    • Look for someone who challenges you and shows you respect.  There are a lot of people out there who are brilliant but just don’t make good mentors because they lack “people skills”, or have larger than life egos.  Do not expect those people to make very good mentors.  A mentor should test your limits and challenge what you think you know, but not in a overly negative or discouraging way.  Put another way, they are not drill sergeants.
    • It should not be someone on your team or anyone you work directly with.  This came from Phil’s presentation, and actually caught me by surprise.  But the more I think about it, the more sense it makes.  You need to have uncompromised communication with your mentor, and that’s just not always possible with someone on your team, or your manager, etc.
  • Be a mentor.
    • Be open to the idea of helping those around you.  If you’re an alpha geek, this shouldn’t be hard since you should be used to answering a lot of questions already.  (And, btw, what are you doing reading this blog? 😉 )  If you’re not, or don’t consider yourself one, just teach what you know.  If you’ve been doing any serious development for the past few years, you do have knowledge that can help someone else.
    • Advocate the learning process, not just the skill.  Given enough time, anyone can learn anything (notice I didn’t say “…master anything”).  Maybe you’re a code ninja now, but at some point you weren’t; developers looking for a mentor want guidance and want to learn from your experience, not to hear how you did some wicked refactoring over the weekend.
    • Be patient with anyone who is actively trying to learn.  I hate to harp on this one point, but I feel it’s worth repeating: I’ve seen scary-smart developers who were also just the worst people in the world to learn from.  And that’s okay, not everyone needs to be a teacher.  But if you really want to educate those around you and you’re finding that you’re impatient, please find a way to work on that.  Your knowledge is important, and you can make a difference to another developer.

That’s all that I can put down now; I’m hoping to refine this list a bit better over time.  Maybe when I get a chance to actually mentor someone myself.

Technorati Tags:
Advertisements


%d bloggers like this: