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.
cyber-dojo is the world's simplest non development environment.
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
  • click any traffic-light to view its diff
  • a dashboard shows the traffic light history of all groups.
  • start a new practice session from any traffic-light

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.org and supports numerous exercises and the following languages
  • C, C++, Java, Ruby, C#, Clojure, CoffeeScript, Erlang, Go, Groovy, Haskell, Java, Javascript, Perl, PHP, Python, Ruby

run your own cyber-dojo server


open sourced

  • The cyber-dojo server source code (Ruby on Rails) lives on github.
  • 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, Johannes Brodwall, Michel Grootjans and James Grenning - thanks guys - I really appreciate all your help and encouragement.

screen shots



2 comments:

  1. I really enjoy cyber-dojo. A few of us ran a Python kata over lunch. Today I learned TDD in JavaScript. Soon I'll be introducing cyber-dojo at a users group meeting. Great work! Thanks.

    ReplyDelete
    Replies
    1. My pleasure. Glad you're finding it useful.

      Delete