cyber-dojo

what is a dojo?

a dojo is a place where martial artists meet to practice their martial art!

what is cyber-dojo?

cyber-dojo is an online browser-based coding dojo. Each group...
  • writes their code and tests inside a web browser
  • presses their run-tests button to submit their code and tests to the cyber-dojo server
  • the server saves the submission, runs the tests, and returns the test-outcome to the browser as a traffic light:
    • red if one or more tests failed
    • amber if the tests could not be run (eg syntax error)
    • green if all the tests passed
  • a dashboard shows the traffic light history of all groups. Click on any traffic light to open a diff-view of that submission.
  • start a new practice session from any diff-view

why cyber-dojo?

I built cyber-dojo to promote deliberate practice of
  • test driven software development, and
  • team dynamics and collaboration
I strongly believe that if you practice coding using your normal development environment then you are likely to be drawn into an unhelpful "completion" mindset.

Practising in a cyber-dojo helps to combat this tendency since a cyber-dojo is so obviously not your normal development environment!

Practising in a cyber-dojo helps you to concentrate on the practice. Practising in a cyber-dojo helps you concentrate on improvement.

try cyber-dojo now

The online server is at http://cyber-dojo.com and supports numerous exercises and the following languages
  • C, C++, C#, CoffeeScript, Erlang, Go, Haskell, Java, Javascript, Perl, PHP, Python, Ruby
  • I've recorded a video of me doing the Roman Numerals exercise in Ruby using cyber-dojo (an early version) so you can see how it works.

run your own cyber-dojo server

open sourced

  • The cyber-dojo server source code (Ruby on Rails) lives on GitHub.
  • The infrastructure is rudimentary, but it's a start. Something to learn from and build on. Any feedback or help would be very welcome.

less is more

  • I put a lot of effort into removing features from cyber-dojo. For example, the editor does not have colour syntax highlighting and that is deliberate.
  • The simpler the environment the slower and more deliberate the practice and the greater the need for collaboration and communication.
  • My Kanban 1's Game is also all about encouraging collaboration amongst developers.

thank you

  • Olve Maudal, Mike Long, and Johannes Brodwall - thanks guys - I really appreciate all your help and encouragement.

screen shot



No comments:

Post a Comment