Monday, January 07, 2013

Kids, programming, and doing more

I built Code Monster and Code Maven to get more kids interested in programming. Why is programming important?

Computers are a powerful tool. They let you do things that would be hard or impossible without them.

Trying to find a name that might be misspelled in a million names would take weeks to do by hand, but takes mere moments with a computer program. Computers can run calculations and transformations of data in seconds that would be impossible to do yourself in any amount of time. People can only keep about seven things in their mind at once; computers excel at looking at millions of pieces of data and discovering correlations in them.

Being able to fully use a computer requires programming. If you can program, you can do things others can't. You can do things faster, you can do things that otherwise would be impossible. You are more powerful.

Looking two decades out, when my kids are grown and well into their careers, I expect people who can fully use computers will have a major force multiplier. A blend of computer science and another field -- medicine, microbiology, genetics, economics, astronomy, journalism, business, almost anything -- will enable you to do things others in that field can't.

Already you can see this. Breakthroughs in genetics came from a collaboration between computer science and geneticists working to create new algorithms for massive scale approximate string matching. During the 2012 elections, Nate Silver redefined what it meant to be a journalist (and attracted huge amounts of traffic) by combining computing and large amounts of polling data in a new way. Astronomy is becoming a field of big data, computers analyzing huge amounts of data from a worldwide network of telescopes, pulling out promising patterns, then having humans look over the candidates to find new discoveries. Robotic probes and the massive data streams they produce are not only taking over space exploration, but also making inroads on sea exploration, marine biology, and climatology as well. Already, if you can program, you can do things others cannot, find things others cannot.

Over the coming years, the collaboration between computers and machine is only going to grow. Computers will do what they are good at, large scale data processing, computation, and analysis. Humans will do what they are good at, finding patterns, intuiting promising paths forward despite noise and missing data, and collaborative problem solving. Those who can fully use computers, and especially those who can program computers, will be more productive. Computers are a powerful tool for those who can wield it.

Sadly, many kids today think of programming as hard. As not fun. As not for them. The problem is particularly acute for girls, leading to the awful fact that only 14% of the computer science degrees in the US are awarded to women. So many kids not getting a chance to get excited about programming is not just unfortunate, it's deeply harmful, for their future and for ours.

Code Monster and Code Maven from Crunchzilla are designed to make programming easy. Make it fun. Make programming for everyone. In the couple months since launch, they have been used in schools and been getting rave reviews from both girls and boys. One girl "got totally into it" and "when she came up for air", she asked her parents, "Are there jobs you can get working with computers?" And a teacher who used this in a school told me, "A couple 6th grade girls who were not interested in programmers tore through Code Monster then started on Code Academy. It was unexpected and cool!"

If you get a chance to try your children on Code Monster or Code Maven, or you use either in a school, please let me know what you think.