第3回 DojoとKataでRubyを学ぼう − @IT(情報元のブックマーク数)

Coding DojoでのRuby学習法、Dojoフレームワークじゃない。

さて、Coding Dojoの開催方法はいろいろあるのですが、私が何度か通ったBrighton Coding Dojoでは以下のようなフォーマットで行われていました。

  • 一度の定員は10人ぐらいまで(あまり規模が大きいと全員の参加が難しいため)
  • 最初にまず解決する問題をグループで決めておく
  • Dojoにはプロジェクターを置き、そこに1台のマシンと2つの席を用意する
  • 1人はドライバー(パイロットとも呼ぶ)として実際にコードを書く。もう1人はナビゲーターとして、ドライバーと共にコードの実装方法について話し合う
  • テストコードを書くまでは、実装のコードを書いてはならない
  • 黙ってコードを書かない。ドライバーは常に自分の書いているコードの意図をナビゲーターや傍観者にも分かるように説明する
  • 他の参加者は、周りでペアプログラミングの様子を観察する。傍観者はなるべくペアプログラミングをしている人たちに横から口を挟まない
  • 5-10分ごとにローテーション。ドライバーの人は、傍観席に戻る。ナビゲーターの人はドライバーに昇格。そして傍観席の中から新たにナビゲーターに加わる

こういった手順でしょうか。傍観者は横からペアの2人に口を挟まないというルールになっていますが、これは、ついついやってしまいがちです。コードにタイプミスがあったり、ペアから質問を受けたときには発言しても良いのですが、「私だったら別の解き方をする」といった発言は、なるべく自分の番が来るまで待つようにしましょう。

DojoとKataでRubyを学ぼう:Railsで目指せ、情熱エンジニア(3) - @IT

型で配列からの抽出法を上手くなる。

私がDojoに通っていたときは、「達人プログラマー」の著者と有名なデーブ・トーマスさんが主催するCode Kataのサイトから問題を選んでいました(もちろん、「Kata」も日本語の「型」から来ています)。一例を挙げると「Karate Chop」という変わった名前の問題があります。ソートされた配列から特定の値を探し出すとき、単に先頭から探して行っては非効率です。そこでまず配列のど真ん中の値を取り出し、「今探している値は、この取り出した値より大きいか、小さいか、もし大きければ右半分の真ん中、もし小さければ左半分の真ん中の値を取り出してまた比較しなさい」という探索の手法があるのですが、これを何通りの実装方法が可能かを競うというものです。

DojoとKataでRubyを学ぼう:Railsで目指せ、情熱エンジニア(3) - @IT

screenshot