About 10 years ago I learned enough javacript and html to be dangerous. Of course, the first lessons that I had were from a 16 year old high school kid in our building who wrote his own html by hand the old school way. (Unsurprisingly, we weren’t teaching that stuff in our building, he had learned it all on his own.)
From there I picked up enough knowledge to hack together a few different things. Jeff Utecht gave me enough WordPress knowledge to modify a theme and work in a database. Alan Levine’s stuff dropped me a little deeper into the web. People like Jim Groom have shown me what I can do if I manage to learn a little bit more. I’ve completed tutorials, watched videos and worked with a Raspberry Pi to pick up some Python, and a little bit of Linux, all the time being amazed at the amount of information that is out there for people who want to learn these skills.
I’ve thought a lot about coding and kids and classrooms as I’ve worked my way through this experience. Coding is becoming more central in edtech curricula in schools. Using technology is becoming a bit more “computer science” in places ranging from China, Estonia, and the UK. As far as I know, this movement has not really moved into North America in an organized way yet except for in a few places like Chicago.
Lately, I’ve started on a more linear approach. I’ve started taking a Programming for Everybody course through Coursera. This is the first MOOC I’ve signed up for and I’m enjoying it quite a bit. (I’m also enjoying seeing the net achieve some of its democratization of information potential, but that’s another story).
My strongest impression is not of coding as a difficult, arcane science. But instead, as a language with words and a grammar that lets us tell a story in a different way. The language lets you accomplish tasks any number of ways by organizing your code in different ways. For example, I wrote a small program in Python that is a script to compare two numbers. This script asks a person for a number, asks them for a second number, and then tells you which one is larger. Simple. My first attempt is here:
While this works, I did a little more reading and learned a little more about how Python works with integers, floats and strings. My second attempt at this same script looks like this:
Both of these simple scripts do the same thing. But, like telling any other story, they are organized in different ways and use words and the rules of grammar in different ways. My second attempt is a more effective, more efficient story.
Learning to code in classrooms shouldn’t be about memorizing lists of commands and functions. Instead, it should be about creating interaction, about helping kids to tell stories in new and different ways. After all, they call them programming “languages” for a reason.
Much, much more to learn.