
Ask HN: How do I find a mentor? - rashoodkhan
Hey,<p>I have read in various answers by highly influential programmers is to find a mentor. I wanna know how to find a mentor? I&#x27;m interested in mostly developing web applications (both front-end and back-end).<p>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.<p>Thanks!
======
bphogan
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.

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

~~~
bphogan
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.

~~~
click170
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

~~~
bphogan
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.

------
datashovel
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.

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

The map is not the territory so to speak.

------
GeneralMayhem
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.

~~~
alexchamberlain
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.

------
pauljarvis
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.

------
fma
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.

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

------
georgespencer
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.

~~~
pgbovine
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.

~~~
larrys
"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.

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

~~~
scobar
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.

~~~
plinkplonk
(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)

~~~
scobar
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...](http://www.amazon.com/lm/R2EN4JTQOCHNBA/ref=cm_lm_pthnk_view?ie=UTF8&lm_bb=)).
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.

------
DenisM
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.

------
Brajeshwar
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/](http://jaaga.in/)

2\. [https://hasgeek.com/](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](https://news.ycombinator.com/item?id=9396694)

~~~
noufalibrahim
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/](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/](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.

------
argklm
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...

~~~
sharpercoder
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.

------
jseliger
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...](http://jakeseliger.com/2010/10/02/how-to-get-your-
professors%E2%80%99-attention-or-how-to-get-the-coaching-and-mentorship-you-
need)

------
AstroChimpHam
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.

------
arihant
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.

~~~
mooreds
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?

------
buremba
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.

------
Rogerh91
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...](http://steveblank.com/2013/08/12/how-to-get-meetings-
with-people-too-busy-to-see-you/)

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

------
valhallarecords
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.

------
orionblastar
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.

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

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

------
djloche
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.

------
Havoc
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.

~~~
j_lev
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.

~~~
Havoc
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...

------
gaze
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.

------
Wintamute
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.

------
thegreatpeter
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.

~~~
halosghost
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. :)

------
rhgraysonii
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.

------
davidwparker
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/](https://www.uvize.com/)

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

------
jonathaneunice
I work with Codementor
([https://www.codementor.io/](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.

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

For example, in Php we have
[http://phpmentoring.org/](http://phpmentoring.org/)

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

------
atarian
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.

------
gshrikant
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.

------
walterbell
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.

------
hidflect
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.

------
nopuremore
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.

------
avemuri
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.

------
zeeshanm
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.

------
mrmondo
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](http://exercism.io)

------
lmg643
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.

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

------
JesseAldridge
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.

------
k__
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.

------
crististm
Short answer: serendipity.

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

~~~
jonathaneunice
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.

~~~
crististm
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.

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

If so, how?

Good luck.

------
mwfunk
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.

~~~
rashoodkhan
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.

------
danellis
codementor.io

------
sockgrant
ITT: No one offering to mentor.

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

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

~~~
sockgrant
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.

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

You're criticizing the wrong people.

------
mydpy
CodeMentor.io

