Ruby技術者認定試験(Silver)に合格して分かったこと 〜脳をインタプリタとして動作させる〜

まずは結果から

2010年1月15日(金)にRuby技術者認定試験(Ruby Association Certified Ruby Programmer Silver)に合格しました。
Ruby技術者認定試験(Silver)
試験時間は90分ありますが、約40分で全50問回答完了しました。82点*1と大手を振って言える点数ではないですが、それでも、頑張った自分へのご褒美のために報告です。

出題内容について

id:nobyuさんのhttp://d.hatena.ne.jp/nobyu/20090724/1248442523が大変良くまとまっています。勉強法や出題傾向については、記事に書いてあるとおりです。助かりました。

試験を通じて習得できるスキル

RubyにおけるStringクラス、Arrayクラス、Hashクラスのメソッドに明るくなります。*2例えば次のようなStringクラスのchopメソッドとchompメソッドの違い等です。

# chopは文字列の末尾の1文字を取り除く。ただし、末尾が"\r\n"の場合は2文字取り除く。
p "hogehoge\r\n".chop.chop # => "hogehog"
# chompは文字列の末尾から行区切りのみを取り除く。
p "hogehoge\r\n".chomp     # => "hogehoge"
# メソッドチェーン
p "hogehoge\r\n".chop.chop.chomp # => "hogehog"

ちなみに、"\r"を「キャリッジリターン(復帰。CR。)*3、"\n"を「ラインフィード(改行。LF。)*4と呼ぶ。

試験勉強方法

id:nobyuさんや同試験に合格した大学時代の同期に倣い、私も次の書籍を購入して試験に備えました。

RUBY技術者認定試験 公式ガイド (ITpro BOOKs)

RUBY技術者認定試験 公式ガイド (ITpro BOOKs)

この書籍を使った勉強法は次のとおりです。

  1. 巻末の模擬試験を解く。
  2. 正解した問題も間違えた問題も解答を読む。
  3. 問題毎に、ノートへ、クラスやメソッドの概要をまとめる。
  4. irbで問題文のコードや自分で考えたコードを実行し、動作を確かめる。
  5. 書籍で分からない内容(ex. メソッド等)が出たら、プログラミング言語 Ruby リファレンスマニュアルhttp://www.namaraii.com/rubytips/を読む。
  6. やっぱりirbで動作を確かめる。
  7. 再度、模擬問題を解き直し、コードの意味を口ずさめるようにする。

インタプリタとしての脳

今回の試験を通じて、プログラミングの習得で必要だと思ったことを列挙すると次の3つになります。

  1. ノートにクラス名、メソッド名、挙動をまとめましょう
    • ノートにまとめることで、コードを解釈し、理解が深まります。
  2. 疑問に思ったら、コードを書くのを面倒くさがらずに、irbを使って挙動を確認しましょう。
    • オブジェクトのclass、破壊的メソッド、引数の違いに起因する挙動の差異
  3. コードを頭の中で解釈して「こう動作するだろう」という試行が出来るようになって初めて「理解した」と言えます

これまでも、「はじめてのRuby」を上記の勉強法を使って習得していました。

初めてのRuby

初めてのRuby

ただ、いかんせん、「例題」はあっても「問題」がないことが私の中ではネックになっていました。*5そのため、今回の試験は良い頭の切り替えになりました。新しい視点で「はじめてのRuby」を読むことができます。

今後について

次は同じ言語でも、「英語」。2010年3月14日(日)にTOEICを受験します。スコアの目標は730点ですが、こちらも「英語のインタプリタを脳に定着させること」を第一の目標に頑張ります。*6

*1:合格点+7点。

*2:意外と正規表現は出題が少ないです。

*3:「カーソルを行の先頭に戻す」の意。

*4:「カーソルを次の行の同位置へ移動する」の意。

*5:昔から、問題を解いて覚えるタイプだった。

*6:実力がつけば、スコアは自然と後からついてきます。