Understanding The Password

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.



4 responses to “Understanding The Password

  1. mctopherganesh

    This was beautifully written. I agree with you totally. I think you handled that super well not that what I think matters. You have reinvented parenting in our era.

  2. Of course what you think matters! I don’t know about reinventing parenting. I think I’m just keeping my eyes open. It’s inevitable that programming will start being taught earlier. But sooner that starts happening the better. Thanks for reading.

  3. Does your password generator include special characters and other such tidbits because alphanumeric is not good enough anymore

    • Probably best to just add those in if you see fit. But the point of the generator is to concatenate memorable meaningful strings. So, I’m not sure I’d put them in.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s