Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I find a mentor?
121 points by rashoodkhan on April 18, 2015 | hide | past | favorite | 80 comments
Hey,

I have read in various answers by highly influential programmers is to find a mentor. I wanna know how to find a mentor? I'm interested in mostly developing web applications (both front-end and back-end).

A little background, I will be finishing my Bachelors in Computer Science in a month and currently based in India. I have been programming in Python, Java and C# mostly.

Thanks!




You don't "get a mentor."

You develop a relationship with a person who has more experience than you do, and over time, that person may become a mentor to you. And I say may, because if the person you're working with determines that you don't provide any value to the relationship, they won't be that willing to help you for long.

I say this from experience - lots of people want me to mentor them, and I've had quite a few that, once they got their first job, they just disappeared.

I'm a lot more picky about which college students I mentor now.


How would you like the students you mentor to add value to the relationship?


As a very recent mentor (yay!), I usually look for feedback on how I can improve my own teachings. I've only met with my apprentice a couple of times, but she's allowed me to think about how to explain things in a more clear and concise manner for other people to understand. She's also going to bring cookies next week (a super-sweet gesture on her part), and since she's a (elementary school) teacher, she's going to give feedback on slides I'm creating for an upcoming class I'm teaching.

Every time I teach my craft to somebody new to web development, I learn something new. It gets me excited about coding again, and it's why I love teaching so much. The students with the most questions are usually the most enthusiastic, so ask any and all questions that come to you. If your mentor doesn't know the answer, even better. I like students who make me think!


First, I would hope that they would introduce me to things I don't know about, and eventually teach me things. And give me feedback on how I can improve. Mentoring relationships need to be bidirectional in my opinion.


I completely agree, but it can be intimidating to offer feedback to someone who you idolize as a mentor, that's why I think the relationship is especially important as a foundation from which to provide that feedback.

Edit: Typo


Yes. Exactly. But that's why mentoring relationships need to happen organically. So that the trust can be there. That the mentee (if that's a word) can build up confidence and the pair can work as colleagues.


How clearly have you stated this to the folks you were mentoring?


"We fill gaps" - Rocky Balboa

Like any relationship it works best when both sides have strengths that complement each other.

The nature of a mentor relationship is that the mentor has more experience. It doesn't mean they are more skilled in every way.

A specific example: I get questions from my mentors along the lines of "What's the state of X? Is it ready for prime time?" or "In Y, how does one typically do Z?" because they know I am actively involved in the community for X and Y.


I think traditionally it worked like this... The students did a bunch of work for the mentor, for very little or no wages and they were taught a trade.

The students were much like your property, you could beat them, treat them basically how you liked, even sodomize them if the mood took I'm guessing.... (sorry to be graphic, but I think that's how it likely went down). You did however, have to provide for their basic needs and you couldn't kill or severely maim them, or it was bad for business. After X number of years, the student could go out on their own, and the process repeated.

So this system has some obvious flaws and has slowly been done away with. It might be good if it were to make a comeback in a modern form (without the beating and sodomy of course). Then again, maybe it's not so good. Still, we get lots of people wanting "mentors". What do they have to give back, particularly at first?

My opinion? Want a good mentor? Look in the mirror.


I think you're thinking of a master and apprentice (albeit through the lens of a world which resembles that of Westeros...) In any event, not the mentor relationship the OP was inquiring about.


"Westeros"....

You know, I don't think so. Trades have been around for a lot longer than universal justice. Slavery is only recently going away. Important people in the community have traditionally done what they wanted and as long as it wasn't too egregious, they usually got away with it.

