Saturday, December 11, 2010

The answer to "Will you mentor me?" is

No.

Thanks for understanding.

Ok that was the nutshell version. If that answers your question, that's great.

The more detailed answer is "No, I won't mentor you,but in this blog entry I will tell you what to do instead, to get where you want to go". And I can reply with the url to this post the next time someone requests mentoring.

I once wrote a comment on Hacker News about what *I* learned about ending up with awesome mentors. Here it is, slightly edited so it reads a little better.

(The OP asked) Recently I have tried approaching a few good developers through their blogs about various matters including advice on how to go about some projects I'm undertaking but I am surprised at the unfriendly responses I have received. Maybe I have been going about it the wrong way but it got me thinking; Shouldn't the guys whose work we look up to be keen on what some of us young aspiring developers have to contribute to the community? I mean sure, we don't have the experience or skills some of these guys have(yet) but we still have some ideas that are viable with the right technical skills to back them. If any of them want to reach out and help nurture some potential talent, it may very well benefit all them in the end, whether financially or in terms of new ideas and experiences.

I commented thus

I have some experience in this, so let me try to explain a couple of things that I learned in the "school of hard knocks".

Once upon a time I was in a situation where I thought I could contribute to something one of the best programmers in the world was working on so I sent an email (I got the address from his webpage) and said something to the effect of " you say on this webpage you need this code and I have been working on something similair in my spare time and I could write the rest for you over the next few months because I am interested in what you are doing" and I got a 2 line reply which said (paraphrased) " A lot of people write to me saying they'll do this , but I've never seen any code yet so I am a little skeptical. Don't take it personally. Thanks. bye.".

So in the next email (sent a minute after I received his reply) I sent him a zipped file of code with an explanation that "this is what I've done so far which is about 70% of what you want" and he immediately replied saying "Whoa you are serious. That is refreshing .. ' and opened up completely, giving me a lot of useful feedback and very specific advice. He is a (very valued) mentor to this day.

Another time, I was reading a paper from a (very famous) professor at Stanford, and I thought I could fill in some gaps in that paper so I wrote a "You know your paper on X could be expanded to give results Y and Z. I could use the resulting code in my present project. Would you be interested in seeing the expanded results or code" email and I got a very dismissive one line email along he lines of " That is an old paper and incomplete in certain respects, Thanks".

So a few days later, I sent along a detailed algorithm that expanded his idea, with a formal proof of correctness and a code implementation and he suddenly switched to a more expansive mode, sending friendly emails with long and detailed corrections and ideas for me to explore.

Now I am not in the league of the above two gentlemen, but perhaps because I work in AI and Robotics in India,which isn't too common, I receive frequent emails to the effect of "please mentor me", often from students. I receive too many of these emails to answer any in any detail, but if I ever get an email with "I am interested in AI/ Robotics. This is what I've done so far. Here is the code. I am stuck at point X. I tried A, B, C nothing worked. What you wrote at [url] suggests you may be the right person to ask. can you help?" I would pay much more attention than to a "please mentor me" email.

In other words, when you asks for a busy person's time for "mentorship" or "advice" or whatever, show (a) you are serious and have gone as far as you can by yourself (b) have taken concrete steps to address whatever your needs are and (optionally. but especially with code related efforts)(c) how helping you could benefit them/their project.

Good developers are very busy and have so much stuff happening in their lives and more work than they could ever hope to complete that they really don't have any time to answer vague emails from some one they've never heard of before.

As an (exaggerated) analogy, think of writing an email to a famous director or movie star or rock star, saying "I have these cool ideas about directing/acting/ music. Can you mentor me/give me advice?"

I am replacing the words "app" and "technical" in your sentence below with "film" and "film making".

"if I have an idea for a film that I want to develop, but my film making skills limit me, it would be nice to have people to bounce the idea off and have it implemented. "(so .. please mentor me/give me advice/make this film for me).

Do you think a top grade director (say Spielberg) would respond to this?

The fact that you at least got a 2 line response shows that the developers you wrote to are much nicer than you may think. They care enough not to completely dismiss your email, though they receive dozens of similar emails a week.

As someone else advised you on this thread, just roll up your sleeves and get to work. If your work is good enough, you'll get all the "mentoring" you'll need. "Mentoring" from the best people in your field is a very rare and precious resource and like anything else in life that is precious, should be earned.

My 2 cents. Fwiw. YMMV.

That says most of what I want to say.

Some minor points now, addressing some points raised in the latest emails.

