Coding isn’t easy, but it *is* learnable


I’m getting worried. On the one hand, I’m excited that there are so many campaigns to try to increase coding literacy, as I think there are a lot of reasons why it’s a good thing to learn to code. But I keep seeing campaigns — some of the really big ones—proclaim that “CODING IS EASY!”, perhaps because they think that’s the only way they can convince people to learn to code.

But coding isn’t easy. Most things aren’t easy to learn, especially at first. Especially if you’ve spent your life thinking you can’t learn them, or having other people tell you that.

A few years ago, I was teaching HTML/CSS for GirlDevelopIt, a group that teaches software development to women. Just 10 minutes into the workshop, while we were making sure that everybody had a browser set up, a student got so frustrated with her browser that she slammed her laptop shut, ran out of the room, and never attended another workshop.

I was shocked at first but soon realized that this student had been so overwhelmed with the struggle in front of her and the thought that she wasn’t as equipped as everyone else, that she thought it’d be better just to give up. I wanted to go back in time and tell her that it was okay to feel overwhelmed, that she should stay with us and stick with it, despite the frustration.

So when I find myself or another teacher telling a classroom, “Now we’ll learn X, it’s really easy, don’t worry!” I force myself to think back to that runaway student, and remember that it probably isn’t easy for many students, since it’s new to them and anything new can be overwhelmingly hard.

Why do we feel the need to tell students that it’s easy? Why do we revolve campaigns around that idea? It’s like we all feel we have to convince students something is easy to get them to learn it. But that’s not what we should be doing. We should be convincing them that despite it feeling difficult, and despite them wanting to give up, they should keep going, because even though it’s not easy, it is learnable.

Now, when I teach coding, I try to make a point to tell students about my own journey in learning a particular topic, to let them know that yes, I struggled just like them.

Last weekend, I co-taught a GirlDevelopIt Backbone workshop and a student thanked me afterwards for “telling us how you cried when you first tried to learn Backbone — that made me feel better.” And it was true—I did cry, because it was hard, and I needed a way to release the frustration that I felt. And then I dried my tears off and kept going, because I knew that eventually I’d get over the initial learning hump and I’d feel so damn good on the other side.

Now hopefully you see why I’m worried. These campaigns are telling students that “coding is easy,” and then they’re trying it, and now not only are they struggling to learn something new, but they’re feeling bad about themselves because hey, “coding is easy”, they shouldn’t be struggling.

Nobody should feel bad for struggling to learn something new. They should be commended for trying to learn something new at all, and they should be supported by people around them, and they should hear stories of how other people struggled to learn, and that should give them the confidence to keep putting in the effort themselves.

That’s very much the idea behind Khan Academy’s recent “You can learn anything” campaign, and I’m proud to see us try to spread this idea.

Coding isn’t easy, but you can learn it.