On not knowing code*
It’s kind of ridiculous that I’ve made it this far without learning any programming languages. I mean, sure, that wasn’t part of the “Computer Applications” class I took in high school, and I was the kind of undergrad English major who took the required math courses and plunged with relief back into the humanities. And my graduate English program wasn’t known for its technophilia. But considering how much time I’ve spent since then among digital humanists and tech-savvy librarians and generally geeky people, you’d think I’d have picked up some coding somewhere along the line. It’s been a lacuna in my education. And I could sit down with some books and teach myself, except I learn better when I’m interacting with someone else in some way. Particularly when I don’t have a lot of spare time to learn new things in.
So when I heard about Codecademy‘s “Code Year” project, I signed myself up posthaste. Lessons in discrete chunks, on a regular schedule! Gamification! Comparing notes with also-participating friends! It sounded very doable, and it was well-timed, considering I’d just decided to learn some programming at some point in 2012.
And then a friend pointed me to Audrey Watters’ post on Codecademy, and I thought “Oh dear.” And then Julie Meloni posted about it too. Julie argues that “the key issue is pedagogy”:
Yes, the interface is shiny and the badges are neat, but no, it is not teaching you how to code. It is teaching you how to call-and-response, and is not particularly helpful in explaining why you’re responding, why they’re calling, or—most importantly—how to become a composer.
I’ve silently watched many people start the lessons, ask the right questions (“why am I doing X?”, “what happens when I do Y instead of X?”, “how does X and Z fit together?”, “how does Z compare to A?”, “wait, all I’m doing is typing what you’re telling me to type?”), and end up saying “well, I just earned 5 badges and don’t know what the heck that was all about or how it relates to [insert completely reasonable things here].”
I’ve been noticing the same thing. I mean, I’m learning something, but the key concepts are tangled up in my head with the details of JavaScript syntax, and I’m not sure why I’m doing a lot of the things the lessons walk you through. I’m typing into the box and getting “Correct!”, and I get what I’m doing in the short term, but I have my doubts about how well how well I’ll remember it in a couple of weeks.
Meanwhile, another friend, over on G+, explained functions by way of an example involving pseudocode and peanut-butter-sandwich-making instructions — which made immediate and enlightening sense to me, in part because I used to do a similar assignment with my freshman comp students, and in part because it made the larger point clear: what you’re doing, as she said, is “verbing nouns in time, checking conditions as you go.” Including conditions like “the lid of the peanut butter jar is stuck.” It comes back, as a lot of pedagogy does, to building on what the learner already knows (hello, constructivism).
So I’m still doing the Code Year lessons, but we’ll see. I might try the Rubyist Historian tutorial instead, or HacketyHack, both of which I’ve heard people speak well of. If there’s any learning-to-code resource out there that you particularly recommend, Reader, please feel free to point to it in the comments. I’ll be sure to keep you all posted.
* By the way, the title of this post is a deliberate reference to Virginia Woolf’s essay “On Not Knowing Greek.” And even though programming and Greek are two quite different things,** I kept thinking of it as I drafted this post, probably because, like Woolf with the Greeks, I’ve been confronting something simultaneously unfamiliar and foundational, and trying to connect it with what I already know.
** I actually do know Greek, though it’s been a while since I’ve used it for anything. I still have my battered Hansen & Quinn and my Middle Liddell, though. Hmm. Maybe later on this year I can work on reviving my Greek.
Thanks for posting this. I’ve been struggling with the assignments as well, and am grateful to have someone articulate the problems I’ve been experiencing. Still forging on, but also considering alternatives (and, as ever, do I have to do this NOW, while I’m trying to finish my dissertation?).