Wow, I’ve been living under a stone (:
Just discovered the online Cyber-Dojo by Jon Jagger. It is an online manifestation of a Coding Dojo. Both have been there for years, and I think both are brilliant.
They take the concept of a Dojo as being a place to practice sports like martial arts in a pair or group setting with a series of Katas or practices.
Katas in a Dojo are a means for performing deliberate practice in order to learn new things. For instance, acquire new movement techniques, learn about your balance, gain strength, all in both a physical and mental way.
-
A Coding Dojo takes this concept into the programming world focussing at learning new programming skills. Watch the How do you put on a coding dojo event? – YouTube
-
The Cyber Dojo goes a step further and brings it on-line (a 2010 example video is Roman Numerals Coding Kata in Ruby using CyberDojo website on Vimeo).It is easy to get started: either join an existing Dojo by entering the practice ID, or setup a new Dojo where you get a practice ID that others can join.
The aim of both is do more deliberate practice.
When performing Coding and Cyber Dojo, you should use Test Driven Development using pair programming and BabySteps. Those help you to slow down, as one of the Dojo Principles is for Katas to slow down. It reminds me of the “if you are in a hurry, sit down” mantra and is a key part of the Coding/Cyber Dojo Principles too.
The aim is to learn, and part of that is to first un-learn and open you to new thoughts. That’s why it is so cool that the Cyber-Dojo provides you with:
- a bunch of pre configured programming languages*,
- preformulated practices** (including a few cyber-dojo refactorings),
- a small boilter plate to get started.
You’d think they speed you up, but that is not their aim. Like a regular Dojo it gives you an pre-set environment and gives you piece of mind to get started.
The Cyber Dojo does without a Sensei, whose purpose in a Coding Dojo is to ask questions in order to guide the participants.
That’s why it is good to use the Cyber Dojo as part of a Coding Dojo: basically the Cyber Dojo provides a standardizes set of tools to quickly setup a Coding Dojo.
Cyber Dojo languages
(a prime number, so the table is a bit distorted)
C | Go | PHP |
C# | Haskell | Perl |
C++ | Java-Approval | Python |
Clojure | Java-Cucumber | Ruby |
CoffeeScript | Java-JUnit | Ruby-Rspec |
Erlang | Javascript |
Cyber Dojo practices
Many of the practices come from rosettacode.org.
100 doors | Harry Potter | Print Diamond |
Anagrams | LCD Digits | Recently Used List |
Bowling Game | Leap Years | Reversi |
Calc Stats | Mine Field | Roman Numerals |
Count Coins | Monty Hall | Tennis |
Diversion | Number Names | Unsplice |
Fizz Buzz | Phone Numbers | Verbal |
Game of Life | Poker Hands | Yahtzee |
Gray Code | Prime Factors | Zeckendorf Number |
–jeroen
via:
- Cyber-Dojo Home.
- Roman Numerals Coding Kata in Ruby using CyberDojo website on Vimeo.
- How do you put on a coding dojo event? – YouTube.
Filed under: .NET, Agile, C, C#, C++, Development, Java, JavaScript/ECMAScript, Perl, PHP, Scripting, Software Development, Unit Testing