A little light googling turns up no shortage of cases of apprentice abuse, (including sexual) from the relatively recent past (1600's on... a time that is comparatively modern in the "objective" dispersal of justice). One can only imagine what earlier times were like. No doubt there have been plenty of beneficent individuals, but the beneficent treatment of fellow humans is sadly often the exception historically speaking. For most of human history there has been a very different standard of what was acceptable than we hold today. A third party flogging for failing to follow orders (or simply because the flogger was having a bad day) likely scarcely raised eyebrows as long as it didn't get out of hand for most of human history.

Even today we still see remnants of this relationship. Abuse of underlings who put up with it because they think it will get them somewhere. Taking on an "apprentice" out of sexual interest rather than simple interest in their development. Human nature has not changed terribly much... just the rules.

I don't know what kind of relationship OP is after or what he is willing to do to get it. I do wish him the best of luck on his quest.


> Slavery is only recently going away.

Define "going away."


I would have to concur with this. Find people you respect and reach out to them with something real. But respect that they are probably quite busy and such help is often in demand in a lot of directions. Often times, people will develop notions about who is ready to listen and who isn't, things like taking the idea as far as they can before reaching out, and actively listening to the feedback. A good mentor won't be rude but they will be honest. And if you haven't yet reached the point where you can be honest with yourself and others, it will be hard for you to learn from others. When people aren't ready it is pretty easy to spot.


[deleted]


I'm unsure how this comment is relevant to the post.


I think the goal is not to find a mentor. As soon as you feel you're dependent on another person for knowledge you've already lost a certain edge.

Instead simply be curious, ask questions (to yourself) and find the answers to them (by yourself). And most of all "do stuff". Apply the knowledge you're accumulating. This is the only way you're going to grow as a developer and start to separate the good advice from the bad advice, and start formulating an opinion of your own.

Perhaps what is meant by "find a mentor" is: become involved in a project with people who you respect and want to learn from. Then spend the time soaking in all the knowledge they have to offer. It's not that they've consciously decided to take on a role to "mentor" you. Instead indirectly (whether they know it or not) they're mentoring you with every ounce of advice they offer.


It's not their knowledge as much as their experience.

The map is not the territory so to speak.


IME - get a job.

My last internship (before my senior year of college) and my first job after college boh had me working with people who had been in the industry for 10+ years and were both at the top of their game and extremely patient about getting me up to speed with how things worked at their companies and in the industry in general, technically and culturally.

I know I hit the lottery going 2/2, but I don't know how else it would have happened. I can't imagine going out and just nagging people to teach you would end well.


I completely agree; you can learn an awful lot very quickly by working in a corporate for a few years. You may decide that its the right environment for you; you may not, but the skills you learnt along the way are invaluable.


As someone who's asked to be a mentor often (only because I've been in my industry for a long time) - I find being asked "can you be my mentor?" a little too weighty.

I have no problem with people developing relationships with me and asking me simple/quick questions on occasion.


I don't know about in India...but in the US, if I were a senior in college, I would attend all the related meetups I can, in topics that interest me. Arrive early, stay late. Try to talk to people. Become genuine friends with those who have more experience than you. It won't happen in a month, but if you show up enough you'll be able to feel out who have the mentality to mentor. Not everyone wants to mentor, and not everyone can be a good mentor.


This is what I recommend to my students. This is the best answer on here, much better than mine.


This comment comes around once every so often. Actively seeking a mentor might not be the right thing to do. Start doing something you care about, publicly, and people will find you.


Agreed. Approaching someone with the question of "can you be my mentor?" is unlikely to work. These sorts of relationships often form organically throughout the process of working together on projects. So seek out projects where you can meaningfully contribute, even in small ways at first. And then show that you're the hardest working and most reliable person on the team.


"These sorts of relationships often form organically throughout the process of working together on projects"

Agree. And in fact the other way around in a sense smacks of someone being used regardless of whether that was the intention or not.


I wrote a blogpost on this topic once http://pindancing.blogspot.in/2010/12/answer-to-will-you-men... (Indian , living in India fwiw)


Thanks for mentioning your post. I really enjoyed it. I have a couple questions that, to my understanding, weren't covered in your blogpost, and I'd like to learn your opinion.

I'm guilty of having contacted someone I greatly respect and asking "Will you mentor me?". While I honestly believe that particular individual understood the naivete in the format of my request as shown by the kind response, I would like to improve the manner in which I seek mentorship in the future.

In your examples, you offered to help improve a project of a prospective mentor with work you had already completed. If you don't know what work may help that person, would you ask directly how you may provide a benefit to him/her?

My next question is about the type of advice I seek. You suggest "[...] have gone as far as you can by yourself" before seeking mentorship. I'm not stuck, but there are a few paths I might choose. Each is a considerable time investment, and making the wrong choice would be a setback I'd really like to avoid. The conventional advice I have sought online hasn't provided a clear answer to my specific situation. What is the best way to ask someone if he/she has the time to offer advice? I don't want to start by presenting the questions and making them feel obligated to answer something that may take more time than they have available to consider.


