tags:

views:

918

answers:

14

I need a mentor, that shows me the forgotten art of programming. I'm after the 10x productivity factor. What social skills or tricks to use, to capture a mentor?

+3  A: 

IRC.

Or just look around where you work. They're around somewhere.

Alex Fort
+2  A: 

Good luck with that, I have yet to find one in 15 years of programming. Best to look for inspiration within. Besides, no one is going to give you that 10x boost, either you will love what you are doing and find it or not.

Jeff
+3  A: 

I don't think you need any "tricks". Just take a look at your co-workers and associates, identify the ones that have the spark, and talk to them about how they solve problems quickly.

And read, read, read. The more you know about programming, the faster you'll be at finding a simple solution to something. Similarly, learning more languages is always helpful.

Mark Bessey
+4  A: 

If you don't ask, you'll never know. Find a experienced programmer and ask them to guide you.

Ed Brown
+5  A: 

One option is MentorNet:

MentorNet is the award-winning nonprofit e-mentoring network that positively affects the retention and success of those in engineering, science and mathematics, particularly but not exclusively women and others underrepresented in these fields. Founded in 1997, MentorNet provides highly motivated protégés from many of the world's top colleges and universities with positive, one-on-one, email-based mentoring relationships with mentors from industry, government, and higher education. In addition, the MentorNet Community provides opportunities to connect with others from around the world who are interested in diversifying engineering and science.

Craig Stuntz
strange page +1
Hernán Eche
A: 

I'll tell you what worked for me... bury your pride and suck up to the smartest guy in your department.

When I first started I had a coworker who was brilliant. He was also a complete jerk. I put up with his abuse for three years, until he moved on (to Microsoft natch) but in the interim, I became his "protege" and everybody knew it. When he left, I slid right into his spot.

David Hill
A: 

Outside the workplace, or tight social groups, my impression is that a classic 'mentor' is hard to come by - the days of dedicating ones life to training under a master are somewhat lost.

Depending on how much of a 'cold start' you're launching from, you'll likely need to read a lot to familiarize yourself with one or two languages (maybe take a course?), and then I'd suggest getting involved with the Open Source (OSS) community. There, you'll be exposed to the full sourcecode of real, working products, that you can compile, run, play with, test, debug, and eventually contribute to - maybe little tweaks at first, but you'll soon find your feet.

I guess my ultimate answer is - the OSS community can be your 'mentor'.

Dan
+6  A: 

Don't look for a mentor. Look for people whom you can respect and whom you can be a friend with for a mutually benefiting situation.

Some people dislike the idea of having a dependent leech whom is a constant pain.

Chances are if you have a geek friend whom is like this, they will without question pour parts of their knowledge your way when they see a good opportunity with little resistance. Just don't be afraid to ask. Be honest when you don't know.

