“Daddy, I want to learn Python,” announced my 12-year-old daughter a couple of weeks ago. Boys in her youth group know it, she said. She wanted to, too.
Say no more.
I’ve introduced my daughters to a variety of friendly programming platforms, including Kids Ruby, Hopscotch, Codea and Lua in Minecraft. They’ve sweetly tolerated my programatic prodding. This was the first direct request.
I quickly ordered two paper copies of “Learn Python the Hard Way,” by Zed A Shaw, and we’ve been walking through each lesson together — one every week.
This is not a cute cat* approach. Shaw has us using a text editor and the terminal window. That's it. (We have toyed with the colors for the terminal window to make it more fun. Shhhh!)
He has a snarky, do-what-I-say approach and admonishes you to keep going even if you don’t understand what you are doing.
“Does that work for you?” was the skeptical reaction I got, independently, from two coders I admire, one a veteran and one brand new.
Actually, this is not how I’ve learned coding. Usually I start with some project or goal in mind followed by Googling commands, muddling through and leaning heavily on knowledgeable people who were willing to help.
But that leaning-on-someone part is what’s happening here. My daughter and I are doing this in tandem, actually taking turns reading aloud and the typing the lines of code at the same time. “The Hard Way” gives us a great, structured base, and we keep talking about what’s going on — bolstered by my programming knowledge. If one of us gets stuck, we solve it together.
And it's working.
After each lesson, she freestyles a little, adding personal touches to the examples, such as our own names and ages. She’s playfully commenting her code. She’s testing ideas on the command line.
The command line!
We’ve made it through a half dozen lessons, including basic output, variable assignment, math operators and string formatting. I could certainly lose her in the weeds when we get to nested loops or private functions.
But so far, she gets it. And, best of all, we’re having fun learning together.
* Not to knock Scratch; my younger daughter, inspired by our Python lessons, is about to dive into that.