(a) If you don't know what work may help that person, why do you presume he/she would be a good mentor for you? You have to research/know what your prospective mentor is doing, has done, is interested in etc before seeking mentorship.And you get this knowledge by actually doing some work in whatever area your prospective mentor is an expert in and coming across his work in that field. (vs choosing someone famous first and then deciding to seek his mentorship)

"If you don't know what work may help that person, would you ask directly how you may provide a benefit to him/her?"

No I wouldn't. I get these sort of emails myself,though I am just a programmer and have no world class expertise even in programming, and I know what timewasters they can be.

More importantly I let my work lead to potential mentors than the other way round. In other words, I'll work on what interests me/I think is important even if no mentors are available. Mentors are an occasional aid, not a dependency, to doing good work. Which leads me to

(b) The desire to take the "optimal path" (no such thing exists for most realworld situations) can in itself be a paralyzing factor. Taking some paths, realizing they are not right for you and then backtracking is part of the learning process. This time is not "wasted". Seeing it thus only shows you are at a certain stage in learning how to learn, and need to move a little further.

Doing this exploration and backtracking improves your skill in choosing and walking paths. Sure, too much of it can be debilitating, but knowing when to stop and when to continue is itself a valuable skill, which can be acquired only by gaining experience and reflecting on it, not by someone else trying to guess the 'right path' for you.

If you completely avoid these situations, waiting for someone else to give you an "optimal" path, you end up (in the best case) as someone who can take a path only when someone else lays out all the pros and cons of each path. And that is not a good place to be, even if such a situation were possible (which is usually not the case, though in some highly structured environments like studying for an academic degree, it might be possible)


Thank you for your thorough response. I agree that only after sufficient research (not only about the person, but about the subject of focus as well) does one get a good idea of who may be a good mentor. The research does provide insight about the interests and attitude of the prospective mentor, but doesn't always clarify how that person may want help. Perhaps after more time and research, I'll prove myself wrong.

I agree that one should not be dependent upon a mentor's guidance. I think, based on your response to my second question, I may have inadvertently implied that I was seeking a mentor to enlighten me with the 'right path' or that I wouldn't start until I had received the advice. In fact, when I considered the circumstance prompting my second question before I had written it, my thoughts were very similar to your answer.

