Posted by johnsmart
on September 17, 2009 at 3:08 PM PDT
While I am in Sydney for the next Sydney Java Power Tools Bootcamp , I will be running a Java Coding Dojo , to be held in the Atlassian offices between 5:30 and 7:00pm on the 21st of October. This is a free event, open to anyone who want to do a little recreational coding. I will also be running the inaugural session of the Wellington Java Coding Dojo on October 14, at a to-be-announced mysterious location (somewhere in Wellington, though).
A Coding Dojo is a place where programmers come to improve their skills, by following a pattern similar to the martial arts dojo. Patricipants meet for at a pre-arranged time in a room that has one computer attached to a screen. A programming challenge is posed for each session. During the session, the group spends a pre-set amount of time developing a solution to the challenge. At the end of the ssession the code is discarded (often it is archived for future reference and study). The amount of time spent on the problem is fixed. Regardless of the state of the solution, when the time expires, the session is done.
The rules and sample session agenda, which are largely inspired/copied from other better established coding dojos ;-), are presented here:
- There is a coding challenge that is announced beforehand.
- There is a room with one computer attached to video screen.
- The presenter explains the coding challenge and starts the coding. The presenter may or may not choose to have a co-pilot. A co-pilot is usually assigned so that when the switch occurs, the co-pilot takes over for the coder.
- One half of the pair is changed every 5 minutes.
- The coder should continuously explain what she or he is doing.
- The coder should stop when someone from the audience falls off the sled (has a question about understanding what the pair is doing) -- and only continue when that someone is back on track again.
- All coders use TDD (Test-Driven Development).
- All produced code will be made publicly available using the Eclipse Common Public License.
- The programming language to be used is announced in advance per session.
We will be probably using Eclipse and/or IntelliJ, both with Infinitest installed for Continuous Testing. An interesting programming problem with a reasonable starting point/existing code base will be provided as a starting point.
If you are interested in attending, please let me know so that we can get an idea of the numbers to expect.