I remember when I wrote my first lines of code. I was a freshman in college, and I had signed up for the introductory computer science course on a whim after choosing my practical career-advancing courses: writing, chemistry, poetry, and go. I had never really thought about programming as something you could do, even though my dad was an engineer, and it’s not like my high school offered any programming courses.
At first it seemed boring, abstract.
String string = new String(“This is a string.”); – Okay, so what? But by the end of the semester, there was an exercise to code a bit of logic inside a graphical simulation of rabbit and fox populations. I finished the assignment and then added zombies. The infection spread. Chaos reigned. I was hooked. Programming was actually more creative than my creative writing class–I was making something out of pure imagination, and it was cool!
But most of my classmates failed the intro course. It seemed like programming was just too difficult, too geeky. The year after mine, the entire college graduated only three computer science majors (out of 700 grads), and they had been coding from an early age. Was it something you just have to start learning early, like a foreign language? If so, why had I already had like sixteen years’ worth of math classes, four years of Latin, and zero minutes of coding? Virtually no one uses multivariable calculus. Everyone uses computers.
Fast forward to today, and everything is changing. Eighteen countries and dozens of US states and school districts are scrambling to offer computer science classes across K12, with everyone else soon to follow. In a world where computers outnumber humans and virtually none of us speak their language, we want our kids to become native speakers of code. Soon everyone will have the opportunity I wish I’d had when I was eleven.
Yet we haven’t really changed how we teach computer science. Kids don’t think that coding is for them–especially girls and minorities. They try it, and it’s either boring or difficult or both, and they give up. A third of undergraduates taking Introduction to Computer Science courses fail. Sometimes we give students training wheels in the form of visual block-based programming, but when the training wheels come off and they switch to real code, learners often quit in frustration in that moment when they think they can't code at all.
At CodeCombat, we realized that learning programming doesn’t have to be hard or boring. We’ve created a coding game that kids love and that happens to teach kids computer science. 97% of kids play video games, so when you make a great game, it can reach everyone–especially low-performing students, girls, and minorities, who have been underrepresented in computer science. Students playing CodeCombat spend almost all their time coding, so they learn much faster than if they were listening to lectures or reading lessons. It’s more like learning a language–give the player and the computer something to talk about (the game), and the conversation flows as fluency builds.
We’ve spent the last three years figuring out how to make a great programming game. Along the way, we became one of the fastest-growing open source projects ever, were translated by the community into five programming languages and fifty spoken languages, and kindled a love for coding in over five million players. Meanwhile, teachers were constantly asking us how they could use CodeCombat in their classrooms to serve as their computer science curriculum. We set to work creating a clasroom version of CodeCombat, something that teachers with no prior programming experience could use to offer a full year’s computer science course.
Today, it’s here. After an extensive beta period tested with thousands of teachers and more than 25,000 students, we’re launching the CodeCombat classroom curriculum. Designed for students in grades 3-12, our courses cover more real-world programming and computer science concepts than any other curriculum, even teaching 85% of the material from the first two Stanford undergraduate computer science courses for computer science majors (plus many things they don’t cover).
And we’re just getting started. To help us implement our vision of how computer science should be taught, we’ve raised a seed round from Third Kind Venture Capital, Andreessen Horowitz and Allen & Company. I particularly want to thank Shana Fisher, Managing Director at 3KVC and board member at a16z, for her bold advice and expert guidance. This funding allows us to focus on CodeCombat’s classroom offerings, bringing the best computer science education in the world to all schools and districts.
This is the way that kids should learn to code. This is the game that I wished I’d had when I was in school. Programming is a basic skill that everyone should have, but more than that, it’s a beautiful art where you can build anything you can imagine. And as our students grow up learning the language of code, they are going to be native speakers. I can’t wait to see what they create.