Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In many of articles I've read, finding a mentor is often suggested. One to who would guide, teach and more. (I wouldn't know the details, I don't have one, yet.)

So, who was your mentor, if any? I have only had indirect mentors: professor at university, manager at work whom I've watched and learnt from the most.

And otherwise, Twitter has been a great place to follow the professionals and discover more about the technologies that interest me. But I still wonder how I could find one because I can sense that I might be lacking in my experience. Ideas?

share|improve this question
add comment

8 Answers

up vote 27 down vote accepted

Me

Pretty much self-taught since I was 7, the odd few people influence over the years, but generally I've always found the best teacher is experience. Nothing like a couple of decades of continual improvement, interspersed with occasionally frustrating days, that are ultimately eye-openers for the future.

These days, the internet kind of changes that - so many masters available all day, every day. Via sites like these.

My advice, choose many masters - choose StackExchange.

share|improve this answer
2  
Oh tell me about frustrating days! –  aredkid Feb 10 '11 at 22:43
1  
Being a subjective question, I am sure there is no one correct answer, but this one others and I can really relate to... It's comforting to know that if and when this boat sinks, I won't be alone in the cold waters. –  aredkid Feb 13 '11 at 0:56
    
@aredkid: There's quite a lot of engineers onboard, someone can probably fix it if it starts to sink. If not, I'm pretty sure we all know how to bail things out. –  Orbling Feb 13 '11 at 1:40
add comment

My mentor was Frank Deutschmann, who was a developer (and eventually my manager) at the second company I worked.

I am going to go out on a limb and disagree with everyone else. I think it is incredibly valuable to have a mentor. Learning from books and lots of people is simply not the same thing. You need someone who can look at what you are doing and suggest what to change. Sure, you can get lots of good advice from lots of places. But there is simply no replacement for customized feedback that is tailored for what you, specifically, are (or aren't) doing.

Now a mentor does not replace all of those other great resources. You still need them. The relationship between a mentor and resources should be an "and", not an "or".

For instance the first concrete piece of advice that I got from mine was to read Code Complete cover to cover. As he said, "It is a tome, but you need to know everything in it and internalize it." He was right. I did need to master that book, and it would be a waste of his time to teach it to me when it was right there. But after I demonstrated willingness to learn by doing so, he was willing to point me to other things, get into useful conversations, and so on. Which was incredibly valuable for me.

share|improve this answer
    
I'm in the same situation. My former manager is a great coder and took some time to help me, understand my work and provide suggestions. I learned a great deal from him and I personally think I would never learn the same from a book. Besides techniques I learned a lot about "culture": the best way to work. This is priceless and very difficult to acquire in other way, I believe. –  Vitor Feb 11 '11 at 11:51
    
+1 full ack. So many people underestimate the true value of a mentor (probably because they never had one..). A Guru that always has a more sophisticated answer than you, that always has a better solution to a coding problem, that you feel inferior to in every aspect. I have a mentor and all we do is meet once every 3 years for a cup of coffee and call each other 1-2 times a year. Yet I fell, that I've learned more from him than anybody else. It's the desire to become as good as/better than someone you know out there that drives you. –  Dave O. Feb 11 '11 at 14:02
    
Although my answer saying "Me" and carrying on to say SE, or many mentors is the approach to take. I definitely hold immense value in having a mentor, I've had a few people over the years who have been really inspiring, more in other domains than programming, but they do have great value. I always try to take juniors under my wing and spend whole days with them trying to impart every hard won piece of information I fought for, so they get a leg up. In the past I used to teach and what is a teacher if not a mentor, most valuable job in the world. +1 –  Orbling Feb 12 '11 at 1:25
1  
... the problem is... it is down to luck getting a good mentor. Most people are not that lucky, so my answer was an "if you can't find a guru mentor, then..." –  Orbling Feb 12 '11 at 1:27
1  
Ran out of votes for today, or I'd vote up. I have learned so much from my mentor. I think it's a misunderstanding of what a mentor does: I was already reading and studying on my own, but in our discussions my mentor would challenge me on bad assumptions I'd made, push me to explain my thinking more clearly or to re-examine it for flaws, and point me at useful new ideas and ways of looking at stuff that I wouldn't necessarily have found on my own. –  testerab Feb 20 '11 at 17:16
add comment

Read books. Seriously. Pick the language you need most, e.g. Javascript.

Step 1. Nobody is going to tutor you through the kind of knowledge you will gather after reading 600 pages on JavaScript. Write code, ask questions, do examples. Congrats. You are now a beginner.
Step 2. Write lots more code using what you have learned. Write code, ask questions, find boilerplate stuff. You are now intermediate.
Step 3. Write lots more code, write big apps. Read others code, ask questions, read the language specifications, teach others. You are now advanced.
Step 4. Find out you really don't know everything you thought you did. Repeat step 2.

share|improve this answer
2  
+1 We are always at step 2, intermediate, somewhere between the useless fools we were and the ignorant imbeciles we may one day become. –  Orbling Feb 11 '11 at 0:56
add comment

Mentors don't have to be formal. If to you this professor and that manager provided some valuable help and insight, then they were mentors.

You can find a mentor in anyone willing and able to provide the help that you need at a given point in time. Actively looking for a mentor usually means that you look to improve something in your way of seeing things. If that is the case then try and find a person in whom you trust, who has enough time to provide a bit of help in your quest and whom you will be exchanging views with for a while.

Of course you don't have to have just one mentor. You could have many. Some for tiny amounts of time, others for long periods... It is all up to you (and them).

But really before you look for a mentor and find one, you must first know what you want from them. Even if that something is fuzzy, you must have a starting point.

share|improve this answer
add comment

My own solution is Open Source.

First, you will drastically increase your skills by reading their code and their discussions.

Second, you submit patches and receive professional feedback on your code from real masters.

Third, you, being a master already, will grow a professional community by publishing your cool code and giving feedback on new patches. The circle is closed.

share|improve this answer
    
+1 For mentioning the circle of education. Today's apprentices, are tomorrow's masters. -- This is the basis of education, and is what sets our species above the bar, not having to relearn everything from scratch, always starting quicker and further in than before. –  Orbling Feb 12 '11 at 1:29
add comment

Try to have plenty of social contact with all of your colleagues, not just one mentor. As a bonus the work place is more fun.

Other people's experience is really valuable, and everyone has their fortes. When stuck with a problem, asking doesn't hurt, and even if you don't get a direct answer, it can still guide you in the right direction.

Isn't this what Stack Exchange is all about? Just do the same in real life.

share|improve this answer
add comment

I had a mentor who explained a lot of C and unix thing to me back in the days, but I have to admit now that mentors in programming are good for the beginning, but for the rest, it's just learn by doing, or search by yourself.

share|improve this answer
add comment

If you really need a "human" mentor :)

My answer is additional to @Daniel Vartanov's.

Suppose you want to work on a Todo-List application in PHP.
Goto sf.net, github or similar opensource hosting site.
Interact with the developers who have already worked on it.
Take their time, make a plan and discuss it with them.
Start working on the plan & keep your mentor updated, ask them if you face any problem

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.