By day, Red Hat product manager Burr Sutter works to make developers more successful and productive with open source tools, technologies, and techniques. So it's no surprise that he wants to ensure his own children know how to solve technical problems as well. So when summer vacation rolled around this year, Sutter encouraged his son to complete some courses on CodeAcademy and to sign up for a couple of iD Tech Camps.
In this interview, Sutter talks about why he wants his children to know how to fix the tech tools they use every day, how he balances that with other "kid" activities, and more. Parents who are looking for a way to get their children to learn code, to fix their computers, or just learn how online communities work may pick up some tips from Sutter's experiences.
Why do you think it's important for kids and teens to learn how to code?
Information technology has become pervasive in modern life—all of my children have wanted and continue to want computers, laptops, smartphones, and tablets. I have always made the point that those items are not toys, but tools that require the user to learn something. Another way to say it is, if you can not use the tool properly (e.g fix problems when they occur) then you should just not have the tool.
Having some basic coding skills, even just HTML, allows a young person to peer into the machine, see some of the magic that makes things work as they do—giving them a much greater understanding. I believe just a slightly deeper understanding goes a long way to reducing fear/uncertainty as that uncertainty is what inhibits further exploration.
My primary motivation is that every summer, children on traditional school calendars lose a significant amount of momentum when it comes to exercising their brains. Ten weeks of "academic downtime" is way, way too much in my opinion. The greatest challenge for me, someone who is looking to set goals and monitor completion of those goals is actually being able to measure progress—even for a parent who writes code. Something like CodeAcademy makes the monitoring, the follow up, the measurement of progress way, way easier. All I have to do is say, "Hey son, show me your completion percentage and badges this week" to know if he is moving in a positive direction. It is also much more motivating when the system itself is encouraging task completion, measuring progress, giving you positive attention, etc.
He also set up some Wordpress sites on OpenShift.com recently, just to have the experience and now knows he can easily, quickly establish a web presence for any organization that would like one.
Who picked the coding languages and why?
Python is a great command line solution for automating tasks and a relatively easy language to learn on any type of Windows, Mac, or Linux computer. I suspect very few kids spend time on the command line and it is good if the average computer user is at least aware there is such a thing.
Do you think it's important to balance learning code with other "kid" activities? (indoor versus outdoor, sports, reading, etc.)
Absolutely. He also got a new skateboard (longboard) this past summer to encourage spending more time outside, it worked so well he now has a cast for a broken bone in his left wrist. :-)
In addition, since he wanted to be more of a "PC gamer," last spring he had the task of building his own PC workstation based on his own shopping list of parts. Again, my goal was to allow him to understand more of the magic—and if his "toy" has an issue (e.g. catches a virus, burns out a memory chip, trashes a hard drive) he has a much better chance of fixing it all by himself.
I am also a great advocate of reading, the challenge is the monitoring bit, you can tell if the child is flipping the pages, but without reading the book yourself and then having a conversation with the child it is much harder to know if he/she really read the materials.
Are there other options besides CodeAcademy to get kids interested in learning how to code?
My son has really enjoyed the iD Tech Camps—in one case, he spent a week building his own simple Objective-C-based iOS game with several other kids. In addition, in another session he used the Unreal Development Kit to model a 3D game. In another session the group created their own short film, complete with special effects. Each session ends with a demo event where the kids have to show off their results to the parents. I really like the real world aspects of the camps—limited resources, limited time, and a go live date for people to see your creation. I highly recommend iD Tech for the technically or creatively minded kid (or if you just wish to encourage creative technology skills).
We also spent some time with the local CocoaHeads user group which does have a couple of other teenage boys who participate. Fantastic people who care deeply about the local development community. More local user groups should encourage younger people to attend.
One of the key aspects that I wanted him to learn is that community is key—knowing how to find the answer to a question buried in a blog via Google is important, knowing how to participate in an online community forum is essential, and being able to sit down with a group of other explorers who are also trying to hack at a technical problem is critical.
Even if he does not have a future career in IT, he will be able to use those same community oriented (seeking, communicating, teamwork, contributing) skills in virtually every other important endeavor.