At my company we are thinking about starting a trainee program for software developers. We are thinking about attracting people with a CS degree, but little or no experience (or people with relevant experience but no degree).
I'm wondering what the trainee program should offer and how to structure it. We want the trainees to be real members of our development team, but use a higher level of supervision, peer review, pair programming etc. We should also provide some amount of lecturing/mentoring and provide some required reading.
I'm thinking the program should contain a plan for two years, but I'm not sure. Trainee programs are not common for software developers in my country.
So what elements would you include? How do you suggest we structure the mentoring? What principles and practices should we focus on, and how should we draw up the "curriculum"?
PS: Our current team consists of four highly skilled agile developers. We mostly do .NET and practice TDD.