Last week my eleven-year-old son’s yahoo mail account was hacked. Ben’s on Facebook and doesn’t e-mail very much, so fortunately his list of contacts was small. Because he doesn’t have any bank accounts or credit cards, I guess I’ve procrastinated explaining to him the importance of having a reasonably complex password you change often
If you’re a parent who hasn’t done this yet. Do it now. Believe me, you do not ever want to see to see the look on an eleven year old boy’s face when he discovers his identity attached to thousands of e-mails offering to introduce people around the world to his “beautiful lady friends.”
One thing I discovered this week, however, is that I am a significantly different parent after three and a half months of coding lessons.
If this had happened last year, I probably would have shared my son’s sudden picture of the world as a cryptic, chaotic place filled with evil geniuses programming bots that inexplicably burrow their way into your private, vulnerable data. I would have soldered up the parental controls, because that’s all I would have known to do, and I probably would have done everything I could to protect my son’s innocence and to continue doing it for as long as possible.
But because of our family Code Year pledge, I decided, instead, this would be a good week to review what we’d learned about randomization programs. From what we already knew, it was easy to see how someone with just elementary programming skills could spout out enough random letters or numbers in under an hour to crack the accounts of people who still believed that they could easily protect their data with a simple memorable word or a birthdate.
It was also easy to imagine how some of these simple hacking bots were being created by teenagers in poorer countries, taking advantage of the fact that they’re learning core-programming skills that are not currently being taught as a part of a standard high school education in richer countries.
I’m not talking about skills fundamental to a computer science degree. I’m talking about skills so basic they can be learned by a middle aged mother and her eleven year old.
I didn’t have to go past week three, conditionals, to find a simple randomization project we could adapt to create our own superSecurePasswordCreatorBot.
We used the dice-throwing project. This elementary program throws a virtual set of dice to create a random score. With just a few more lines of code, we could replace the numbers on each side of the die with six meaningful words and six meaningful double digits. Call the program and we have a randomized, but memorable password that can be changed weekly. Add a third die, and we have a SuperDooperSecurePasswordCreator. As Ben’s knowledge of Object Oriented Programming develops we can continue working on this so that we can easily and automatically store our passwords for easy retrieval.
The important thing at this moment, however, is not so much creating an impenetrable password in a family war against an army of alien grifter bots. What’s important is that we’re engaged in a productive learning curve, not huddling together into some increasingly tiny information gated community.
Now I’m wondering if in protecting my son’s “innocence,” what I really would have been protecting was his ignorance, and mine.
We’ve grown up in a society that thinks that teaching people how to use software is digital literacy. But in the three months since I’ve started learning core-programming skills, I am being hit with the full on obvious truth that this is pretty much the same as if we were teaching people how to read without teaching them how to write.
Computers monitor and manage every aspect of our civilization. We would never make math something that people only started learning in university, if they showed an interest. Why are we doing this with computer science?
How is this different from the days where monks wrote and priests read from illuminated texts? While the masses listened enthralled.
Our progress was never dependent on how well we memorized or used the illuminated text. It was always dependent on how well we understood that text and used it to illuminate the world around us.
In the same way, our progress as a civilization is not dependent on how well we use, or even how well we make software. It’s dependent on how well we understand how it is made and how this computational thinking helps us understand the world we live in.
That’s the password to the next level.