Online education coding platforms such as CodeAcademy have existed for years but I’ve always found them to provide a rather artificial sandboxed environment that doesn’t easily translate to real world coding. Meanwhile a new category of sites that allow running code snippets in a browser environment have appeared. I’m thinking here of Rust Playground, JS Playground and the like. These sites provide a pretty reasonable runtime environment for small blocks of code and are great for sharing code examples.

If you’re wondering whether there might be a third category that combines the features of both…there is! I’m not sure why I didn’t find it until today, but check out: CodeCrafters. It hosts a set of “programming challenges” that capture real world projects such as developing a server for the Redis protocol. The idea is that a challenge includes a set of tasks. Each task adds more functionality, and (this is important) incorporates an automated test. These are tests for network behavior such as “listens for connections on port 6812”. The task UI looks like this:

There’s a social network aspect to the system with user comments below each task, and also other users’ submitted code for the task visible if you want to take a peek.

The rubber contacting road side of the system is done on your own machine, interfacing with the CodeCrafters mothership via Git. This is a cool idea because you can use native local tools such as your IDE of choice. That’s not dictated by the system. You can code offline. There is what I would call a small limitation in that it doesn’t seem to be possible to run the tests locally. The mode of interaction is: you write code, then you push the new code to their Git origin whereupon tests are run in a server-side hook:

This is great in that the system enforces test passing before allowing the commit (albeit that won’t work for any non-trivially quick test), but it means you can’t debug a test failure in vitro. That said, I’ve encountered this kind of split-brain functionality in many commercial development shops so perhaps it’s ok in an education environment.

Definitely recommend trying out CodeCrafters.