The guidance I expect a mentor can provide is similar to the reading list provided by tptacek for those who wish to learn more about security (http://www.amazon.com/lm/R2EN4JTQOCHNBA/ref=cm_lm_pthnk_view...). Someone who wants to learn who blindly chooses the first few resources may eventually come across the same books or learn the information elsewhere, but may take far longer than necessary, pick up some bad habits, and not gain more expertise for the extra time spent stumbling along tangent resources that turn out to provide little or no benefit.

I think your strategy of delving into the work and in turn the community surrounding it is a great way to promote the serendipitous mentor-like relationships that will naturally form as a result.

My only disagreement is that you seem to find little value in seeking out those who aren't necessarily 'famous' but definitely are experts in a particular subject, researching more about them, and asking for mentorship if the research suggests it would be a good decision and could provide mutual benefit. There's likely a very low chance of success, but that person (who may have been a great mentor) may not have noticed you otherwise. I've decided that I'll do what I can to avoid any more reasons to think to my future self "I wish I had tried." A single mentor who I may not have been acquainted with otherwise would be worth all of the rejections to me.

Thank you again for taking the time to respond with such a well-thought-out comment.


Whenever you talk to someone, have a pen and a piece of paper ready. Take notes. That'll increase people's willingness to help tenfold.

Most people who could benefit from an advice end up not just ignoring what they are told, but arguing from the position of ignorance. Hence most people who could give a useful advice keep quiet. Unless they can clearly see they are being listened to, then they talk.


Reading the title, I thought you were looking for mentor(s) for your Startup! It would have been a different story.

For programming Mentors/Guides, if you're in Bangalore, Jaaga[1] (Richmond Road) has something or the other at all times. I've met quite a lot of awesome programmers there, hired developers whom I met there. Hasgeek[2] (Indiranagar) also has lots of interesting people in their rather open Office.

The other option is to intern at a Technology-led and/or focused Startup.

1. http://jaaga.in/

2. https://hasgeek.com/

@k__

It is confusing when you say the mentors didn't have time! I don't think you expect them to schedule out their time to _teach_ you. Do and then ask them to review your code or critique your code.

Recently, there was a nice article on HackerNews - https://news.ycombinator.com/item?id=9396694


I've seen a lot of young engineering graduates in India who experience a lack of direction. One person here who I know helps these people out with good mentoring is http://pramode.net/. I've met several of his students and, if they're anything to go by, he does an excellent job.

I've started something similar (http://thelycaeum.in/) to what he does myself. It's a lot smaller. I've currently working with my second batch of students and it's going okay.


Sometimes a mentor is not someone that you will meet in person... The entire Internet is my mentor. This site has taught me more things that I can number. Choose a good list of sites and invest your time in high open source quality software. If you will turn out to be one of the best programmers, you will discover that most of the work you had done, will be the work that you did alone. If you emulate others you will be only a robot. The highest point will be the one when you will turn around and you will see the mountains you built alone...


Getting the wisdom is not the problem - getting the right wisdom in the right dose at the right time, is. That's what a mentor is for. The internet does not provide this.


Mentors are not just for knowledge, they provide connections, confidence and motivation based on what they know about you. The internet has lot of knowledge but it doesn't know you deep enough to tell you what is good for you.


Great question! I wrote a detailed essay on this topic called "How to get coaching, mentoring, and attention:" http://jakeseliger.com/2010/10/02/how-to-get-your-professors...


Two main ways come to mind:

1. Become interested in something esoteric in programming, then find people more knowledgable than you who are interested in the same thing. This always works for me when I get interested in something new.

2. Just reach out. I've gotten questions on LinkedIn from people I've never met before, and as long as they're not obnoxious, I always reply. Even if this doesn't work for everyone, try to make enough connections, and some will work out. Just be respectful, and show you've put thought into your questions. Questions like, "how do I data science?" won't get good responses.


Finding a mentor for getting better at code is probably not the best way. The best way is to build, break, build again. Great programmers are masters of detail, you only get to detail with daunting experience in things that won't work.

That said, if you decide to find a mentor, start with people closest to you. Ask your family members and friends first. You'd be surprised how many great people are within 2-3 degrees of separation. This is old school, but works.


I have found mentors to be very helpful in career or business situations, but I agree with you, they aren't super helpful with coding. Maybe with higher level design or architecture?


You may contribute open source projects so that the main contributors review your code and you will get a chance to improve your programming skills. If you're looking career advice, I think the best bet is to get close to the people in companies when you're doing internship. You can get help from many people on the Internet but I think they have to know you in person or spend some time with you in order to give some accurate advices.


I think of two things when it comes to this question: the notion that you should regard relationships as "lines and not dots", and how to get meetings with people too busy to see you.

Steve Blank has a great article about how you need to provide value to even begin getting into somebody's space. http://steveblank.com/2013/08/12/how-to-get-meetings-with-pe...

Now you might say, I'm a student, what could I do? But there's a lot you can offer, from your story and perspective to the skills you have. Even just writing from the perspective of somebody offering value rather than just trying to take it makes it easier for you to get meetings with the mentors too busy to see you--the kind of mentors you should aim for.

Starting a relationship is always easier than maintaining it. You want to make sure you could grow with the person you're reaching out to, and that ideally, the conversations you have with them will be mutually beneficial. After a while, you'll be learning from them and they'll be learning from you as well--if you plan for that relationship rather than sitting back and trying to grab a "mentoring" session you'll start seeing your thinking about mentor dots evolve into long-lasting line relationships.

My last note on this is that it's also a lot easier to learn from people if you're working for them.

To sum up

1) provide value to everybody you talk with 2) think long-term 3) work for people you REALLY want to learn from


I've had various mentors through formal and informal channels such as my university, my workplace, and through friends.

I've found that the mentors I've found informally have been the most valuable.

I've found the app Weave to be actually pretty useful in meeting interesting people. I wouldn't have the mindset of finding a mentor but rather one of sharing ideas with interesting people. A mentor implies a one-way value exchange, whereas my best mentor relationships have been those where we've learned from each other. For example, one person might have first hand experience in raising money while I would have experience in building apps in the current mobile app ecosystem.

My former workplace had a mentor program where senior marketers can be paired with junior marketers. From my experience these formal programs are a bit flakey and I didn't get too much out of it. Same goes for the mentor program at my university.

