Exercism: collaborative reviews to learn coding

Exercism was written by Katrina Owen, an instructor teaching at a small technical school in Colorado. The purpose was to teach her students learn collaboratively and learn how to write good code. Exercism has exercises for new developers which they need to complete before they can review others’ code. The goal is to write quality readable code. Current languages supported in Exercism are Clojure, CoffeeScript, Elixir, Go, Haskell, JavaScript, OCaml, Objective-C, Perl5, Python, Ruby, and Scala. Support of languages like Java, Rust, Erlang, PHP, and Common Lisp are in the pipeline. It is open source and works through a browser. However, there is a downloadable client tool to try it from the console too. The web interface needs GitHub authorization to start trying out Exercism.

To get the first problem from the console:

  • Download the latest client from here.
  • Run the demo:
    $ ./exercism demo

If you want to install it locally for your organization, head on to the GitHub project page for the source code and follow the steps to install it on a local server.

Webpage: Exercism

Online code review tools

code_review

Code review is a very important step of the software development process. We will discuss some online code review tools that you can deploy on a server and review code collaboratively (except the last one).

  • Gerrit: Works with Git hosted codebase. It allows side by side colored diff and inline comments. Once reviewed, an authorized developer can submit the changes to the master repository directly. To get a feel of how Gerrit works head here or check the ShowCases page.
  • Review Board: A web based code review tool that supports many features like upload patches, side by side compare, inline comments, notification by mail etc. It also has a free hosting service RBCommons that you can use if your code is open source.
  • Rietveld: Another online code review tool that accepts patches, side by side diff etc. In action here.
  • CodeRemarks: Purely a reviewing tool and does not show side by side diff. Users can use it over the internet only.