From what I saw in high school and college, the biggest factor in determining whether someone stayed with CS was the quality of the first class in CS. I had a kickass high school CS teacher and he got me off to a great start. In college, some of the 100 level professors were shit, and as a result I knew of a lot of people who decided CS was not for them.
I think improving high school CS classes will make a big impact on students going into the profession.
I think we as professional developers could probably help a lot by volunteering at schools to help give kids exposure to the practical applications of Computer Science, which I think it's far more compelling than just trudging through textbooks. I also think that could give kids access to internships and mentors they wouldn't normally have.
I agree with you 100%. As a former teacher and now professional programmer and volunteer tutor, I have some advice for anyone interested in getting involved: Just show up.
Go to the front desk of the nearest high school and explain you are interested in volunteering as a tutor. They will be very confused and ask what group you are with. They will want to know who you expect to sign off so you can get your "service credits". Just smile and explain again that you are simply interested in volunteering as a tutor. Ask if there is a math, physics, or chemistry teacher you could speak to. Such faculty are usually technical enough that they will at least understand the value of what you are offering. Expect to have to wait and put in a great deal of work before you can even start. Expect to fill out a "CORI" form to check for criminal background. Expect every new person you encounter to be somewhat baffled by the fact that you are not with a group. Expect some to think you are some kind of auditor and be very wary of you. And then, when you are finally sanctioned and scheduled for an afternoon or two a week, expect absolutely no students to show up. Don't quit. After three weeks, if kids still aren't showing up... don't worry, that's normal. Somewhere around a month and a half in, you will be normal enough that you may get some takers. But still you will have to be very outgoing and sell the free service you are offering. Eventually, if you are absolutely consistent, you can get a core group of kids that work with you every time, and it's a hoot.
I think improving high school CS classes will make a big impact on students going into the profession.
I think we as professional developers could probably help a lot by volunteering at schools to help give kids exposure to the practical applications of Computer Science, which I think it's far more compelling than just trudging through textbooks. I also think that could give kids access to internships and mentors they wouldn't normally have.