I've also found going to hackathons to be a good place to find mentors. My background is marketing but I build mobile apps now. I learned a significant amount of my practical programming skills by working with new teammates at hackathons.


I used to mentor other programmers while I worked because management hired unqualified people for the positions and they needed help in getting started. I would see coworkers stuck not knowing what to do in a blank Visual BASIC 5.0/6.0 screen. I'd go over and help them out and give them some lessons in Visual BASIC to get them started.

Most mentors want something back in a relationship, I did it just to help out other people with no reward for me at all.

I got sick one day, stressed out and mentally ill, and went on disability. Been trying to get back on track and get back into programming. I'm 46 now and could use a mentor, but I lack people and social skills due to my mental illness and trying to rebuild them. I often get confused as someone whop suffers from autism in the way I write and talk. But I don't have autism, I have schizoaffective disorder which is rare and like bipolar with schizophrenia.

Because of my mental illness friends and family abandoned me, and my career was basically over. Nobody wants to hire a programmer that is mentally ill. But if I find the right company and the right mentor, I could get back into things.


I wish goodluck to you man! As as you're alive there's always hope to look forward! :)


Thank you, I am still learning new things every day. As long as I learn there is hope.


Look at this from another angle. You are looking to be a student of someone. A few options:

The traditional advanced education path will usually form this sort of relationship. If you are fortunate, your bachelors program will allow you the opportunity to work with and learn from someone that can mentor you. If you haven't yet formed these sorts of relationships with your professors and are graduating already, you could start a masters/doctorate program in which you will be the student again and have (perhaps greater) opportunities to form these relationships.

Outside traditional education, you could find a junior developer / engineer position of employment in which a mid or senior engineer is assigned (or volunteers) to be your boss. Learn everything you can from this person, take their criticism, code reviews, etc. and improve yourself. Even if you are hired as a developer and there is little processes in place, you can take lead and find more senior co-workers that are willing to help you. Be direct and open about the fact that you're looking to improve your skills/abilities, and that you're not just looking for them to do the job for you. Don't take criticism personally, use it as a way to improve yourself and your code.

Outside traditional employment situations, you can participate in open source projects. Pick something and start working on it. Fix bugs, and ask questions about all the things you find. Be active in the IRC channel for the project, and/or the mailing list. Voice your opinion, ask questions, ask why things are done the way they are done, etc. Again, don't take criticisms personally, use it as a way to improve yourself and your code.

Go to hackathons, go to meetups, go to events and be friendly with everyone. If there aren't these sort of things in your areas, start them. Attend both social events and 'building' events where people are working together to build something together.

There is something you can learn from every person you meet. Establish this as your attitude.


Personally I found someone more experienced (someone further up the corporate foodchain) that seemed friendly...chatted to them a bit. They seemed genuinely supportive, so I kept going to that person if I needed some wisdom. Was never formally designated as a mentor, but the effect is the same.


This has always been my approach too. I'd add that if they make suggestions (eg "You should read xxxxx book") then the best thing you can possibly do at that stage is go out, read the book or whatever, come back and tell them what you thought of it.


Yup. Not the book thing directly, but demonstrating that you are making an effort to follow the guidance dropped is key. Else the dropping of said guidance stops very fast...


For me I just hung out in IRC for a long time and there ended up being people there that were always there and would always answer my questions. Eventually they got me an internship. Guess they thought I asked good questions. I just continued taking internships in their teams.


I was lucky enough to be mentored by one of the senior programmers in my first serious job. I didn't set out to "find a mentor", I simply made friends with someone more senior than me. It was a relationship built on respect and friendship, and when I showed that I was interested in learning, respected their greater experience intellectually and didn't make the same mistakes twice the other party was more than happy to impart their knowledge. It was a pleasurable experience for both of us I believe.

So my advice would be not to head out with the intention of acquiring a mentor ... just head out into the job market to make friends with the attitude of a good student, and with any luck a mentor will find you.


It's hard. I know. The best way to find a mentor is put yourself out there. Ask individuals if they'd be willing to mentor you.


This. I hang out in an IRC channel where everyone is either working to learn C or working to help others do so. But, the best way to get involved is to actually ask one of the folks that's there as a teacher to help you out. :)


I have two people I would call mentors.

Both of them came as products of my environment.

No one owes you a single thing, and time is the most valuable resource any of us have. The common tie I see between the two people I would call this are simple:

