This is an open ended sort of question. There are some young people who really "get" computers and software development early. These are the kids who create their own web browser, or set up the school's web site, or create the game program that all the kids are playing during their free time. They are hacking together hardware and software to do interesting (and occasionally useful) things. They do know more than their teachers (about computer's a computer development at least) and often know far more in those areas than their parents.
These are the kids who will be the next Bill Gates, Steve Wozniak, Paul Allen or Mark Cuban. These are the kids who can take a small piece of information and make a huge difference with it. So how to we help them maximize their potential?
By "we" I mean teachers and the computer industry. And perhaps universities. In fact I mean anyone who has an interest in either furthering the field and industry of computer science or just helping young people maximize their potential. There are small, local things that we can do I think. Independent study classes in schools for example. Let a young person take school time (and get school credit) for learning something that really interests them. Sounds shocking doesn't it? In fact many schools do allow independent study programs but many put lots of obstacles in the way or don't permit them at all. Yet isn't that something schools should promote? I think so.
Likewise I'd love to see more universities develop programs that reach down to help high school and even middle schools develop their interests. Summer camps? Maybe. One on one mentors with college students? might work. Anyone have other ideas?
I think that industry can help in several ways. A lot of the resources that companies provide for professional developers are barely usable by students either because the technical level is to high or the vocabulary and/or writing style is unapproachable. So perhaps more and better documentation for beginners, students or hobbyists would be helpful. Sites like Microsoft's Coding 4 Fun are a great step in a great direction I think.
How about interesting tools (ideally free) in interesting topic areas? XNA GSE for gamers, Microsoft Robotics Studio for those who want to mix hardware and software, and the Visual Studio Express Editions for those looking for free software development tools are all examples of that sort of thing. The official version 1 release of both XNA GSE and Microsoft Robotics Studio were just made available this week BTW.
Yes those are all good starts. Is there more that industry can do? Perhaps something that concerned individuals can do? What would you recommend? I'm looking for ideas. Ideas that scale and that we can promote through school and industry partnerships or that schools or industry can do on their own. My biggest fear is that some really smart and excited kids will feel too isolated or get too frustrated when all they really need is a little encouragement or some help past minor technical sticking points and we'll just lose them. I don't want us to only have the kids with no life who are willing to give up everything to make the computer do what they want now. We need to keep the enthusiasm up while kids knowledge catches up with their intelligence and natural skills.
Please drop some ideas in the comments and lets see if we can get a brainstorming session going here. Thanks!