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.

I'm looking for a way to take my experiences (and the experiences of others), and provide a more active approach to an apprenticeship for CS college students or young developers.

It seems to me that Programmers Stack Exchange does this to some degree in a passive fashion, but have you ever seen a program that actively seeks out these individuals and gives them an opportunity to pick your brain (besides your run of the mill internship).

share|improve this question
2  
belongs on meta.. almost? –  Earlz Jul 12 '11 at 21:47
    
Awesome question. –  Jim G. Jul 12 '11 at 22:20
3  
@Earlz Almost but not quite. This question isn't about the workings of Programmers or Stack Exchange. –  Anna Lear Jul 12 '11 at 22:25
1  
Opposite question: How to find a programming mentor. I don't know if it's actually feasible, but maybe you can reverse some of the answers given there to find ways to approach people who want or need mentoring. –  Anna Lear Jul 12 '11 at 22:28
    
Perhaps grooming young programmers on facebook? –  Martin Beckett Jul 13 '11 at 2:37

8 Answers 8

up vote 11 down vote accepted

First, very cool that you're giving back. That doesn't happen enough. A few ideas:

  • Present at local user groups. Stay after to discuss, answer questions, and possibly collaborate.
  • Start a technical blog.
  • If you like a more polished published product, write a free book. Past successes include why's (poignant) guide to Ruby, Learn You a Haskell for Great Good, and Learn Python the Hard Way.
  • Volunteer at a local college or high school as a technical tutor. Check with the school to see if they require background checks, credentials, etc.
  • Start a local hackathon.
  • If you don't mind beginners, try public access media. Many public access media groups(in the US and Japan, at least) have added technology instruction to their mission. It's very hard to find qualified volunteers to teach programming.
  • If you're even more adventurous, my colleagues and I volunteer at a women's correctional facility. Technology can be a real opportunity to break into a new career and out of old habits. When you connect with someone, it's so rewarding. Priceless, really.
share|improve this answer
    
Scant, these are some amazing ideas. Thank you for taking the time to put them into bullet points here. –  Brian Reindel Jul 13 '11 at 13:30
    
I decided to accept Scant's answer because I thought it was true to the spirit of the question. There were plenty of good answers here, and I appreciate everyone's feedback. –  Brian Reindel Jul 22 '11 at 17:03
    
All in all the efforts in writing a good book is vastly larger in writing a lot of good blog entries. –  user1249 Aug 18 '12 at 10:52

For reference, I'm a CS major and I will be a sophomore this fall.

I think P.SE offers a way for students to learn about the aspects of programming that you simply can't get at school. My assignments all involve a problem statement with various requirements to make it tougher than it needs to be so that I can either learn some concept or explore a language. Here I read about real issues that programmers have and how almost everything is up to the programmer - there are no predefined limitations or specific guidelines. It's nice to see how it is in the "real world".

In school, you figure out how to rewrite your code to make it clearer and you learn to make some test cases to make sure your functions work. On P.SE, you learn about things like re-factoring and unit testing and design patterns and apply those principles to your own work.

Although this isn't a mentorship site, I'd argue that any student can learn a great deal simply by reading P.SE. I certainly did.

As for the idea of a "mentorship site," however, I'm against it. How exactly do you mentor a programmer? I think the answer is by giving them problems and the freedom to solve them, and advising them when they get stuck. An internship is basically an environment where a young programmer gets a chance to solve some problem by himself and receive help and feedback by experienced programmers.

A separate site to do this would basically be the same thing but create artificial problems to teach principles as opposed to real problems. For many people, that would almost be like school, while an internship would involve making something for the "real world" and under "real" conditions. I feel that a mentorship site would just end up being redundant since people would prefer the actual work experience to the simulated work experience.

/2cents

share|improve this answer
    
There were other ways we did it before StackOverflow-related sites... IRC rooms and usenet groups worked for me. –  FrustratedWithFormsDesigner Jul 12 '11 at 20:48
    
Thank you for that great feedback. As a point of reference, it doesn't necessarily need to be just a Web site, but that certainly could be the biggest part. –  Brian Reindel Jul 12 '11 at 20:48