( Just try not to be too daft about it, the biggest frustration is incompetence, and that's everywhere, there are sites dedicated to it )

Kent Fredric
"Don't look for a mentor. Look for people whom you can respect and whom you can be a friend with for a mutually benefiting situation." Isn't that definition of a mentor? Mentoring isn't a one way flow of benefits. Mentors get a lot out of the exchange as well.
Alex Baranosky
+26  A: 

Mentorship on programming is overated.

You should just mentor yourself. When you're doing computer science in the university there's a point where teachers can't teach you anymore, no better than you can teach yourself anyway.

The thing is, in order to learn, you need basically experience and to get experience you need to do things that are useful. This is not math therefore theory can only work for you to a certain extent.

First: have interest, try to learn everything you can by reading other opinions, for example add some of this blogs to your usual reading, they won't teach specific things but will give you useful advices that you will remember when you need them, you won't remember the exact thing but you will think "I know I read something about this and there was a really cool method for doing this".

Second: Program on your spare time. Find a project you like (an obtainable project not some unreachable objective like programming the new Quake 4) and do it until you finish it. Practice, practice and practice, a lot of problems arise when you make even the simplest programs. Experience let you recognice patterns and adapt them to new situations. If you've done something similar in the past then you'll do the new thing twice faster.

Third: Share, comment and try to explain things. One of the best things you can do is start your own programming blog. Try to explain others how to do things, you'll find it's a lot harder than you think. You may think you know how to do something but when you try to explain how it's done and why, you end up doing a lot of research and actually learning how and why is done on the process.

Finally: You will start developing your own thoughts an opinions that diverge the usual thinking or the opinions of the rest of the people. Share them. Create a blog or whatever and express your new opinions. You'll get feedback and will continue learning for it. For example, I read both Joel and Jeff blogs, sometimes I agree and sometimes I don't. When I don't, I either post to say why not or blog about it and in the process I always learn something, maybe through comments I end up changing my mind and that too is a good thing.

Jorge Córdoba
I think it's important to have a mentor ... not sure if I would use that exact term. While it is important to learn on your own, let's face it ... some times you get stuck. It saves a lot of time and energy to be able to reach out and get some help.
mattruma
These are all good comments, but really don't address how to find a mentor. Doing all of these things AND having someone available to bounce ideas off and work with is nothing but a net gain.
Robert P
Oh, what I meant is that you don't really need one and only one physical mentor. Actually I have a lot of them, they're called Joel Spolsky, Jeff Adwood, Jon Skeet, Joe Duffy or Herb Sutter to quote a few...
Jorge Córdoba
As a self-taught coder, I couldn't agree more. Learn what you can from olleagues you respect, challengesprojects throw out, and let the internet fill in the rest.
annakata
You need a mentor who can tell you what you are doing wrong even after years of self-taught work exprience on the internet. software changes fast and if you miss out a few things, you can end up wasting a lot of time and effort reinventing wheels. A mentor can just give you a clear 2-minute explanation of where you are failing and correct the situation in a 2-line email or a few precise links to pages. Mentors cannot be replaced by machines. AI has not evolved that much. Even Google is a universe by now.
namespaceform
+8  A: 

wow i really dont like most of these answers A mentor is great, you can describe a task and if he has experience you'll get many howtos and can describe something you want to do and hear the pitfalls of it.

I use SO as my mentor, as you can see i asked a lot of questions and i think maybe 50% of them are research questions and not things i am trying to implement

The best way to find one is; if you work, ask one of the top guys if they'll meet you after work and offer to buy him drinks or lunch/dinner or w/e. Alternatively you can send him a VERY SHORT email asking a VERY SPECIFIC question. I had a guy once say to me later that he didnt know what i wanted when i asked him a question. So its very important to be specific. I sent two emails to someone and the extremely specific got a reply.

If you dont work in the field, have someone introduce you to someone else, go to a place to networking with ppl or find a community online and find one of the better guys. You may need to search and PM someone specifically in that community to get help.

acidzombie24
You can email me at my [email protected], i dont check it often tho
acidzombie24
+1  A: 

go to user group meeting and be pleasant. odds are you will meet one.

Ray Tayek
A: 

Be your own mentor (and let Google/other sites help). You will find that SO, ASP.Net, Experts Exchange, DotNetRocks and many other online sites will give you most if not all of the information that you need on existing and upcoming technology. Asp.net/learn is putting out a lot of new videos to help developers answer their own questions.

Be careful with mentors (whether web based or human) as you can tend to rely on them. When you start to do this, your learning stops. Many (myself included) and been caught in the trap of looking at code for a few minutes and googling it and finding a code snippet to fix the problem. You never actually learn it then. My new rule is to spend at least 15 minutes trying to figure it out. If at 15 minutes I stop making forward progress, then I can google. If I find a code snippet, I require myself to understand it before I release it. This way you're forced to learn.

asp316
A: 

I'd suggest stepping back and thinking carefully about what specifically would you want from that mentor. Programming is a rather vast field, so refine that a bit and see if you can find a blog or two that focuses on a specific method or technology that interests you. If you can find a good blog and develop a relationship with the author, that is another way to find a mentor.

JB King
A: 

contact me any time via skype. search for user name loveencounterflow located in berlin, germany. i will gladly answer OOP, Python, programm architecture, data flow and related questions any time i feel capable. just do it.

flow