Be good to your mentors
commoncog.com
commoncog.com
I know that several times in my career, I've had a good mentor and I've grown hugely during those times.
I've found that you can mentor in different ways, some more effective than others:
Writing good, clear documentation depends on people reading it, which depends on them knowing it's there! Showing them during a group meeting rather than just mentioning the docs has a much better result.
Simply saying "my door is always open" doesn't get much in the way of engagement. You, as a mentor, have to put in some footwork attracting people and maintaining the contact. It's all too easy for a junior person to feel overwhelmed by sprints and deadlines, for them to push the mentor session out a week over and over. Or even remember to schedule a session.
It's also easy for the juniors to depend on the mentor-level folks taking care of the more complex things. It's faster, and during the everlasting crunch time, less burden on the junior. So to get the team benefit you have to spend the time going through the "pain" of having someone slower and less knowledgeable do The Thing.
(Maybe more as I wake up, I hope this is useful to someone and not complete bullshit!)
This.
Indexing is So. Damn. Important.
Documentation and knowledge discovery is crucial, and still very much a WIP.
I don't claim to have the answer. I write a lot of really relevant, heavy-duty documentation, with my projects.
That no one reads.
I know this, because they keep asking me questions that are in the docs.
I am their index.
My stuff isn't particularly popular, so it doesn't take much of my bandwidth (well, actually, one project is very popular, but that has been taken over by a fairly energetic and talented team).
When this happens, it’s tough to say what’s worse - a stale, and sometimes wrong document, or no document at all. So, in my career I’ve come to rely less and less on docs, and more and more on just reading the code. Docs can lie - code rarely does.
It does require a teensy bit of extra discipline and vigilance, on my part, but it is usually supported by many tools.
If I do it that way, it's automatically displayed in mouseovers in Xcode, and can be compiled into organized sites, by Jazzy.
I write about my methodology, here: https://littlegreenviper.com/miscellany/leaving-a-legacy/
From my experience, this isn't just the juniors. It feels "easier" (read: efficient short term, problematic long term) for the party doing the "teaching" and management wanting things to be done quick. This also makes it harder to raise mentors, since would-be mentors aren't acquiring the experience to become mentors.
This becomes even worse in places where bad practices and inefficient long term solutions reign. Best case, it keeps people from learning proper practices on their own thanks to all the friction. Worst case, it creates a cargo cult where bad practices are continuously hammered down and any attempt at breaking the cycle is met with even worse friction.
The pandemic has made me realize I have so much to learn here. "My door is open" somewhat worked when we were all on site, and I sat in a place that everyone passed. But, people will not reach out to seek help, they don't really want to understand, and they're comfortable with confusion, and will just carry on with their work. That sounds negative, but I think it's the reality for many, and I need to learn to work with that reality. More importantly, I need to make sure that reality doesn't make me bitter.
I've found that just reaching out and asking if they have any questions isn't enough. They'll say no, because they don't know what they don't know, and are comfortable with the confusion that they're aware of.
So, what's a good way to maintain contact? Reviews? How do you get people to want to review code, without policy?
When working on any kind of problem, task or question, embed yourself in a small group of peers with broadly similar concerns. And:
The second near-universal piece of advice is this:
Get mentors. Those two pieces of advice, unlike most advice, hold for a very broad variety of contexts. Do read the column, but here is some further detail:
Mentorship can be general or specialized. I have had classical-music mentors, art-market mentors, country-specific mentors when I lived in Germany and New Zealand, foreign-language mentors, chess mentors, economics mentors, philosophy mentors, writing mentors and friendly mentors to help with the basic emotional issues of life. I’ve tried to find mentors for just about everything. Sometimes the relationship lasts only a week or a month, other times for years.
Aside from providing teaching and advice, the mentor, like the small group, helps make an issue or idea more vivid: A living, breathing exemplar of success stands before you. The mentor makes a discipline feel more real and the prospect of success more realistic.
As a corollary, in addition to trying to find mentors, you should be willing to become a mentor yourself. Even if you do not have advanced understanding in some particular area, almost certainly there is someone who knows less than you do and who could use assistance. Being a mentor also helps you understand how to learn and appreciate your own mentors.
A mentor doesn’t have to be older than you, and in fact some of your mentors probably should be younger, especially since technologies are starting to change more rapidly. If you are 50 years old, the idea of an 18-year-old crypto mentor isn’t crazy. If the metaverse turns into a reality, don’t look to the graybeards for tutelage.
https://marginalrevolution.com/marginalrevolution/2021/12/tw...
Long ago, I decided to be my own mentor, by assiduously documenting how I do things, technical questions I've had and their answers, and use this knowledge base as my mentor.
I look to him for life advice and emotional support; not technical or career advice. He's not a career mentor; he's a wise friend, and what I treasure, is his kindness, wisdom and example.
He's quite wealthy, and is an experienced and successful businessman. I am constantly hearing stories from him about his business dealings, philosophies, accomplishments, and failures.
Most of it is stuff I listen to politely. They are good stories, and he needs someone that will listen to them.
Personally, I don't have use for most of this. I have no intentions of becoming a captain of industry. I like the guy, and I'm glad to be there for him.
But the thought has occurred to me, that there are people that would kill to hear the stories I hear.
I would be willing to bet that part of the reason he talks to you and not those people is precisely because you aren't trying to leverage his knowledge to build yourself.
It makes you a safe person to talk to.
These people exist, no need to be cynical about it.
I never said to somebody: “you are my mentor now”, but contributing to open-source projects I definitely had a couple of guys who helped me constantly over the years, of which I am genuinely grateful for.
Mentoring isn’t about telling the person what to do, it’s about leading them to realize the thing you’re teaching on their own. Telling doesn’t work, they haven’t experienced the pain! Things you take for granted, they think are stupid. Because they don’t know!
Incessant questioning is a fantastic way to learn. The only other way than painful experience.
And remember, you are sure of your knowledge. To them it sounds like alien speak. They can’t relate.
I'd take this a step further. Depending on how similar the career tracks are for the mentor and mentee, mentors often won't or can't know the right answer for the specific situation the mentee is in. As a mentor, your role isn't necessarily to have the answer either, it's just to help them figure it out for themselves one way or another.
I am a questioner, but my group seems to be filled with people who aren't. How do you mentor those that seem to enjoy the pain route? I have trouble assuming that they'll ask questions when they need help.
I think my group is unique where most are highly educated, but from a non-software field, now doing software probably 50% of their time. From what I've noticed, the higher the degree in this non-software field, the fewer questions they ask, and the more comfortable they are with their confusion, even making up strange illogical explanations rather than attempting any real understanding. This group has cemented the idea that knowledge and problem solving ability are completely orthogonal.
1. You fix by making this a hiring signal. I like to dig into candidates until they say “I don’t know”. Great signal
2. If a task is in progress for more than 1 day, you get help from the team. No buts
I believe that a mentor relationship should be a two way street as I find that I learn best by teaching others but most people just want to have their ego stroked and feel attacked if you bring your own experience. The fact that I was able to solve most of my problems myself drove them mad.
So I had to learn bite my tongue and never argue or let them feel that I might know anything they don't.
I find that relationships break down too quickly if they are only one directional. And I wasn’t born fully formed with a big book of answers I could refer to whenever I needed.
It’s also a good form of training. It’s hard to be mentored and it’s hard to be a mentor. If I make the relationships two sided, we both get to practice both sides…
First cut: The kid must have decent emotional maturity, appreciate your advice, and really benefit from it. Definitely don't let yourself be tagged "mentor" until those are clearly established. You ain't signing up to be the long-suffering parent of some teenage rebel.
(That said, my experience with younger folk has not been nearly so bad as Dave3of5's.)
This one guy specifically, who keeps reaching out to me, once kept me on a call for almost an hour basically asking me whether or not he should re-neg on an offer he signed ONE WEEK BEFORE THE JOB STARTED because he'd kept applying and got an offer somewhere else that paid more. I basically said "I mean if that's what you really want, you should do it, but be aware that the tech world is small and it's not going to look good" and he just kept trying to rationalize it because he'd clearly already made up his mind.
Another time, he sent me an email that started with "I just wanted to thank you for your help last time" but then immediately would delve into some other totally asinine quandary he'd gotten into because he had no integrity and/or trust in other people.
These people are impossible to help...
An assigned mentor isn’t one. They’re either a boss, a peer, or an onboarding helper.
Mentorship is deeper, lasts longer than just being at one job, and isn’t something that everyone is going to get. In my experience they’re very rare, and rarely is the word mentor used in relation to it, expect in hindsight.
Then, if it sticks, it sticks. If it doesn't stick, it at least provides some context for both the mentor and mentee if that relationship or the idea of mentorship wasn't executed well.
Agreed that many times, it is an onboarding helper and someone who just acts as a friend you can ping in the early months of starting.
It's basically Calendly with a more personal profile which makes you easy to find via search engines and easy for someone to find a time, book you, and pay you.
EDIT: if you offer career mentorship, or chess coaching and wanna join, you're very welcome to!
A little constructive input: Seeing more of the people who you can potentially book calls with might make people more willing to sign up. I'm interested, but with only 3 examples it leaves me in the "Ehh I'll save this and think about later" zone. Good work though.
There are 6 bookable people so far (28 users total, but most sign up just to make bookings). Now all 6 bookable users are visible on the landing page without having to scroll.
Thanks again for the honest and actionable feedback!
You're welcome to join our slack community too in case you have more ideas:
When you see that, hold onto it as long as you can because it can go away in an instant.
If you are on the other side and now doing the mentoring, you need to make it your highest priority. Pay it forward to others.
This is a beautifully put sentiment on appreciating those who didn't have to help, but chose to anyway. It all starts with you simply asking somebody. I asked people out of my league to mentor me and they took it on because I was the first to ask them. Being open to invite others to do the same to you is equally important. There's always something to learn from each person in the world.
Given that, in my experience I've always learned a lot when I've asked my mentors to talk about a challenge they're currently facing and have them ramble on about it while I ask clarifying questions.
Sometimes it pays off but I've had young know-it-alls fighting on every step in the process of fixing their shit. Ego is what makes or brakes a man/woman
1. Questions where the asker has thought deeply about the problem and has some specific technical hurdle that isn't necessarily straightforward and requires an expert judgement call.
2. Questions that show the asker has absolutely no understanding of the problem at hand, where I will have to spend 15 minutes just getting to the root of the issue and explaining why their reasoning was fundamentally flawed. Then we can start addressing the actual issue.
I'll spend all day long happily helping people with the first type of question. But I really have zero patience whatsoever for the second type.
I came here to say how much I liked this article. I don’t have any real nuggets to add. In the last 10 years, we’ve had 8 young summer interns go through our group. It’s been quite a variety. I’ve helped place two of them in later jobs I became aware of. I have regular contact with them. I enjoy our friendships. One of them does intermittent contract work for us. I liked passing on some of the passion for programming I’ve enjoyed, even if there’s been some raised eyebrows.
Many of my similar age cohorts at work have commented that I really seem to enjoy teaching and think I would enjoy that a lot.
A couple years ago we hired a slightly experienced (few years out of school, one job under the belt) person to work with us. It did not go well. Me being the overly sentimental “let me overthink this” type, it’s been really debilitating for me. Our final year of attempting to make something work, was particularly painful and hurtful. As an opportunity opened up for this person to do something else in the company opened up, they shared that my office mate (who does more hardware) and I were possibly the worst mentors. That the company (with a high median age) was as a whole terrible at onboarding people. This has really hurt.
Until now. Because your comment just clicked for me. For four years, what was driving me nuts was that this person demanding a tutor. And not being a very good student either.
Seriously, this comment has made my day. Thank you.
Mentoring is turning to the right direction, but you need to walk your path yourself to really learn something.
Just answering the questions is something like consulting which is fine but not really counts as mentoring in my book.
This can be done so many ways. I had "mentor" who used to point out a line in the log or a file and just say "This shoud give you a hint." No, it did not. I know it's there, I need you to tell me why it's significant so that I can go from there. Just playing "guess what I'm thinking" wastes time for both of us. If I'm too dumb for you then come down to my level or ask someone else to mentor me. Just being wise mysterious office Yoda just isn't helpful.
Sure from a pedagogical POV you don't want them stuck forever trying to make a leap they can't yet make, but being hand fed answers doesn't really work at making the underlying heuristics and cognitive habits (and sometimes info) stick.
Choose a project that looks interesting to you (ideally with a large community and modern tech stack) and join their Slack/Discord/Mailing List. You'll need to be patient and humble and it's going to take a while until you feel really comfortable, but read a lot, ask questions and try to contribute small bits here and there.
This will put you in touch with many interesting and experienced people, plus it's usually a great learning experience.
Here are some ways:
1. Join local Meetups: There's no substitute for offline communication.
2. Join Online community on Slack/Discord/IRC etc: Pick your favorite tool(programming language, framework, libraries etc) and get involved on Github, StackOverflow.
Also, you need to balance the relationship. How do you add value to their life is something to ponder about.
I am struggling with getting my first job in sales but I am not sure what should I seek. A mentor or an employer. I assume for a mentor I have to work for free or take a reasonable payout because he would spend reasonable time in helping me grow. But how do I figure out what is this 'reasonableness' when money is involved?
A true mentor is someone who teaches you how to think. A mentor will want to help you succeed because he appreciates you.
Personally I avoid selfish people who gossip like the plague. For moral standup trustworthy people I go out of my to help them succeed even if that involves me poo pooing their work so I can show them a better way. For those Macchiavellian types, they usually piss so many people off. All I have to do is snack on popcorn while watching the drama they unleash. They are usually gone before I can remember their name.
Sadly I am unable to properly thank my mentors of 25+ years ago but perhaps I can still send a nice note to those who more recently are "someone who answers questions more than once.”