interviewing and cyber-dojo

Why not ask potential interview candidates to do an exercise in cyber-dojo? Candidates simply email you their cyber-dojo URL (which contains their id) when they're finished. From this you can look not only at their final solution, but also at their tests, and how they got there. We know several companies already doing this. They report that it's best to be clear and up-front about what you want. That it's not uncommon for candidates to work on a solution outside of cyber-dojo and then paste in their final code (and maybe the test code!). This gives you no clue as to how they got there. Ask them not to do this.

Another useful idea is to provide concrete feedback to the candidate and ask them to try again.
Then look at their second submission to see if/how they adopted the feedback.

If your team sometimes pair-programs, why not mirror the pairing in your recruitment process?
Instead of interviewing 5 candidates sequentially, see how five candiates fare technically (and socially) in a 10 person cyber-dojo, pairing each candidate with a developer from the team they're hoping to join. Do several iterations swapping partners each time. Note that if your team never pair-programs it is incongruent to pair in the interview.
Teamwork characteristics ... cannot be determined if you interview ... one at a time.
W. Edwards Deming


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.
  • 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.

how is cyber-dojo implemented?



what is cyber-dojo?

cyber-dojo at Trondheim XP meetup
  • 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.