If you claim to be "very passionate about X" but have never done anything concrete in X I find it difficult to take you seriously. People who are really passionate about anything don't wait for "leaders" or "mentors" before doing *concrete* work in the area of their passion, however limited. Specifically wrt to programming/machine learning etc in the days of the internet and with sites like Amazon or the MIT OCW you have no limits except those you impose on yourself.

I hate to sound all zen master-ey but in my experience, it is doing the work that teaches you what you need to do next. Walking the path reveals more of the map. All the mentoring a truly devoted student needs is an occasional nudge here or an occasional brief warning there. Working with uncertainty is part of the learning. Waiting for mentorship/leadership/"community"[1]/ whatever to start working is a flaw that guarantees you will never achieve anything worthwhile.

Ok pseudo-zen-master-mode off. More prosaic version - "shut up and code". Or make a movie on your webcam, Or write that novel. Whatever. Your *work* will, in time, bring you all the mentoring and community or whatever else you need.

As always My 2 cents. Fwiw. YMMV. Have a nice day.

[1] For some reason Bangalore is crawling with people who first want to form a community and then start learning/working/whatever. These efforts almost invariably peter out uselessly. First do the work. Then if you feel like "communing" talk to others who are also working hard.Please read this , sent to me by my friend Prakash Swaminathan.

Interesting. Asking for mentoring is free, but being really committed isn't: you devote time (and probably a lot of it). If you ask for mentoring while at the same time showing you can offer something new or are really committed, the perspective is different. You are not a wannabe, you are there and just need some small course adjustment.

Interesting post. I'm actually surprised that people would approach you unknown to you to ask for mentorship. Almost all the mentorship I've received in my life has been through personal introduction. I agree that if it's a blind intro, the Mentee should have to prove himself, otherwise it will probably end up being a big waste of time for the Mentor.

I feel you are forgetting how it is to be on the other side of the barricade. Say you're a smart person but don't have a mentor that knows the domain you're interested in.What are the odds that you'll reinvent a lot of well known things that somebody already did? I'd say very high. Which is a consequence of the lack of culture in that particular domain. And yes, the culture can and should be acquired, but it takes a long time even when taking the "right" paths. It takes forever unless you have good guidance. And unless you're in the right place, you're doomed. So I'd be more careful into dismissing aspiring researchers / coders emails.

Disclaimer: I am biased by the way I see research unfolding in the machine learning community. I am lucky to have a good advisor that helps me immensely in figuring out dead ends fast, but I remember how much time I lost before that.

And thanks for writing this. May be I should point to this url when I get those "I found your web page. Should I apply to university a, b or c ? What are my chances of getting into university c ? I have strong interest in VLSI, genetic algorithms and parallel processing. It is very important that you guide me..."

"For some reason Bangalore is crawling with people who first want to form a community and then start learning/working/whatever. These efforts almost invariably peter out uselessly. First do the work. Then if you feel like "communing" talk to others who are also working hard."

True. Before "mentoring", people who can mentor want to see some "proof" to be sure it is worth their time. They might be looking for someone like you, but the onus of proving that you are that "someone" is in the "doing" and "showing". Great post.

If you claim to be "very passionate about X" but have never done anything concrete in X I find it difficult to take you seriously. People who are really passionate about anything don't wait for "leaders" or "mentors" before doing *concrete* work in the area of their passion, however limited.

Your advice on how to find a mentor is spot on -- wish someone had given me this advice 20 years ago. I've worked in both Hollywood and high-tech. Finding a mentor is essential for young executives that want to rise to the top of their careers and reach their full professional potential. The very best mentors are the ones that find YOU. The best way to attract a mentor is to prove you add value.

Great post. I learned this when I read about how Steve Vai ended up on Frank Zappa's band. As a teenager, Steve transcribed many of Frank's songs and mailed it to him. Zappa was impressed and hired him as a transcriber.

Ravi, That's the best advise I have ever received. Thank You. I have another question for you - How did you quit the enterprise software world and reach where you are? I mean, after 10 hours of work, 7 hours of sleep and another few hours of travel, chores..etc, I hardly find time to study any thing. How did you manage your time ?

"I mean, after 10 hours of work, 7 hours of sleep and another few hours of travel, chores..etc, I hardly find time to study any thing"

That still leaves you 16 hours of potential study on the weekends!

More seriously *everyone* has the same 24 hours a day. True for high achievers like Linus Torvalds and Steve jobs.

True for me. True for every one you ever met. True for you. You have to figure out what you want and how much time to devote to that effort and where to squeeze out your time from. There is no magic formula :-)