Published: January 31, 2022 • 3 min read
“How do I find a programming mentor?”
Let’s refine the question. What kind of advice do you need?
If it’s growing your skills and advancing your career, let’s call these people professional programming mentors.
I am lucky to have a group of these mentors. I call on them often to talk through tough problems, and get quick, asynchronous feedback. It’s part of why I’ve gotten to where I have, and I think I’m better at my job because I get frequent outside advice.
I’d wish this same situation for everyone. In this post, I’ll try to explain how I got here. I think it comes down to three things: finding smart people, being mentorable, and recognizing the reciprocal nature of mentorship.
First, you have to get outside of your comfort zone and find great programmers to learn from.
In Consultancy Cycles I talked about how great programmers can often be found at a consultancy. You can also find them on a good product team, or through Meetups and professional organizations.
Seek out people who are executing at a level you can’t imagine reaching. You’ll know them when you see them. If you can’t see one, get outside your bubble.
A hallmark of these people is that they’re usually fast at editing files. This little skill demonstrates that they’ve put in time and are committed to improvement. They’ll often know patterns and anti-patterns for most problems and be able to communicate and persuade. They’ll have one or two deep-T skills like security expertise, database wizardy, or strong design chops. You might find them hacking on languages thought of as ‘second languages’ like Clojure or Rust.
At Hashrocket I was surrounded by people like this. When you find one, pay attention. They are potential mentors.
Second, be mentorable. Be somebody that a senior developer thinks is worth spending time with. Show promise.
Borrowing from Hashrocket’s hiring criteria, mentorable people:
You want an attitude that tells people you’re going to show up, do work, and get better. Be mentorable.
Third, give back. I’ve been a mentor in a formal mentorship program for about four years. I get something out of mentoring, and a mentorable person recognizes this and gives back.
I mentor to support my community. But I also like talking to smart junior developers, learning what they’re learning, feeling their excitement, and building my network. A strong mentee offers these things.
As the relationship develops, it becomes more reciprocal. My mentors were once much more experienced than me and I leaned on them. Now, we’re closer in ability, and for every question they answer, I answer one back.
Pick a channel that supports this. I chat with my mentors via asynchronous tools like Slack. Asynchronous has the advantage of avoiding the “SOS! I’m stuck and I need help now!” strain of communication. We talk regularly on video calls; When either of us is stuck, we’ll remote pair. We trade time often enough that nobody owes anyone anything.
It’s a give and take; be sure to give, too.
So, how did I get started? I worked with these people. I’d recommend starting there if you can. I was lucky that it happened organically.
But these relationships really began after our coworker relationships ended. You have to keep them alive. I try to give ‘updates without asks’— I connect with my mentors frequently, such a lot of my messages are sharing news, not just asking for help.
I hope my story feels attainable. Mentorship isn’t easy; I think it’s one of the unsolved challenges of knowledge work. I spent a couple years feeling alone in this field. It took hard work and luck to develop these relationships. So do the work, and be lucky, by seeking out smart people, being mentorable, and making it reciprocal. I hope you succeed.
✉️ Get better at programming by learning with me. Subscribe to Jake Worth's Newsletter for bi-weekly ideas, creations, and curated resources from across the world of programming. Join me today!
Blog of Jake Worth, software engineer in Maine.