@IT編集部の西村賢がRuby/Rails関連を中心に書いています。

禅の公案(Koan)がプログラミング学習でプチブーム

»

 ロンドンのRailsエンジニア、井上真さんに連載していただいている「Railsで目指せ、情熱エンジニア」の第3回、「DojoとKataでRubyを学ぼう」を公開しました。

 海外のRubyistの間では、Dojo(道場)や、Kata(空手のカタ)という言葉を使って、ある種ストイックに、そして方法論を持ってプログラミングスキル向上に取り組もうというのが、ちょっと流行っています。詳しくは記事をご覧いただきたいのですが、記事内で紹介しているDojo、Kataのほかにも、Koan(禅の公案)のような学習コンテンツが、1つのスタイルとして、ちょっとした広がりをみせているようです。公案というのは禅問答ですね。nilとは何か? 何もないことだ。何もないのにオブジェクトとはこれいかに……?

 Rubyistなら、ご存知の方も多いかもしれませんが、「Learn Ruby with Edgecase Ruby Koan」というサイトがあります。コンテンツをダウンロードして実行すると、「あなたはまだ悟りには到達していない。次のコードについて瞑想せよ」というようなノリで、次々とテストケースがfailします。「配列について」「nilについて」など、Rubyの基本仕様の結構細かいところを突っついてきます。例えば、nilオブジェクトで何らかのメソッドを呼んだときに上がって来る例外は? とか、「nil.nil?」はtrueかfalseか、nilをstringに変換すると何になるか? といったようなことです。「obj.nil?と書くのと、obj == nilと書くのはどちらがいいか、考えてみよ」と、思わせぶりなメッセージも随所に登場します。こういう感じで、約30個あるジャンル別のテストケースの空欄を埋めていくことで、Rubyの仕様を学習するというものです。本を読むよりもゲーム感覚でできるので、達成感があるのがいい感じです。

Koan01_2

 GitHub上で「koan」と名前がついたレポジトリは、すでに約100個もあります。JavaScript、Python、.NET、Objective-C、Groovy、Scalaなど、ほとんどどんな言語でもありそうな勢いです。関数型特有のイディオムをClojureで紹介する「Functional Koan」なんていうのもあります。

 Rubyのまつもとさんは、練習と反復による技術の向上があるのはプログラミングとスポーツの共通点と指摘しています。習うより慣れろの精神で、KataやKoanで練習するのもありかもですよね。

Comment(0)

コメント

コメントを投稿する