After years of advocating, cheering, lobbying, supporting, and celebrating computer programming, we are finally making progress. The most recent statistics from code.org show that more than 40% of US schools offer computer programming, up from 10% just 3 years ago. And programming is as popular as ever: 91% of parents want their kids to learn to code. With all that success, we should be doing celebrating! Sometimes I feel like turning cartwheels.
But there is something troubling me. I’m worried that we are doing it wrong, and that we might somehow end up with a world where everyone hates coding. It has happened before; take math for example.
Once upon a time, mathematics was a specialty field, the domain of scientists, philosophers, and other enlightened individuals. Then the industrial revolution happened, society was mechanized, and educators realized that math skills are important for a productive workforce. Schools started drilling kids in arithmetic. Pupils were lectured through algebra and trigonometry. Standardized tests enforced an understanding of calculus.
Two things happened. First, everyone with a basic education learned some math. They had no choice. Second, most people decided they hate math. In a recent study, 40% of people proclaimed a hatred for math, more than twice as many as any other subject.
Why did this happen with math, and how can we avoid this fate for computer programming?
One theory comes from a mathematician and educator named Paul Lockhart, who wrote a piece in 2008 called “A Mathematician’s Lament.” In the impassioned language that can only be found in the literary category of “laments,” Mr. Lockhart argues that all the fun and curiosity has been beaten out of math education, replaced by an unending sequence of formulas to memorize. Math is artistic, imaginative, and interesting, claims the author, although you would never know it by speaking with the millions of students who are forced to learn by rote. No wonder so many find math boring and inapplicable.
I worry that the same thing can happen with computer programming, which is after all a near cousin to mathematics. Computer science is filled with difficult concepts, meticulous details, and abstract ideas. Many a student (me included) has decided against a computer science degree while sitting in a college lecture hall while a professor drones on about something unintelligible. If CS becomes the rule and everyone is required to learn it, I can see a scenario where this happens on a huge scale.
Not to get overly squishy, I think the core issue here is love. As in, a teacher needs to care about and connect with the learners. As the adage goes, “people don’t care how much you know until they know how much you care.” But the love goes beyond that – to be effective as a teacher, you have to care deeply about the subject, inspiring others to want to dig in. Think about Robin Williams in Dead Poet’s Society, or Richard Dreyfuss in Mr. Holland’s Opus.
You don’t always see that kind of passion among math teachers (there are exceptions). Can we find it for computer programming? Maybe the reason people end up hating math is because their teachers don’t love it. Hopefully the same thing will not happen with computer science.
In the meantime, let’s encourage young people to use their tech skills to build something awesome, something they created out of their own imagination. Let’s cheer them on as they struggle through the error messages, endless google searches, and poring over documentation. Let’s mentor them along the difficult but rewarding road of self-learning, and let’s point out that the same skills will help them in school and in life. And when they finally get their code working and they thrust their hands into the air and shout, let’s celebrate with them.