1. They saw I wanted to build things, could admit I was wrong, and was willing to learn

2. I kept in touch with them regardless of circumstance, seeking nothing but a hello and how are you doing.

If you want someone to just magically come along and guide you, this is the wrong path. Relationships are two sided and though you cannot offer expertise mentors often have a personal reason for investing their most precious resource into someone: They see something. Demonstrate this.


Personal plug: We're currently building mentorship SAAS that we sell to organizations, to help create and maintain mentor relationships within a business, non-profit, school, etc. We'd love to target the B2C route eventually as well.

The landing page is all about student veterans right now (two of my co-founders and I are former military), but feel free to check it out: https://www.uvize.com/

If you have any questions about our service, feel free to send me an email: parker@uvize.com


I work with Codementor (https://www.codementor.io/), which provides on-demand developer mentorship for a fee. I've worked with a few dozen developers in the last few months. Many are a la carte engagements, wanting help with very specific problems or code reviews. Others are long-term recurring engagements where we meet regularly (one or more times a week) or irregularly (to work through whatever issues crop up). Some are professional developers; others are students/just getting started. I have an obvious vested interest, but the customers seem happy; both in reviews of our sessions and in direct feedback, they say I'm helping them up-level their code, techniques, and understanding. That seems exactly what a mentor should be.


Get involved in your community & then ask what programs they have.

For example, in Php we have http://phpmentoring.org/

I don't know what Python, Java and C# communities are currently offering


Most people don't have the time or will to mentor someone outside of their jobs (for free). So the best way in this industry to get mentoring is to intern at different companies, where someone is responsible for your growth.


As it says elsewhere on this thread, technical meetups are probably your best bet to find assistance/support in real life. You get to meet interested people and it is a good opportunity to find friends and for networking. You'll get to meet smarter people who are willing to help you out.

If you're from Chennai, I can suggest the Chennai Python User's Group. It's a great bunch of people and pretty welcoming for newcomers. A quick search on Meetup shows a lot of other language-based meetups popping across the country. Take your pick.


Be a mentor to someone else. The best way to learn is to teach. After you've been mentoring for a while, you will know how to choose (carefully!) and pitch prospective role models and mentors.


I lived in Japan and had a Sempai (mentor). You do lots of menial jobs for them for a very long time. This proves you have the tenacity required so they're not wasting their time and allows them to profit off you from getting cheap/free labour. Eventually, if you show self control, they may allow you to step up with learning. This can take 3-5 years. I don't think many people are willing to go through it, frankly. Sounds nice but it's a hell of a sacrifice and a gamble. Your mentor might be a dick.


Perhaps some people can give you some useful advice if you narrow what you want. For example if you know python and want to develop web applications the next step seems to be to learn django and flask, you could develop a small application and show hear in hn asking for feedback or ask in stackoverflow questions. All of this are easy ways of learning things. For you to get a mentor I think you should learn the basic things and then ask for something more concrete. Just my two-cents.


I think others have given you some pretty solid answers. Find work at an interesting company and make friends with the people you admire there.

What city are you in? I might be able to introduce you to a few startups in Delhi/NCR (or a couple in Blr and Bby as well) if you're looking for a job after graduating. Send me an email.


Get a job at a startup with less than ten employees and with a good engineering team. Don't worry too much about making $20-$30k less. You'll learn a lot with a good attitude and find a mentor naturally. And chances are you'll make up for "lost income" eventually.


I wouldn't expect an individual to dedicate their time to mentoring you unless you have something to offer the relationship. Why not start with some community feedback for example try out http://exercism.io


In my experience, it has always worked like the old proverb: when you are ready, the right mentor will appear. Actions you might take, whether at work, with friends or counselors, may turn into a mentor you didn't expect.


I would say first, have accomplished something that shows your potential.


You might be able to get a kind of distributed mentor through Stack Exchange. Just post lots of questions to StackOverflow, programmers.stackexchange.com, and codereview.stackexchange.com.

Just a thought.


Got the same problem here.

I worked in a a few companies, but the only skilled people there who could have mentored me didn't have the time.


Short answer: serendipity.

As others have said, if you are _actively_ looking for a mentor, you are wasting your time.


So just wait around and hope? Whyever would one commit to such a random, unlikely path? Perhaps finding a good mentor is not easy, and chance often plays a role in us finding such relationships (also true for friends, mates, and other non-mentor relationships). But to expect chance to provide? Not an actionable plan, IMO.


No, of course not. But a mentor is not a trainer to go out and hire. The best strategy is to become the apprentice that your mentor would want to have.


If HN was a place where one might meet a mentor, would the question be written differently?

If so, how?

Good luck.


Maybe it's different in other parts of the world and other industries, but I've been in the tech industry in the US for almost 20 years and I've never really known anyone who I could say ever had a mentor or mentored anyone else. I have heard people make references to mentors and mentoring in the software world, but I just haven't seen it in practice.

I've learned lots of stuff from more experienced developers I've worked with, and passed on that knowledge to less experienced developers who needed it, but none of that was in the context of anything resembling a special relationship like mentoring.

IMO, once you have the basics that people usually get from a CS education (meaning the more abstract stuff like algorithms and data structures, not the stuff that's tied to a particular platform or language), there really isn't any more common or universal knowledge to be had. Quite a bit of what most people learn after graduating tends to be technical minutiae- the specifics of how to use various languages, libraries, and tools.

It's also the nature of the game that this technical minutiae changes all the time, and has an expiration date that's frequently only a few years away. So, one aspect of being a professional programmer is that you never stop learning throughout your career, and quite often you're just spending time learning how to do something in some language that you already knew how to do in 10 other languages. That's why I called it minutiae: it's critical stuff to know, but it's ephemeral knowledge that will someday be irrelevant, and you'll find yourself learning how to do the same stuff all over again in some other language in a few years.

I guess the whole point of this is that you've already got the somewhat universal basics of being a professional software developer, and all a mentor would do for you at this stage is help you learn the technical minutiae of a particular set of tools. But really, you will be having to do this learning on your own throughout your entire career, and you won't have a mentor to help you with it. So the very best skill you can have is the ability to learn things on your own with minimal help from others. Having a mentor might even be an impediment to gaining that skill, because it'd just be postponing you becoming self-sufficient.

The main thing to remember is that no matter how experienced you get, it will always feel like the set of things you don't know is growing faster than the set of things you know. It's not like you just get a certain amount of experience and all of a sudden you know most or all of the things- it's the exact opposite in fact. The more you know, the more you realize how much you don't know. So try not to feel bad about your lack of experience, but do try to become a lifelong learner if you aren't already.

I feel dirty quoting Eric Raymond but he's written a lot of things that can be insightful when taken in isolation. One of them was that the best way to get better is to alternate between reading books and hacking on code. It's easy to spend lots of time reading tech books and then never applying that knowledge to writing actual code. It's also easy to spend lots of time hacking on code and never reading anything, but this can drastically reduce how much new stuff you get exposed to. He suggested people get into a pattern of reading a book, write some code, read a book, write some code... When it comes to personal projects, just do stuff you want to do even if you have no idea how to do it.

The key to being a great programmer (IMO) is to never allow yourself to flounder or feel lost. If you are successful in your career, you may frequently be expected to complete a project using a language you haven't learned yet with some libraries you never even heard of. It's easy to get frustrated, but the way to get out of it is always to just put one foot in front of the other. Don't waste time feeling bad for not knowing how to do something, just always think about what the next step is and take it. Take everything one step at a time. You may not know how to get to where you want to go, but you can almost always figure out the next step you should take to get there.


Very nice answer.

I have been reading Coders At Work by Peter Seibel, and one common pattern which I noticed among all the programmers mentioned in the book was they worked under another good programmer in their initial years (Jamie Zawinski under Norvig), which was implicit mentoring IMO.

All my college life, I have worked on a lot of projects (Personal & at Internship) which involves different technologies, and as you said most of the work is figuring out how to do X in the new language or framework. One key thing which I have taken from everyone, is that learning never stops. The mode of learning keeps changing through out our life, from rote learning in early school to formal learning in high school and college and then to informal learning afterwards.


codementor.io


ITT: No one offering to mentor.


Is this a criticism, a (late) prediction, a "captain obvious" recap?

It's so vague as to essentially add zero value to the discussion.


Criticism of all of the people offering advice on how to find a mentor but missing the fact that OP really wants them to offer to mentor.


OP should have stated that clearly if that was his intention.

You're criticizing the wrong people.


CodeMentor.io




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: