10 ms·
How to mentor software engineers
- mrkentutbabi 5y agoNot only soft skills, hard skills at the high level also hard to come by.
- ford 5y ago> Like a lot of soft skills, we’re rarely taught how to mentor ^ This is one of the first lines in the article. If I had to guess I'd say most people here spend a relatively small amount of time learning about how to do their job vs actually doing it. For me this is a good reminder that actively/intentionally investing a couple hours per week in learning about how to do things - technical or not - and evaluating myself will probably have a higher ROI than spending those hours doing the thing This reminds me of some of the ideas discussed in this post [0] from a few days ago. [0] https://news.ycombinator.com/item?id=29692029 https://news.ycombinator.com/item?id=29692029
- Swizec 5y ago“if you give me 5 hours to cut down a tree, I will spend the first 4 sharpening my axe” It’s a great motto and easily taken too far. Often the best way to learn is to get started. Tacit knowledge is best learned by doing.
- sokoloff 5y agoIndeed. I've known many people that, if given 1000 hours to cut down a tree would spend 4 hours sharpening the axe, 500 hours watching YouTube tutorials on cutting down trees, 300 hours on axe reviews, and 195 hours arguing online about how to do it. I've sometimes been that person.
- LanceH 5y agoI can't get it done without numerous trips to Home Depot. At least one of those trips will be immediately after another, to buy what I was supposed to buy on the first trip, but where the first trip ended with me picking up a lot of other things.
- mysticllama 5y agoi really enjoy this motto, personally; especially since i have taken up the hobby of handtool woodworking for the last few years. i decided that i would invest time in learning to sharpen and maintain tools before i did much work with wood and for me that has paid huge dividends. working with keen tools vs. dull ones is night and day. but i was working on my own time : ) all that said, i completely agree with you that this is not a good motto for a novice at work -- if you are capable at handling an axe, having it razor sharp is going to markedly improve your results, but if it's your first go at swinging an axe, i really hope you don't spend 80% of your time fiddling with a sharpening stone…
- marcosdumay 5y agoThat's where the metaphor breaks down (while the intended idea stands perfectly fine), the reason you don't want to waste time making your axe perfectly sharp is that you must learn how to use it first, not because you should just forget about it and go chopping trees. It has some parallels to most skills, as most times you will only discover your deficiencies by doing it. But it doesn't mean you shouldn't train, it only means that training without ever practicing won't lead you anywhere.
- drjasonharrison 5y agoWell, taking a regular break to sharpen your axe, every half hour or after every tree, then you only spend a minute to save five minutes.[1] This is like running tests, or asking questions about what you have done recently to maintain focus on the bigger picture. Or to prevent a commit from getting too big. Or refactoring. And sharpening a dull axe can take an hour to half a day. [2] 1. http://rockymountainbushcraft.blogspot.com/2012/08/how-sharp-should-axe-be.html http://rockymountainbushcraft.blogspot.com/2012/08/how-sharp... 2. https://www.fhwa.dot.gov/environment/recreational_trails/publications/fs_publications/99232823/page15.cfm#sharp https://www.fhwa.dot.gov/environment/recreational_trails/pub...
- kilobaud 5y agoSorry for the off-topic comment here but I cant help but tell you that your username reminds me of a user who posted on a couple gaming forums I used to frequent in the early 2000s.
- AnimalMuppet 5y agoRemember who said it - Abraham Lincoln. He already knew how to use an axe.
- krallja 5y agoAn anonymous, possibly apocryphal, woodcutter. https://quoteinvestigator.com/2014/03/29/sharp-axe/ https://quoteinvestigator.com/2014/03/29/sharp-axe/
- AnimalMuppet 5y agoI stand corrected.
- bcrosby95 5y agoWhy spend 5 hours cutting down a tree with an axe when I can spend weeks buying and learning to use a feller buncher incase I need to cutdown lots of trees in the future.
- michael_j_ward 5y agoThis desire might be higher for me because I've been working independently for a few years, but I would pay gladly pay many dollars in dues to a community built around technical skills development where members are expected to both learn and mentor.
- intrepidhero 5y agoexercism.org (formerly .io) is a community encouraged to both learn and mentor. I'm not affiliated, just a user who has drifted into and out of the community in both roles over the years.
- hinkley 5y agoThere should be another article on how to find a mentor. Half the time I’m aping things that were done for me ten+ years prior, from a mix of agreement, lack of better ideas, or finally figuring out what they were trying to tell me/didn’t tell me. If you haven’t seen it, how do you do it?
- throwaway81523 5y agoSpend as much time as you can working around really good programmers. You'll unconsciously pick up their patterns of thinking and coding. It's almost like a telepathic transfer that takes place even if they aren't actively teaching or mentoring you.
- kirso 5y agoPerhaps the biggest skill that you need is to never stop learning and learning how to learn efficiently. Thats probably the best meta out there.
- aarongray 5y ago> In mentoring relationships, usually the mentee sets the agenda. In a coaching relationship, usually the coach sets the agenda... Code review is a pervasive example of coaching being confused with mentoring.
- JoeAltmaier 5y agoWhich is it? I'm confused. Is code review coaching or mentoring? Re-reading: code review is coaching I think. Because you're asking for directed feedback, not general life advice.
- derwiki 5y agoNeither? > Code review is part of the job
- jrodthree24 5y agoAs a senior engineer mentoring is often part of the job
- lbriner 5y agoIt could be coaching or just business as usual. If the developer is young/new and you are reviewing their code expecting various mistakes that you can then "coach" them about, it could be part of coaching. However at other times, code review is just what you do as a second pair of eyes, you are not expecting to give coaching as a result of something you might spot, just feedback. I wouldn't worry too much about specifying things too specifically though!
- munchbunny 5y agoIt’s coaching. The way I think about it is that it’s coaching if you are making decisions for them about the path they should take. It works here because writing code is a fairly general skillset. With mentoring, the crux of the problem is that you’re trying to help them navigate their specific situation. And in my experience both as a mentor and a mentee, “where are they trying to go and what do they really want?” is actually the hardest part, and it’s not something you can consistently answer because it’s their experience and you’ll never fully understand the nuances of it. You can’t lay out the path for them, you can only (try to) help them see further down the path they’re already on.
- georgeoliver 5y ago> Some people read histories, stories, case studies, and so on to learn from the experiences of others. Other’s don’t. An interesting observation, and while you could say it's less efficient if you're the latter type it seems there are other benefits.
- deleted 5y ago[deleted]
- gls2ro 5y agoI disagree with the definition of the mentoring and coaching from the article. Maybe the author definition is from sports, but outside it here is how I see (and how many of people that I encountered so far see) the difference between coach and mentor: In a coaching relationship the coache sets the agenda not the coach. The coach is more backseat than a mentor. The coach is there to walk along the coachee on the coachee path while providing guidance when asked, usually in the form of guiding questions or helping navigate various points of views or helping go through decision frameworks. In a mentor relationship the mentor sets the agenda together with the mentee. A mentor has a more active role in the agenda providing active guidance and feedforward. The mentor and the mentee walk together on a path they both agreed on. As an example: If I would go to a coach and say ask about should I learn Elixir or not taking into consideration my Ruby background, then the coach will not answer yes or not. But should help me discover for myself the answer. It will usually help me look at this question from various points of view or can provide a decision framework, but the answers (or the content of my answers) will always be mine or my own discovery. So they will not state "Elixir is like Ruby" or "Elixir is not like Ruby" but they might ask "How can you assess if Elixir is like Ruby?" or "What is the smallest project that you can create to see if you like Elixir". If I would go to a mentor and ask about should I learn Elixir I expect them to tell me pro and cons of Elixir and also have an opinion about if Elixir is really similar with Ruby or not and even express their preference for this programming language or the other. So I choose to go to a mentor or coach depending on what outcome I want to have and what experience they have. PS: Please take the Elixir and Ruby just as an example of a technical matter to be discussed with a coach or mentor.
- xdg 5y agoThe terms are used so interchangeably by people that I'm not surprised you might disagree. I looked at a bunch of definitions and tried to distill a useful distinction. Given that people hire coaches, but usually not mentors, the distinction for me is that a coach is engaged towards a goal and therefore is more directive of what you need to do to get there. I don't think your example question is a great one for exploring the distinction because it's a single, binary question. But even in your example, despite the coach responding with questions, you describe the coach as pushing you to go do some work: figure out the differences yourself, or come up with a project to explore the question. In that sense, I see the coach as "setting the agenda" whereas the mentor is having a more open-ended conversation about it.
- syspec 5y agoUnrelated rant, and not saying this is the case here I'm sure it is not from reading the authors blog. However, anyone notice how 4/5 developers describe themselves as mentors? I've intereviwed so many people who describe themselves as mentors yet could not answer fizzbuzz
- lmilcin 5y agoIt is known (and proven) that most people grossly overestimate their experience and abilities. In software development it is even more egregious because, due to exponential growth of number of developers, most developers haven't had a chance to work with a real, good, expert developer. You need probably at least 10-15 years and more realistically about 20 years to grow to be expert at your field. And even then only small percentage grow to be truly experts, the rest become stuck somewhere along the way. How do you asses whether you are mentor material if you've never seen a real deal? You don't hear people who decided they are not mentor material yet -- you only hear from people who did. So this is the false positive problem -- given even small chance of false positive on deciding you are mentor material, given huge population of developers and very small population of actual good mentors, you are bound to have a lot of false positives.
- tj-teej 5y agoBut why do you need to be an expert (20 years experience, and whatnot) to be a good mentor? You don't need to be an expert mathematician to be a great Math teacher; you don't need to be a happy well-rounded person to be a good therapist.
- lmilcin 5y agoBecause you need to: - have the knowledge (duh!) - have the experience to have had enough time to observe things in reality (vs theory) and have had the time to internalise and digest all of this - be mature While it is easy to get the knowledge, the rest usually cannot be skipped so easily. As to math, that is not a good example. Math is almost pure knowledge and intelligence and so a bright kid can acquire that knowledge and quickly pass to his peers assuming they are intelligent enough. Unless you really mean Mathematics. Like how to advance the field. Then it is not as easily transferable knowledge. I know, I studied theoretical mathematics. Software development is only in small part driven by knowledge. If you think software development is knowing programming languages and frameworks and AWS and certifications you are waaaay off the target.
- scollet 5y agoIn some fewer words I would say that the force of mentorship should not exceed the strength of pushing a canoe into a river. You're not there to set hurdles. You're there to recognize when someone is fighting the upstream flow or have embanked themselves in temporary enlightenment.
- eatonphil 5y agoThe biggest thing I've learned when being in (loose) teacher or mentor relationships is NOT to push someone to do what I think makes the most sense or that I think strongly is the easiest way to go. Instead the best thing to truly help someone out is to encourage them to do what they WANT to do. The reason is because even if there truly is a simpler way, it isn't always simpler for someone in their current position based on their current biases/experience/knowledge/etc. But what you WANT to do is a really powerful motivator and the most important thing is that you keep trying things and get better eventually.
- angryasian 5y agoI disagree, in that you sometimes you do need to get the person to see things your way. As a mentor you should provide / present options. Failure is a powerful lesson, but being able to learn without failure is just is the same outcome.
- eatonphil 5y agoI didn't say I don't present people options. I just said I no longer push them on one.
- angryasian 5y ago>I just said I no longer push them on one. Yeah this is what I don't agree with. As a leader, you act as a shield to the people that report to you. You may be privy to information or have a better view of the overall big picture. Sometimes there are burdens you don't want to put on the people that report to you. We can only be so transparent a lot of times. Theres going to be times where you'll need to have them align with overall company goals etc.
- eatonphil 5y agoI'm considering mentor and manager as separate roles. Sometimes I've held them both. More frequently I've been a mentor and not a manager to someone. What you're describing is just a manager.
- pkdpic_y9k 5y agoOne thing I sometimes point out to software engineers Im tasked with mentoring at work is the importance of showing other engineers that you care about the code and the questions you're asking via slack etc by proof reading what you write and reviewing your own code before reaching out to others for help. The frustration of reading ia garbled slack message or pulling over to look at a code snippet and realizing the person didn't even look over it themselves is real and has real negative consequences in terms of professional perception. Like when someone misspells radical candor in the second sentence of a blog post about mentoring. Seriously though, everybody makes mistakes but when I do slip up like this I don't expect people to engage with what I'm writing. And I do think proof reading is an incredibly important skill for new and experienced software engineers. [edit] I just noticed the author is a staff engineer at MongoDB. He can misspell whatever he wants. I recant my sassiness.
- selljamhere 5y agoI usually have a knee-jerk reaction when I see grammar and spelling errors in blogs, but I try to remind myself that these posts aren't published works that made it through an editorial staff. Mistakes happen, especially when the author isn't a professional writer.
- pkdpic_y9k 5y agoI agree, the guys clearly legit. I was just indulging some recreational morning pedantry before actually getting some work done.
- organsnyder 5y agoI wouldn't normally point this out, but you're missing an apostrophe (should be "guy's"). Good example of Muphry's Law.
- d3ckard 5y agoYou mean Murphy’s Law, perhaps?
- deleted 5y ago[deleted]
- sefrost 5y agoAfter being an independent contractor (software engineer) for a decade I am now a full time employee and in my first formal mentor-mentee relationship. I would love to hear about positive experiences people have had from mentoring as I’m still feeling out the relationship and wondering where it can go.
- testudovictoria 5y agoGood mentors nudge and maybe push; they never shove. The best mentor I ever had helped me orient myself when I had no idea what I wanted to do. My answers were always, "I'm not sure. As long as I'm actively developing, I'll likely be fine." This wasn't quite true. Working on feature sets that didn't make sense with the code's architecture only to be thrown out 3 months later was rough. She was the one that encouraged me to work on skills during work hours. No employer is going to miss 1/40 hours when it's used for professional development that directly benefits them. She encouraged me to stick with learning new things when I was ready to phone it in. AWS certs aren't hard to pass, but I probably wouldn't have taken the test without her push. I would have never dipped my toe into management. I found that management wasn't for me, but it was a better experience than resting on my laurels for a year. A good mentor is like a good friend checking in on you from time to time, but the relationship is professional. Everything pertains to your professional goals (or in support of) from a place of wanting the mentee to succeed.
- sroussey 5y agoOne thing people forget: let your mentee fail. Don’t bring the business down, of course. But do let them fail — there are good lessons to be learned and failure is a great way to do so with an emotional impact that lasts much longer than an intellectual one.
- chkhd 5y agoGood article. In my personal experience a good mentor will never patronize but will still manage to convey their, usually higher, expectations for kind and quality of your work. The best mentors I've had were also extremely good at receiving and processing feedback themselves because they honestly loved learning and wanted to be better as much as I did. I'd had number of mentors, and myself almost a decade of experience teaching technical classes and 1:1 private lessons before I got into mentoring other SDEs at work and was amazed by how much I learned even just from first few relationships. Coaching and mentoring really are so different. I have definitely seen organizations where either the culture or the "climate" all but prevented effective mentor / mentee relationships no matter the effort. Really don't miss working at those places, probably the most burned out I had ever been in my career.
- revskill 5y agoIn my experience, one fast and practical way, is to assign issues, from small to big.
- lwb 5y agoThis articulated for me one of my biggest frustrations with traditional 1:1s with managers I've had throughout my career: by these people I want to be coached, not mentored. Most 1:1s have been driven by me, at the explicit behest of the manager. "I'm here for you" and "this is your time" are/were common phrases. I found this particularly annoying as a new grad when I really didn't know what I didn't know and just wasn't getting a lot of mileage out of those conversations.
- animesh 5y agoAgainst the common sense, I started talking a little bit more when the 1-1 mentee is at a unknown unknown situation. I tell them they should look fwd to a,b and c if they are to look for a direction and I invite them to setup a further specific 1-1 to discuss this, if that catches their eye. If not, again will let them explore and then comeback with other options and so on.
- throwaway81523 5y agoTo indulge in a bit of naked self-interest here: a few people have mentioned paying for coaching or mentoring. How does that work, did you personally pay or did your company pay, and what was the hourly rate if I can ask? I'm wondering if it is a reasonable angle for some of us old-timers to get into. I'd have to charge an amount comparable to software consulting, and I'd expect most people to not be willing to pay that out of pocket, but maybe I misunderestimate (sic) this crowd. Weirdly, in one job interview they asked if I was willing to mentor junior devs. I said yes, they hired me, but the subject never came up after that. In another, the topic never came up at all, nobody approached me for mentoring at the job, but my management later hassled me about missing their expectations about it. The article is generally pretty good.
- titanomachy 5y agoI'm not sure that the article's distinction between "mentoring" and "coaching" matches my experience, or how I'd use the words. When I think of who has mentored me the most, it's usually the lead engineers on the teams I've worked on. In a sense they're just doing the job they're paid for, but I still consider them mentors. To me, asking a prospective senior engineer if they're willing to mentor juniors is equivalent to asking "are you willing to put in time and effort to help juniors learn how to be better engineers?"
- throwaway81523 5y agoYeah, I saw the terms mentor and coach being used in different and confusing ways in this thread. I figured they don't have clear meanings and that is fine. We can approximate well enough. I imagined in-office mentoring as being something like meeting with the person for an hour or two a week, looking at the current state of their project and making comments, doing some pair programming, that sort of thing. I've received lots of informal mentoring myself in that way, so I was looking forward to doing it. But it never came up.
- noizejoy 5y agoMentoring and coaching terms are a bit too one-way for my liking. So I’ve always avoided that terminology in favour of more peer to peer metaphors. While I may have more flying hours in some topics of life or work, even a younger and/or less experienced person in some ways, can teach me something in other ways. Building each other up makes for very rewarding bilateral relationship.
- agumonkey 5y agosomeone just made this https://old.reddit.com/r/software_mentors/ https://old.reddit.com/r/software_mentors/