How to engage the next generation

Recently we had a conversation in the office about how to get children (the 10-15 year old set) interested in software development. There were a lot of good ideas, so I thought it would be worth sharing with everyone.

The most useful part of the discussion, and the parts everyone agreed on, did not involve a particular technology. It’s also applicable to endeavors other than software, and to other age groups.

First and foremost, there must be motivation. In this instance, an 11 year old “had heard he could write Xbox games in C#”, and that provide the spark. That won’t be everyone’s spark, but it was here. For others, the spark will be different. A few of us wrote our first programs because it was the easiest way to do our math homework. Others wrote their own website. Every one of us got into this at first because we wanted the machine to do something it didn’t do. In order to get the machine to do something new, we needed to learn to create software for it.

Once a person has that motivation, finding the right tool becomes easier. That’s going to be a combination of the goal, and the age of the person involved. The most important point is to find some way to get a success early on. The longer someone goes without seeing progress, the more discouraged they will get. (ed note:  Sounds a lot like customers).

Once motivation, and some tools are found, build something. Build something small so that the person gets that satisfaction early in the process.  Once they start building small things, they’re on their way. Then, start going after larger projects.

There are a lot of options for tools, which to pick will depend on the student’s age and their goal.  Any of these would be a good choice (for the right person):

Scratch. This would be for the youngest set. One person in the office mentioned that their 6 year old had used Scratch successfully.

Alice. Alice is meant to be a very approachable environment for children to create stories and games.

Kodu.  Kodu is a visual programming language designed for creating worlds, with stories or games.

Phrogram. Phrogram is the successor to the successful Kids Programming Language (KPL). This is a little closer to a general purpose language, but still very approachable.

Lego Mindstorms. This is a mix of robotics and programming. And it’s Lego.  It’s really cool if your goal is to build a robot, and program it.

The same tools you use. Hey, why not? If they are interested in building software, and they are in their early teens, go ahead and teach them the tools you use. If they are early teens, or older, they are ready, if they are motivated.

We keep hearing that there is an upcoming shortage of talent in software. That next generation can have the same success we’ve had, if we show them how much fun it can be to make these devices do what we want. Spend some time with a motivated youngster and recapture why you started this career. Motivate and teach that next generation.

Created: 8/22/2011 9:37:28 PM

Current Projects

I create content for .NET Core. My work appears in the .NET Core documentation site. I'm primarily responsible for the section that will help you learn C#.

All of these projects are Open Source (using the Creative Commons license for content, and the MIT license for code). If you would like to contribute, visit our GitHub Repository. Or, if you have questions, comments, or ideas for improvement, please create an issue for us.

I'm also the president of Humanitarian Toolbox. We build Open Source software that supports Humanitarian Disaster Relief efforts. We'd appreciate any help you can give to our projects. Look at our GitHub home page to see a list of our current projects. See what interests you, and dive in.

Or, if you have a group of volunteers, talk to us about hosting a codeathon event.