Coding adventures and contributing to open source with CodeCombat |

Coding adventures and contributing to open source with CodeCombat

Posted 17 Jan 2014 by 

(5 votes)
Image by :

submit to reddit

When I founded my first startup in 2008, I was a programming newbie. A degree in economics from Oberlin College hadn’t prepared me for a career writing production-ready code. Despite my best efforts at slapping together crude HTML and CSS Django templates, my ability to contribute to our codebase was limited at best. So I started slowly teaching myself to code with online tutorials and lessons. After many disheartening starts and stops, I realized why I was having problems sticking with it: code lessons and videos felt like school to me, and I had no interest in returning to the classroom.

What we built next was CodeCombat, a game that teaches kids and students to code. Players use spells (JavaScript) to control their forces in a battle against Ogre enemies. And, on January 8 this year, we open sourced the entire project: servers, art, and all. You can literally clone our repo and have a working version of the game on your local machine in minutes.

CodeCombat is a for-profit, YCombinator-backed startup that sees the future of code education as beginning with instruction and ending with contributions to open source projects. When we designed the product, we knew we wanted to open source all of the code. We envision players learning to code using tutorials on the site and once they have reached a certain level of proficiency, diving into the codebase to work with real live production code with a world class developer network to help them learn and work on a project that’s meaningful for them.

Since we made the open source announcement, our repo has attracted more than 2000 stars, 400 forks, 200 watchers, and 25 contributors. CodeCombat remains in the top ten trending repos on GitHub.

From the announcement:

Closed source may be the choice made by virtually every startup and every game studio, but we believe this is a convention that needs rethinking. CodeCombat is already a community project, with hundreds of players volunteering to create levels, write documentation, help beginners, playtest, and even translate the game into seventeen languages so far. Now the programmers can join the party, too.

Our mission is to teach you to code. Until we have over nine thousand levels taking you all the way from beginner to Bellard, why not jump into a novice-friendly open source project to keep learning? We aren’t just dumping the code out there and calling it a day—we’ve worked hard to make it simple to contribute. You don’t need to know git, you don’t need to have anything installed, and you don’t even need to know how to code to help with some of the issues on our GitHub.

Our goal at the moment is to foster developer interest and continue building an engaged community of contributors around the project. Games provide a rich and interactive way for students and young coders to get involved with computer science, and we hope that CodeCombat eventually becomes an integral reason why millions of students got started on their coding adventures.

Read more about how we taught code to 180,000 kid programmers in the recent Hour of Code event.


See the full list of Youth in Open Source Week articles.

submit to reddit


Aseem Sharma
Open Source Champion

Very insightful George. Games are very powerful way to educate people. Coding, being one of the most intellectual activities, can empower people to improve their lives (and the lives of people around them). One thing I have been curious about since some time: When it comes to teaching method, do you think the way and methods employed to teach code is/should be different for people in different ages?

Vote up!
Vote down!
Open Enthusiast

Hi Aseem, that's a very good question and yes, I do think that code needs to be taught different to different age groups, but with less variety than might otherwise be expected. We designed CodeCombat for high school and college kids, but kids as young as 5 years old are playing it. The biggest hurdle we see among our testers is typing proficiency, even young adults have difficulty with programming syntax. You can be a relatively good typist and still struggle to accurately hit the semicolon and parenthesis keys, for instance. I strongly disagree with the idea that younger coders need a visual layer of abstraction (a la Scratch for instance), but level content, themes, story, and artwork, do seem to be important differentiators for different age groups.

Vote up!
Vote down!

Comment now

I'm a 28 year old entrepreneur currently working on my second startup, which is a game that teaches people to code. It's called CodeCombat, and we're a YCombinator W14 company with a mission to teach the world to code. I enjoy downhill skiing, talking about cars and computers, working with my hands, blogging, and music videos. Although I wasn't a computer science major, I'm slowly teaching myself how to program. I'm a terrible runner, but I could run a 5k right now, and I have no interest in

What is open education?

Best open source tutorials of 2014