It's spring and as we all know when spring comes young people get one thing on their minds - where are they going to work for the summer. OK maybe that is not at the forefront of every student's mind. There are some who want to take the summer off and party. Others will wait until the last minute hoping to get lucky where depending on their attitude getting lucky means getting a job at the last minute or telling the 'rents that there are no jobs available.
Still I've been getting email and calls from high school students looking for computer jobs for the summer. When I was in the classroom I would also get calls from companies looking to hire as well. Over the years I was able to place some top students in some summer jobs/internships that were good for both the student and the company.
It is popular to claim that taking a high school computer science course or two does not prepare a student for a real job writing code or a related area. And there is truth there. There is no question that taking a HS CS course does not qualify one as an experienced developer. A student who has taken one or two computer sciences course in college is similarly unprepared. But with the advantage of maturity the college student is likely to be considered for a summer job or internship.
In many cases I believe some high school students are ready for entry level internships if not full-time jobs. Maturity is a major factor but just as important is the level of their learning. Note I said learning not the teaching they have gone through. While the level of teaching is very important what matters more is how much of what the teacher was trying to teach the student was able to internalize. In some cases I have seen students go way beyond what is taught in class and that is a quality employers should be looking for.
So while many high school students are not ready to work in industry others are. What are they ready for? Testing jobs are great. Generally they involve running scripts and not a lot of real coding. These can be very educational jobs though. Other testing jobs that involve writing test code may also be appropriate for students. Students are going to try things different than the professional developers would and that often highlights problems that would otherwise be missed. Besides if your documentation works for high school students it will probably work for professionals who have greater vocabulary and reading skills. Sometimes, especially in smaller companies, very skilled students may actually be appropriate for small but real development projects, project maintenance (great learning doing that let me tell you) or other things one might not assume they are ready for. The key to making that work is good support and mentoring though.
These jobs are all hard to find though. I talked about the TechApprentice Program is a seven-week internship program for high school seniors and juniors in Boston and the Metro Boston area a week ago. Those sorts of programs are great but localized and always in need of more company support.
Obviously there is benefit to students in these jobs but what's in it for the companies? Often lower priced help during summer months when a lot of people take vacations. But it is also a chance for them to get a good look at potential future employees. Summer interns often make the best full-time employees after graduation. Plus there is the chance to help develop people and grow the number of skilled workers. It's an investment in the future.
If you are a student looking to enter the IT/CS field it is worth trying to find a summer internship even while still in high school. If you are a company looking to grow and to contribute to the community summer internships may be more in your advantage than you think. Try it - you may like it.
BTW Microsoft has limited high school internships. They are currently just in the Redmond WA area (as far as I know) and limited to students in that area but they do exist.