Presented at the excellent Agile On the Beach 2014 conference:
some stats on 15,000 practice sessions
As I write this (September 2014) the number of practice dojos on cyber-dojo.org is about 15,000.
The most popular day to run a cyber-dojo is Thursday.
The most popular language-unit-test framework is Java-JUnit (but the figures probably depend a lot on which ones have been installed the longest).
The most popular exercise is Fizz Buzz (again, some have been installed longer than others).
The most popular day to run a cyber-dojo is Thursday.
- 1375 Saturday
- 1022 Sunday
- 2488 Monday
- 2588 Tuesday
- 2575 Wednesday
- 2660 Thursday
- 2307 Friday
The most popular language-unit-test framework is Java-JUnit (but the figures probably depend a lot on which ones have been installed the longest).
- 3125 Java JUnit
- 2881 C# NUnit
- 1087 Python unittest
- 1071 C++ assert
- 904 C assert
- 736 PHP PHPUnit
- 701 Javascript assert
- 600 C++ GoogleTest
- 525 Ruby TestUnit
- 384 Python pytest
- 357 Java Approval
- 324 Java Mockito
- 278 C++ CppUTest
- 219 Ruby RSpec
- 217 Java Cucumber
- 205 Javascript jasmine
- 157 Haskell hunit
- 154 Clojure .test
- 131 Go testing
- 125 C++ CATCH
- 120 Perl TestSimple
- ...
The most popular exercise is Fizz Buzz (again, some have been installed longer than others).
- 2091 Fizz Buzz
- 1830 100 doors
- 924 Verbal
- 787 Calc Stats
- 778 Leap Years
- 733 Roman Numerals
- 722 Game of Life
- 713 Anagrams
- 644 Print Diamond
- 549 Tennis
- 498 Prime Factors
- 476 LCD Digits
- 466 Yatzy
- 405 Bowling Game
- 355 Count Coins
- 329 Number Names
- 298 Harry Potter
- 287 Mine Field
- 286 Phone Numbers
- 192 Poker Hands
- ...
terms & conditions
- cyber-dojo is free for non-commercial use.
- Commercial use of the public server requires a license. For example, if you work for a profit-making organization, and you're using https://cyber-dojo.org at work, you need a license.
- The cyber-dojo Foundation issues licenses
- cyber-dojo is provided in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.
please email us your feedback
What did you like?
What did you dislike?
What should I add?
What should I remove?
Please email your feedback.
What did you dislike?
What should I add?
What should I remove?
Please email your feedback.
how is cyber-dojo implemented?
- cyber-dojo.org runs off a Ruby on Rails server, in a docker container, in a Kubernetes cluster.
- cyber-dojo's languages also run in docker containers.
- cyber-dojo is open sourced and lives on github.
- cyber-dojo was conceived, designed, and implemented by Jon Jagger.
- cyber-dojo's design is strongly influenced by Jerry Weinberg's teachings on experiential learning.
what is cyber-dojo?
- a dojo is a place where martial artists practice martial arts.
- cyber-dojo is where programmers practice programming!
- cyber-dojo is not an individual development environment.
- cyber-dojo is a shared learning environment.
- in a cyber-dojo you focus on improving rather than finishing.
- in a cyber-dojo you practice by going slower.
cyber-dojo tips
- Repeat your practice. Repetition frees up mental capacity creating space for improvement.
Don't be too concerned about finishing; think about improving. - cyber-dojo is designed to encourage team practice and works well with two (or more) people at each computer, periodically rotating the current keyboard drivers to different computers as navigators.
- After each practice use the
dashboard
to start a review.
Look for evidence of...
- starting with a failing test
- refactoring
- overly ambitious steps
- improving the diagnostic
- starting with a failing test
- Practice refactoring.
- Allow at most N amber traffic-lights (total or in-a-row)...
- per animal
- per cyber-dojo
- repeat with reduced value of N
- Turn on traffic-light colour prediction. Allow at most N incorrect predictions...
- per animal
- per cyber-dojo
- repeat with reduced value of N
- Set social challenges...
- Change keyboard drivers before starting each new practice
- Change keyboard drivers during a practice
- Change pairs before starting each new practice
- Change pairs during a practice
- Set technical challenges...
- no loops
- no conditionals
- no division or modulus
- immutable data structures only
- no mouse
- no data structures
- maximum 5 lines per method
- maximum 2 levels of indentation
- the possibilities are endless!
- When everyone is at green set a challenge to either...
- find some code you can delete and the tests still all pass
- find a bug, and write a failing test for it
- Create a custom starting point...
- with all the tests, but none of the code
- with all the code, but none of the tests
- with a specific fault - which pair can fix it first?
- Play the average-time-to-green-game.
Subscribe to:
Posts (Atom)