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 a place where programmers meets to practice their programming!
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 https://cyber-dojo.org and supports numerous exercises and the following languages
  • Assembler, BCPL, Bash, C, C#, C++, Chapel, Clojure, CoffeeScript, D, Elixir, Erlang, F#, Fortran, Go, Groovy, Haskell, Java, Javascript, Julia, Kotlin, PHP, Pascal, Perl, Prolog, Python, R, Ruby, Rust, Swift, TypeScript, VHDL, VisualBasic, Zig

run your own cyber-dojo server


open sourced

  • The cyber-dojo github organization holds the repos for the main server services.
  • The cyber-dojo-start-points github organization holds the repos for the initial source files.
  • The cyber-dojo-languages github organization holds the repos for the languages and test-frameworks.
  • Any feedback or help would be very welcome.

less is more

  • I put a lot of effort into removing features from cyber-dojo.
  • 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, Seb Rose, Johannes Brodwall, Michel Grootjans, James Grenning, Emily Bache, and Dimitry Polivaev - a big thankyou - I really appreciate all your help and encouragement.


2 comments:

  1. Anonymous7:32 pm

    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