Most people see computer programming as a kind of black art, something only the elect -- the true geeks -- can master.
Everything else related to computers has rapidly gotten easier over time. Think about the software and computers (tablets, phones) that you used ten or twenty years ago. It’s not the same, is it? Things get easier to learn and use...except coding. Why is that, do you suppose?
In fact, when I went to college, in 1984, the systems for teaching the subject were almost exactly as they are today. The big innovation since then has been graphical systems -- like Scratch, or Hour of Code -- to teach the concepts, using Lego-like blocks that can be assembled to build a sort of program. These systems give students a bit of a leg up with the concepts, but it doesn’t help much when you move on to real coding. There’s still a big hump to get over.
The great majority of people who try to learn programming end up discouraged. Imagine a young person buckling down, going to a class, doing homework, working hard. At first they do fine. But once they start trying to write their own programs, it seems to get harder and harder. They reach a point where it seems hopeless, but they don’t give up. They try harder still, hoping a light will shine through the gathering clouds. But it’s no good. At last, they throw up their hands and admit, “I’m just not cut out for this.”
I’ve seen that too many times to count.
A great many kids, and especially those who are not white or not male, end up believing that this particular goal is out of reach -- even though, if they could get over the hump, their economic prospects might be improved.
In addition to the classes, there are online systems for learning. These weren’t around when I was in college, but unfortunately, they don’t contribute much to the problem. Despite talking to countless people, programmers, software developers, students, and others, I’ve never met anyone who has learned to program primarily from one of those systems. See here for some ideas about the causes of these issues.
So what’s happening? Is programming really that hard to learn? Blackbird Code was founded in 2015 to answer this question.
Our first pilot class was at Arleta Middle School in 2018 (taught by a member of our staff, a biology teacher we had trained to teach programming), and after a month or two, I had the opportunity to watch the class. This was not a TAG course or anything. It took the teacher a couple minutes to get the kids to settle down so the class could get started.
They did fine; in fact, they seemed to be enjoying themselves. I had been keeping a close eye on their progress indicators, which looked good. But when the teacher announced a break (it was 2-hour class) and most of the students stayed in their seats to keep programming, I was dumbfounded. I just sat there, staring at the kids happily working away, laughing and eating potato chips.
In the course of a semester, most of the students learned enough coding to write their own animated games, with maybe a little help. Just to give context: If there had ever been a middle-school class that taught real, text-based programming with that degree of success before this, I don’t know anything about it. Middle-school coding education is in its infancy; every other coding class and online platform for middle school uses only graphical tools to teach, without the actual syntax that makes programming so challenging, fun and useful.
Our journey had, and has, a long way to go, but I, for one, had something I had come a long way to find: proof that programming is not that hard to learn after all.