Some would say that an MS or MBA is the junior programmer's "apprenticeship". Depending on the program, they'd be right; there are courses taught in design patterns, advanced framework topics, etc etc, and many of these programs are tailored for working professionals. However, the best method available to transfer knowledge about a specific area of the job is simply for senior programmers to "mentor" junior members while they work. This is similar to an "apprenticeship"; a tradesman will go to a trade school to learn the basics, then they will get a job where for the first few years of their career, they will either be looking over someone's shoulder or have someone looking over theirs. After some years of this, they undergo a test, become certified as a "master" at their trade, and are free to do what they will with their knowledge. Doctors and lawyers have similar processes; after med school, a "doctor" gets an internship and then a residency in a general field, during which they observe and are instructed by more senior doctors and learn a LOT more about medicine than they ever could in a classroom or skills lab. Then after that they either stay on in the hospital as an attending, or they go into private practice in any number of sub-fields. A lawyer first becomes a junior associate assisting the partner, then a senior associate handling minor cases on their own, then when they're making enough regular money for the firm or they become highly recognized by others in the area, they get a stake as a partner (which may be divided into junior and senior levels as well).

As programmers, there are levels of professional certification, but unlike most "artisan trades", or, at the other end of academia, doctors, lawyers, professors etc., there is no one governing body for programmers. The field is too new; people have been building houses and infrastructure, arguing legal cases and treating illness for hundreds or even thousands of years, but the field of software engineering as we know it is only about 30-40 years old. As such, we're still determining the fundamental "best ways" to do our work (and to teach it), and there's considerable room for discussion on these topics. Meanwhile, tradesmen, doctors and lawyers, though their fields are just as organic, have set down those standards of procedure decades and centuries ago, and are making only minor changes as technology allows for better ways. We can borrow, but elements of our field are very different, such as the exponential pace of technology (law is having a hard time keeping pace with the questions the online frontier is posing while the software engineers are on the cuttong edge, and medicine, despite the cool diagnostic and surgical tools being developed, could stand to invest in a few tablet computers to digitize their charts).

share|improve this answer

Does P.SE act as a mentoring site?

No - This is a Q&A site for a very specific set of questions. You'll notice the large amount of closed posts of people looking for guidance outside of that framework.

How do you find someone to mentor?

Here in the Upstate of South Carolina we have a really good tech community with active user groups that have presentations and networking, some are really specific and some more general. You can do some research and find your local group or start your own chapter if there isn't one around. Something that's been very successful are "Tech After 5" events If you were interested in starting your own just drop Phil a line from that page - nice guy I bet he'd have some pointers for you

You might also want to try local schools and see if they have any mentoring programs in place.

share|improve this answer

As a young developer, I think that if you just "put it out there" in any type of medium you find appropriate, then you would really have no problem finding some ambitious students of experience.

I, for one, would love nothing more than a weekly mentoring session with a senior developer who is willing to impart decades of experience to me.

share|improve this answer

Many colleges and universities have groups for students that may involve career mentoring opportunities. For example, where I went to college, we had a chapter of the Society for Women Engineers, Tau Beta Pi Engineering Honor Society, Engineers without Borders, and other student groups that would sponsor events where they would recruit professionals to come to evens they put on to offer their wisdom and expertise. In addition to the student groups, the School of Engineering also had their own programs such as a mentor program and various one time events that would bring in alumni and other engineers, and students were encouraged to attend of course.

If there is any sort of university near you with a computer science program, that is a great place to find young developers just starting out their career who are in need of mentoring.

share|improve this answer

You are welcome to help people out on http://www.youngwebbuilder.com, you can always contact us if you like! :)

We are always looking for talented people to share their knowledge via videos, articles or 1 to 1 support, there are plenty of opportunities that we would like to take advantage of, the more talented people like yourself that we can get on board the better.

I am the owner of the site, I am 19 myself so I cannot cover everything myself, I presume from your question you are a little older. Everyone brings their own experiences which will hopefully help a lot of young developers!

share|improve this answer
1  
Please revise your answer to be more in line with the guidelines at programmers.stackexchange.com/questions/how-to-answer. –  DeveloperDon Aug 25 '12 at 5:56

As a person getting into programming, having taken many tutorials but having trouble turning that little bit of knowledge into applicable use, I've long dreamed of a site where people like me can get matched up with mentors like you. The beginners could ask questions and help the mentor work on building a project by receiving mini tasks and watching a whole project come to fruition.

Perhaps you could start such a service? I'll be your first member!

share|improve this answer
    
Please take a look at programmers.stackexchange.com/questions/how-to-answer. The best answers will include either experience or research with references. –  DeveloperDon Aug 25 '12 at 5:52

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.