This post is part of a blog series called Leveling Up: A Guide for Programmers. The series covers skills you can use to learn faster, more easily, and more strategically as a programmer.
This is the third in a three part miniseries about asking for help:
In the last post, we talked about some ways to reach out when you have one or two specific questions. Now we’ll talk about finding mentors for longer-term support.
Mentors vs. Sponsors
Let’s quickly address what mentorship is not—namely, the difference between mentors and sponsors.
- Mentorship describes offering advice and support directly to someone (a mentee) to advance their career.
- Sponsorship describes advocating on behalf of someone (a protegé) to other people to secure promotions, raises, and other opportunities for the protegé.
Word on the street is that sponsors correlate with career success, whereas mentors do not. I address this in a different post, so feel free to take a look at that if you’re skeptical.
In the meantime, please bear with me and assume we’re looking for mentors.
I have noticed similarities in the best mentors for me.
1. Extensive experience in the specific skill set I want to learn.
I’m not looking for an amount of experience. I am looking for a type of experience: success with the challenges I am facing, usually in the context of an applied (client-facing or community-facing) role or project.
A necessary but insufficient condition for this is often a sheer amount of experience.
A. I have chiefly sought mentorship on programming and machine learning. These are narrowly applicable skills. If I have a bug in my iOS view segues, one has to have a pretty specific prior experience to help me with that. By contrast, people skills are broadly applicable. If my relationship with my manager sucks, lots of people with different experiences can help me with that. So a sheer number of years of experience correlates less for broadly applicable skills than narrowly applicable ones.
B. Number of years is not a great proxy for a person’s skill at something. I’ve met folks with 20 years and very little practical skill. I’ve met folks with 2 years who came up with great solutions. That said, the mentors who have helped me accelerate my progress the most had one of two things:
1. at least a decade in the field.
2. several years in programming plus several years as teachers.
That brings me to the next characteristic.
2. Advanced communication skills
My most effective mentors have devoted time and energy to leveling up as communicators and partners.
This is, in part, because the kind of person who wants to mentor others is also the kind of person who wants to establish and maintain healthy relationships.
I don’t keep mentors who make me feel incapable, who gaslight me and then tell me to “be more assertive,” or who make things up when they don’t know the answer and hope it’s close enough that I won’t notice (guess what, I notice). I keep mentors who help me realize the capabilities that I didn’t know I had, or who point me to resources that work really well for me, or who admit when they don’t know things so i can go figure them out.
They don’t even have to help me figure them out: this gives me a chance to contribute to our knowledge-building relationship, and it also shows me that someone could be successful in this area without having all the answers top of mind.
I’ll try to provide a project with a specific scope, and I’ll ask for feedback on it, or I’ll ask for us to sit together and go over it. If the person doesn’t respond, or if the person has no feedback, or if they don’t have time to sit down, no problem! Sometimes folks are busy and have other things going on. But rather than continue to hound this person, I’m going to look for a different mentor who might have the bandwidth and the interest to work with me.
A related caveat:
I know that the first mentor criterion says “extensive experience.” This doesn’t mean I need to be mentored by the foremost recognized expert in the field. Why not?
- I’m often way behind that person, and someone with less clout and more free time would give me the same answers that the foremost recognized expert would on my relatively basic questions.
- Foremost recognized experts often get disqualified on the second mentor criterion, for reasons I delineated in this, uh, more direct piece.
- Where there is one foremost recognized expert with a huge ego and no time, there are often seven or eight (or twenty) people (usually women or nonwhite people) who are just as knowledgable and way kinder than that person, and just for whatever reason (bias) never got the fame.
Helping potential mentors say “yes”
As people rise in experience and influence, they tend to have less and less time. So it can be hard for those folks to commit to an indefinite mentorship or sponsorship arrangement, even if they want to.
For this reason, I recommend approaching potential mentors with a scope of engagement in mind. In fact, we have already encountered a situation where we approached people with a fixed scope of engagement—in the last post, where we talked about how to ask folks to answer a question or a series of questions.
For a mentorship arrangement, the scope might be an entire project rather than an individual question. So you can approach a potential mentor, explain what work you have done so far on a project, and ask for their feedback on your work. You can also ask if they would be open to an ongoing feedback arrangement as you continue to work on the project, maybe in an hour-long session each week at a time that’s convenient for them.
By offering a scope for the mentorship, you make it easier for folks with limited time to say “yes.” They know exactly how much will be expected of them, which makes it easier to agree without over-committing.
Once you have a working relationship with this person and have established some trust, you’ll have more opportunity to ask questions outside the scope of your project, like general career advice.
Working with mentors
My most successful experiences as a mentor or mentee begin with specific, project-focused scope as discussed above.
When I am the mentee, these relationships help me level up at absurd speed because:
- I get to skip all the mistakes my mentor has already made and get hard-won advice on how they approach problems
- I get a wizened eye to fast-forward me through bugs that could hamstring me for hours or days and frustrate me out of working on my project
When I am a mentor, this type of arrangement also helps me level up at absurd speed because:
- I get to skip tasks that I might find “familiar” or “boring” because the mentee is able to do those without me. Instead of me spending hours on that kind of thing, the mentee does it, and then they come to me with more complex ideas or intractable bugs.
- In order to help bring a complex idea to life, I need articulate and customize fundamental concepts. So my understanding must be ironclad. Mentees motivate me to get to that level.
- I always learn the most about a language or framework while pursuing bugs. When mentees bring me bugs, they force me to stay in the investigative high-gear for more of my time than I would stay there if I were bopping along on a project alone.
How do I know when to broaden this relationship to more general advice, or advice outside our original agreement? I can do that when we have established trust. Do we communicate more like two friends than like teacher and student? Does the mentor sometimes offer me advice outside the scope of this individual project?
For general advice (beyond the scope of a project), I’ll look for the guidance of more than one person. I’ll ask 3, 4, or 8 people who I admire about what they would do. This is how I approach questions like “what should I write about?” and “where should I look for a new job?”
Moving to new mentors and moving on from mentors
Mentorship relationships are not lifetime, monogamous relationships.
You can have more than one mentor and/or sponsor at once, and those relationships can have active and passive phases.
Your early-career mentors may pair/meet with you less as you gain experience, choose a specialty, and find other people who are well-positioned to help you with the new skills you’re learning. Then, five years later, maybe another opportunity opens up for that first mentor to be a good fit for you again.
You maintain healthy, positive relationships with all the people who have helped you: you can remain friends or colleagues, or sometimes the direction of mentorship can even switch. But you don’t have to work with everyone all the time (and indeed, most mentors would get very exhausted if you tried to do this).
While the distinction between mentors and sponsors is worth considering, for now we’re going to focus on getting mentors.
I have had the most success working with mentors who have extensive experience in the skill set I want to learn, advanced communication skills, and availability to work with me.
I’ll approach them with a specific scope of engagement in mind—usually a project, or a fixed amount of work together for a fixed period of time. As we establish trust, I can ask questions outside that scope as well.
I find that this approach helps me level-up faster than I otherwise would, whether I’m a mentor or a mentee.
I also keep in mind that mentorship can have a life cycle. Not every mentor is the best fit for every mentee situation, and that’s OK.
In the next post, we’ll talk about the difference between mentors and sponsors and whether that affects approaching others for help.
If you liked this post, you might also like:
The rest of the Leveling Up Series —the jury is still out on whether I’ll this series will ever end
This post on pairing remotely —for mentoring, or being mentored, across time and space
This post on git commit messages—because leaving communicative artifacts in the world is an important way to mentor those who come after you, without you even knowing it!