Not going to lie, I went into reading this was very low expectations and was pleasantly surprised. It's worth noting that mentorship in the corporate world doesn't need to depend on level, it can be a skill gap someone wants to fill.
One thing that I think I may deviate with on this article is that mentoring shouldn't be started after coding; you should really be mentoring all along the way in your career. If the first time that you mentor is when you hold the title "Senior" then you're bound to screw up in some major ways and those screw ups will be amplified because of your perceived power and position. If you're a senior and haven't mentored up until this point I'd spend a good while mentoring people of your own level before you take on juniors.
Another piece of unsolicited advice is to drop any kind of perceptively fake facades; people will very much pick up on if you're git clone --depth=1 around them. Use that time to really invest in and get to know someone, and as the article points out, let them get to know you.
My last piece of advice is be there with them through their trials, especially in the lows. I once had a Marine that was going to get the equivalent of a PIP for behavior and none of the other NCOs wanted to go to our equivalent of HR with him because they knew they'd be dressed down by a man whose very existence was validated by dressing seniors down for their reports behavior. Of course, if a senior wasn't present he'd happily give that tongue-lashing to the junior. Without missing a beat I said I'd go. The worst place you can leave someone on their dark days is alone.
I wholeheartedly agree with the advice of getting to know each other deeply and sticking with them through tough times. The most rewarding moments of my career came from mentoring relationships where that played out well (and there is no guarantee that it will with every mentee). Some of those relationships have literally been life changing for me. We all go through painful experiences, but passing on the learning that comes from those experiences gives the experiences deeper meaning, at least for me. I went from feeling pain when thinking about some of those experiences to feeling like they were great investments in my mentees. I only wish I'd done more mentoring earlier.
I retired last year. I've been lucky to have the opportunity to continue mentoring a few of the people I was closest to in the last few years of my career. Those chats are still the highlights of my week. What those relationships look like is deep two-way trust. I trust that they are going to be vulnerable enough to be honest about what they find challenging, that they'll listen to my advice, and they'll think critically about what parts of that advice make sense for them. They trust that I'm going to continue believing in them even when they stumble, that I'm going to be both honest and kind about assessing their successes / failures, and that I'm excited to learn along with them. When that level of trust is reached, the learning for both of us takes off. And it fills me with joy.
"... your code is technically correct. But let’s consider its performance."
Drop the "but" and you'll engage even more with your mentee.
It's like saying that considering performance is a natural thing to do after writing a correct code, instead of the opposition that the word 'but' introduces.
I'm in the middle of trying to organize work for a new software product where there were varying levels of things done, not done, performance optimized, UX refined or not, etc. This is literally the framework I've used when trying to prioritize work and set some milestones to track progress. Make it work, make it work well, and then make it work fast.
Pretty decent overview and lots of solid advice, on this point:
> So why should you, as a seasoned software developer, become a mentor?
Early in my career I got some very good advice and mentorship from a number of people that I respect who didn't have to do it but did so anyway. I pay that forward wherever I can and I only ask that others do the same.
We're better as an industry if we support and lift up our fellow developers across the board. There's a number of things that I've seen people struggle with over the years(imposter syndrome, first time breaking prod, difficult organizational issues, etc) and being able to give them the tools to better approach those things is really rewarding. If you approach it authentically with care and a positive intent you can have a real impact that lasts across someone's career and technical journey.
First time I broke prod at a FAANG (sorry y'all) a guy from another team said some nice words to reassure me. Was much appreciated because I felt mighty guilty.
Just choose very wisely who you invest your mentoring effort into. Nothing hurts more than putting years of energy into helping someone who simply never gets it and stays a beginner. Being highly selective with that does a service both to yourself and to those who actually deserve it.
I love mentoring engineers. It’s been my job for the past 5 years.
But after some introspection, I’ve realized that I love teaching _smart_ people, or at least, people that are engaged and want to learn.
I can’t imagine being a traditional teacher, and having to teach kids that don’t care.
As a side note, some of the sharpest engineers I’ve mentored are interns. Maybe my company is exceptionally good at hiring interns. I swear, it’s been like that for the last 5-6 interns I’ve worked with.
When you’re in intern the meat grinder hasn’t ate you up, yet. Everything is new and exciting. The longer I’ve been in my career the less motivation and the more discipline gets me through learning new technologies.
“I can’t imagine being a traditional teacher, and having to teach kids that don’t care.”
What I’ve seen is igniting that spark and moving folks from not caring to caring (or realizing they can affect change) can be even more rewarding than the other mentoring being discussed
Never seen that in my experience. My concern is mentoring people who end up abusing their earned skills/position for unethical things, which I've seen many times.
Over the years I've seen a handful of curious characters on Usenet and mailing lists who stick around for 15, 20 years or more and are still asking the same beginner questions, with scant evidence of having learned anything. Could be anterograde amnesia.
Personally I think it's more about whether or not the mentee is making an honest effort to learn that dictates whether or not they're worth one's time. If a student is not 'getting it' then that's an invitation for the teacher to examine their teaching style and try to find different ways to pass on the knowledge; it's not a sign that they're not worth teaching.
Maybe the title of the blog post was changed after its link was posted here? HN generally frowns upo submission titles that differ from the actual page title, and currently the page's title is "Being a good mentor – a developers guide".
There's nothing really in this article about mentorship being part of a career "exit strategy". So yes, the submission title is an odd choice, even aside from its nonsensical implication that one has to "age out" of coding.
Ive been struggling to find mentorship for my children , as a nonengineer with a c++ background, wanting to get my kids into STEM.
I do what i can (taking them to see FRC, enroll in clubs, etc) but short of leveling up and going from Scratch App, to giving them carte blanche on minecraft mod scripts (we dont even allow computer games at home yet), I dont know what to do .
My friends are too busy with life and early children. Id love to find retirees or students with time , skills and experience, but I dont know where to start. Any advice?
Big tech and higher education work together to get students into the workforce. The road is well paved and well traveled. You should get your kids onto that road and it will carry them to a tech career.
Robotics, coding club, etc it's good. It's mentally stimulating and they will make friends. OTOH I went to college with people coming from poverty who didn't even have computers in the home let alone stem extracurriculars. The pipeline is just that powerful.
This is fine, but this leads to 1 career path (Software Engineering)
What about electrical engineering ? Robotics ? Applied Engineering ? And does your premise hold for not-Caltech-not-CMU-not-MIT schools ?
I'm also wary of leading them to spend 2x of the equivalent of a down payment of a house, and go into debt, to then find out its not something they really love...
Get them 2 books: Basic Machines and How They Work, and Basic Electricity, both written by the Navy. Have those be their bibles. Then a steady dose of Kahn Academy.
Eh, I've mentored noobs. It's fun. We talk about python, tmux, and vim. I've learned about vs code and I pass that along to other mentees. My coworkers think I'm an encyclopedia of keyboard shortcuts!
Before I started doing side projects, mentorship was the only way I could really find meaning with my engineering skills.
This does a good breakdown on how to grow based on your mentees growth. One thing I would add is that the relationships can naturally fizzle out faster than co worker or other professional relationships. I'm not sure why but I've got quite a bit of anectodal experience that supports this.
well, i might be repeating meself.. Been mentoring few ppl.. last 15+ years..
it's not easy to find mentees. Not pupils, students, or just listeners.
proper ones. Those who will devote some of their time/selves into the mentoring. Be it everyday or once in a while. Those actively interested in being mentored (not taught, lectured, tick-that-course'd, etc)..
And when there is someone like that, noone pays for that. So it gets even more difficult.
Somehow this mentoring thing has always been taken for given, granted, an "expectation" of being experienced/older/.., and that it happens automagicaly. Well no, does not. Needs very conscious and persistent attention from both sides. Hence Active support - if it's not purely personal.
What are the tech framework did you use to make this site, the text looks quite good, Could you please help share, I was curious to build something like that, but normal html css did not allow me to organize things. I am still in schools now.
Because it makes you sound important. If you have a mentor you are important enough for special teaching. If you are a mentor you have some special guarded tao of your field a mere mortal cannot understand.
Same reason every Cxx on the planet says they "talked to their mentor" about whatever. We used to say "a friend" or "a colleague" but like all things in SV it gets turned into word salad. Another word that drives me up the wall is "learnings". It makes me feel like I'm taking crazy pills every time someone says "we took back some learnings".
One thing that I think I may deviate with on this article is that mentoring shouldn't be started after coding; you should really be mentoring all along the way in your career. If the first time that you mentor is when you hold the title "Senior" then you're bound to screw up in some major ways and those screw ups will be amplified because of your perceived power and position. If you're a senior and haven't mentored up until this point I'd spend a good while mentoring people of your own level before you take on juniors.
Another piece of unsolicited advice is to drop any kind of perceptively fake facades; people will very much pick up on if you're git clone --depth=1 around them. Use that time to really invest in and get to know someone, and as the article points out, let them get to know you.
My last piece of advice is be there with them through their trials, especially in the lows. I once had a Marine that was going to get the equivalent of a PIP for behavior and none of the other NCOs wanted to go to our equivalent of HR with him because they knew they'd be dressed down by a man whose very existence was validated by dressing seniors down for their reports behavior. Of course, if a senior wasn't present he'd happily give that tongue-lashing to the junior. Without missing a beat I said I'd go. The worst place you can leave someone on their dark days is alone.