I've heard countless times through posts or videos about advice for programmers. One of the most frequent advice is to find a mentor, preferrably someone you look up to that can help you in getting better at your skills by evaluating your work and giving you advice based on his/hers experience throughout your career.
I'm from a small town with not that many people who I'm able to relate to and it seems that the internet is a good solution for my problem
My question is how do I develop such a relationship with a person through the internet without being pedantic or straight up rude?
Would love to hear your advice and experience
Thanks
I got this question in a class I taught last week. Here's the advice and tips that resonated with the group:
- Don't start by asking "Will you be my mentor?" or "Can you review my skills and give me feedback?" It's a big investment of time and effort, if they don't know you.
- Instead, ask one or two thoughtful questions related to their expertise. Many people are happy to help, especially if it only takes 10 minutes of their time.
- If they don't respond, don't let that discourage you. Sometimes it's a numbers game: reach out to enough people and you'll find a connection.
- How to reach out the first time? There's a lot of ways you can try. Comment on an article they wrote, or email them about it. Engage them on a thread here on HN. Reply to them on Twitter. Attend an online event where people are speaking about the topics you're interested in.
- Most importantly, follow up. After they respond or you get to talk to them, send a thank-you summarizing what you learned and what was most helpful for you.
- Better yet, send another thank-you a month later with how their advice helped you: what did you do with it, and what was the result? People love to hear how their advice helped. You'll stand out from the crowd and they're more likely to continue engaging with you... and that's how the longer-term relationship can get started.
If you find this advice helpful - I'd love for you to reply here and let me know what worked for you!
The reason I answer is because I just had an idea. This doesn't help you, personally, right now, I suppose.
Google had a 10% rule (not sure if they still do) where 10% of the time, an employee could spend time on personal projects.
What if a company said, 10% of the time, you mentor. Those who seek a mentor can just apply to the company and get in line and wait.
Possibly, these mentored people could be future hires, and the employees are improving their abilities/knowledge by having a "teacher" role.
If I was Google's or any company's CEO, I would try this!
I'm a mid-career dev with about a decade and a half of experience, and I have failed at mentorship from both directions.
I have failed at being an effective mentor. I have reached out multiple times to less experienced people who say they're looking for a mentor on various forums. What I offer: my first-hand experience working in Silicon Valley; realities of the industry; tech stacks that are actually in use at various companies; interview prep or advice for self-study; interviewing experiences I've had and what I've found to work, as interviewer and interviewee.
After a couple rounds of email or video calls, the prospective mentee loses interest and we let the conversation die. I get a gnawing feeling that they were looking for a job hookup. Maybe I just suck as a source of value?
I have also failed at finding an effective mentor. I could really use someone who is on a path similar to mine, but 5-10 years ahead. I'd love to get some relatable, trustworthy advice about career trajectory, picking the right company to work for, how to know when a team or project is right for you, and what to do about it, what to specialize in and how, what to do about continuing education, etc.
What I usually find instead is aggrieved people who just want someone to listen to their tale of woe, or (slightly better, but still not good enough) people who are further in their careers, but a bad personality match. For example, they might offer advice about how to find jobs where you do as little work as possible while your boss ignores you, or people who want to get out of tech and flip houses or something.
Also here: https://wallstreetplayboys.com/find-a-mentor/
Personally from my experience it's a lot of doing your own research first, then making your own attempts, then asking for feedback in a way that isn't borderline creepy / disturbing / time-wasting (as covered in above refs)
How I did it? Well, I built this mental model that goes like this:
1. If a task is difficult, simplify it by splitting it to smaller tasks. Sort them in ascending order of ease.
2. Start questioning the "how"s on your smaller tasks and do your research to find multiple solutions, suggestions for improvement, optimizations, potential rewrites before becoming a bottleneck that would demand a major refactoring.
3. See whether you have answered your "how"s from #2 or not. If not, go to #1.
4. Based on #2, find the best material possible other experts in that field suggest or highly recommend; try not to fall in commercial traps or biased reviews. There are lots of valuable resource on such topic, and trust me GitHub has incredible content in markdown format with ultra-advanced levels of explanations.
5. Narrow down your expertise in a specific tool set, be it languages or IDEs / editors of your choice and learn them inside out as much as you can. E.g.: you want to master your craft around web development; fair enough. Learn JavaScript in depth and use the framework your current job demands you to know. Go to #1, then to #4, and then #3.
6. Start writing a blog or an ebook. Guess what; after a certain amount of time, you have just become yourself the mentor you have always wanted.
At least that was my own experience so far ¯\_ (ツ)_/¯It does not mean I'm a success though :D I'm a living failure, that's why I always push myself to become better at what I do.
I'm an eternal student!
At university, many faculty are glad to interact with students who are curious, successful, and proactive. People will advocate for you if you clearly show potential.
Out of school, it's not as clear how to do this in every job. If you join a community and offer obvious value, senior members might try to help you out with advice.
But I've seen this work out much more with "frivolous" communities, like niche programming languages, or 3D graphics hobbyists, or Code for America type stuff. Not a lot of excitement around people who work in enterprisey jobs on enterprisey things.
The one exception to that I've found has been SREs, who, as a community, seem both tight-knit and nerdily excited about enterprisey things most devs find extremely dull.
Maybe by contributing in Open Source. If you find a project you are interested and start doing contribution there is a chance that maintainers would mentor you.
Senior Developer time is highly constrained, we have families, demanding jobs, side projects and still need time to learn new stuff. Mentoring random people on the internet do not look attractive.
The sad truth about programming is that you need to spend a lot of time in front of a computer, usually struggling and alone.
Part of what we're working on at SharpestMinds is reducing the friction to finding a mentor—https://www.sharpestminds.com/
We are currently focused on Data science mentorships, but we plan on expanding into the broader software space in the medium-term.
[1] https://mentors.codingcoach.io/ [2] https://docs.google.com/document/d/1zKCxmIh0Sd4aWLiQncICOGm6...
I think his technique is by far the most reliable way in the internet age. Give, give, give, people will like you
One thing I've noticed is that bootcamp grads consistently putting in time on projects often get a ton of feedback / mentorship.
CfP is part of a network called Code for America, and with covid a lot of projects are meeting virtually, so I'd look for the nearest "Code for" group! (Or similar communities).
I've only had one mentee so far but it worked out pretty well. Maybe sign up and reach out to a few mentors on there that are doing work that would be aligned with what you're looking for.