8th Light's software craftsmen are bonded together by their singular pursuit of mastery. We challenge ourselves constantly to learn and grow through a combination of challenging client projects and self-directed learning.
This year, 8th Light's craftsmen began a new learning initiative in the form of quarterly Mastery Cohort sessions. In these day-long courses, Master Craftsmen spend a day in 8th Light's office working with a group of 8th Light craftsmen on projects and lessons that are both challenging and inspiring.
In the first Cohort session held in our Los Angeles office, Micah Martin demonstrated the Turnstile State Machine kata, and challenged everyone in the Cohort to demonstrate a kata and record it as a screencast. Those videos are shared below.
Turnstile State Machine in Java
This kata uses the Ruby state machine gem to generate code (using the state pattern) implementing a turnstile state machine. It was created as part of an exercise in which I had one hour to prepare.
Bowling Scorecard Calculator in Prolog
In this kata, we establish a set of facts and rules about a game of bowling, and ask Prolog to score a game.
FizzBuzz in Ruby
This kata implements the Fizz Buzz game, in which numbers that are divisible by three are replaced by "fizz," and numbers that are divisible by five are replaced by "buzz."
Bubble Sort in Ruby
This kata implements the bubble sort algorithm, which steps through a list, swaps adjacent items if they are out of order, and repeats this until all items are sorted.
Roman Numerals in Go
This kata converts any given number to its Roman numeral representation.
Coin Changer in Ruby
In this kata, we produce change in the smallest amount of standard U.S. coin denominations, given an amount of money.
Rock Paper Scissors
This kata uses the Clojure language, a testing framework called Speclj, and Leiningen as a build tool. The goal is to create a function that determines the winner of a rock-paper-scissors game. It was created as part of an exercise in which I gave myself an hour to prepare.