Ask HN: Do software dev mentors really exist?
I know it's something that goes on in the wild, because I overhear snippets of conversation at work about assigning someone to mentor a junior or actual mentoring going on, but I've just kind of been given junior-ish tasks and told to ask if I have any questions. No one seems to know what exactly I'm going to do or where they want me. I've been trying to act on some of the last bits of advice that friend gave me before the social separation, but some of the pieces that were the quickest to address and complete haven't borne much fruit.
I've gone to a meetup (planning to go to more) to try to find someone who might be a mentor or at least a mentor-like figure, but that's been bleak as well. Is mentorship just a buzzword that internet posters use to give themselves advice-giving credibility? Will I have to switch jobs just to get one if that isn't the case? If I do, isn't that my catch 22: I don't have enough experience, but in order to get it, I need to apply for a job that needs more experience than I have?
Things I've read in the past on HN:
- I know there are pay sites that exist, but I can't afford to take samples on random people on random startup websites.
- I know someone is going to pipe up and say "well you don't NEED a mentor" and then go on to cite how they made it on their own except for the long-time mentors they have but those guys don't count
9 comments
[ 3.0 ms ] story [ 27.4 ms ] threadIf there is nothing formal at your current place, you can try the informal route. Ask a coworker to join you when you go for a coffee break, and informally chat about work. Ask a few questions to see how they respond. This process is slow, but personally I've had the most success with this approach. (Yes, its politiking)
In my opinion, formal mentorship programs are uncommon. Usually the senior devs are under pressure to ship and don't have the option to help the new people (junior or not).
Organizations which don't foster this kind of relationship are really short changing themselves. Some of those junior people turn into stellar contributors in short order, and without a little guidance would have been frustrated and lost.
As a senior guy I feel vastly more productive and interested spending half my days in a series of little one-on-ones and in depth reviews then just burping out features with my headphones on.
I've always found a good mix of new talent, growing talent, and old hands to be the best teams. For best results have enough experienced people around that the younger people have a variety of options to choose from and be able to work with the mentors they get the most out of.
Thats pretty old school. Now it seems that its really all about the next two weeks, and not about building good teams.
Yes, they have a program for those who are college hires (hired straight from college). I was not a college hire: this is my second job, but my first job at a purely tech company. My first wasn't programming related but I managed to change that. However, at my current job, I'm treated like a college hire yet not included under the program we have, including the benefits it has.
> I usually grab a coworker
I can talk to my manager and other coworkers if I need to and they'll help with things, it's not that they're not available to help.
> (Yes, its politiking)
I don't think it's politiking, but socialization is somewhat difficult at my company. The next-youngest person on my team is just about twice my age, and they've already got their social networks set or are simply uninterested. I found it much easier at my previous company, where even though I was nervous as a fresh grad, people were willing to talk and take breaks. I haven't really found an "in" socially, although everyone is nice and polite.
2. I haven't become a better software developer since I left my first job; in fact, I've done less programming since I joined a purely tech-focused company.
3. The code smells I can notice in the things I do look at I mostly have no solutions for since I don't know what a better option would be. The times I do have an idea, I play around with it and realize that the way we have the code is fine and I'm just trying to replace it with something New and Shiny (i.e., I wanted to replace the nested loops we used to search a log file with LINQ, but I realized that not only did this not really change anything, I'd have to start combing through dozens of tests that use this method to make sure everything still works which would destroy my sprint schedule).
4. I don't have an angle like I did at my last job: there was always room for a tech solution because none existed in the first place. I was able to cook up lots of small and useful things that had a direct impact on the workplace. Here, just about every problem has a solution implemented already, usually a simpler one than I had in my head. Some tools that I've seen the insides of are definitely entrenched purely because of the sheer number of code smells within; I thought this would be an angle because it would probably be much easier to update if a refactor or even a replacement was worked on, but no one can justify ANYONE'S time refactoring/remaking something that already works.
5. I'd like to learn company vocabulary; my team continues to assume that I know all of the jargon even after the past few times over the months since I've been hired where I've explained I don't. I do all the usual things like explain what I'm trying to do, why I'm doing it, and do it step by step, but it feels like the only person who seems to get me when I have an issue is my manager, and even then not always.
6. Having someone who would actually be interested in getting me involved in the company would be nice, even if it just ends up being a social thing and not necessarily a tech thing. We don't work on anything groundbreaking and we've got our list of defects like every other company, but just being able to work on something and have something to even gripe about as chit-chat would be nice.
* if you don't really know what you should/could be working on but are feeling frustrated with your daily routine, you should bring this up with your manager.
* if you still don't know company vocabulary and don't feel involved in the company after a few months, there may be an onboarding / culture sharing issue at play.
That said, maybe you should play the "money game" (as in the movie about baseball). It may be impossible to find a mentor who will do it all (help you grow technically, help you find more meaningful tasks, help you feel more socially integrated) but finding several mentors who can help with each facet is probably easier. E.g. your manager should be in that list re. day-to-day tasks and company culture; an outgoing coworker for the social interaction, etc.
You mentioned that most of the team is much older than you; maybe you can create a "filial" social relationship rather than a "fraternal" one. In my experience, this works quite well if your coworkers are old enough to have kids in high school/college, and you've graduated a few years ago - easy to relate to what they're going through and reassure them that their kids will eventually turn into fine upstanding folks just like you. Plus everyone loves talking about their kids.
This leaves out the big one, the dev/tech mentor... But if you're not looking for someone you can have a normal social interaction with, you can target the grumpy beards who committed 95% of the entrenched esoteric code and ask them about it. (Or, you know, just commit something that'll break their code. That usually gets their attention ;)
Try talking to friendly coworker and saying: not sure what to work on, got any suggestions?
I had already gotten pretty good at the slamming my head against things until they work part. So I could eventually make something that functioned, but my code quality was terrible.
Where having a mentor really helped was becoming more disciplined, seeing good code, and learning new tools and services.