Intern Training - Best Approach?

c#, sql-server

Solution

Some of the best experience I've had with this (from both perspectives) is a 2-fold approach.

First - Product Training. Show the new developer what the product that he'll be working on is and what it does from an end user perspective. It helps to build context to the code that is under the hood. This is one thing that is usually overlooked a lot; however, helps immensely since it also helps the new dev be more confident on testing the code he or she is working on instead of just stumbling through the code.

Second - Pair programming / Shadowing / Mentoring. Having the developer work with a more veteran person in a pair programming situation with a slight mentoring aspect. This will help gauge the developer's true skillset and provide corrective action to the team's habits early. It also provides a way for them to learn and not worry about interrupting veterans with questions and what not that way.

Once that's done, start feeding the new person smaller tasks or easier bugs and build up from there.

Problem

We have an intern starting next week. He has a Computer Science degree but no real development experience in .NET or SQL Server. We'd like to get him to the point where he is at least semi-productive in C# and SQL Server. What suggestions might any of you have, who have gone through this, regarding how best to starting training him in C# and SQL Server? I want to make this a good experience for him and for us.

Original source