miauのブログ

はてなダイアリー「miauの避難所」をはてなブログに移行しました

Ruby 技術者認定試験

1/16(土)に受けてきましたので、そのお話。

受験の理由

前回&今回のプロジェクトでは、期間と予算を決めて請負開発で契約して、その範囲でアジャイルっぽく回している状態です。アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ でいうところの、日付主導型のプロジェクトですね。プロダクトバックログ(ストーリーポイント記入済み)を見せて、「だいたいこの辺までできそうですけど、未確定ですよー」「ちゃんと基本機能は動くシステムは作るので、そこは信頼してくださいねー」と話をする感じ。RFP とか出してくる顧客には絶対に通用しない手ですけど、それはさておき。

日付主導型のプロジェクトで問題なのは、実装するフィーチャが未確定な点です。もともと顧客の信頼が得られているケースではいいのですが、前回のように新規顧客の上、ベロシティが低い(=開発のパフォーマンスが出ない)と「本当にちゃんと開発やっているの?」と誠意か能力のどちらかは疑われるわけです。

前回&今回は Rails によるシステム開発なので、顧客の信頼を少しでも得られるようにチームメンバ全員でこの資格は取っておくことにしました。そういう状態にしておけば「今回のメンバーは全員 Ruby の資格を持っているし、我々のパフォーマンスが低いわけではない」と言えるようになるし、今後受注する際にも有利に働くでしょうという、政治的な理由。

本当は Ruby より Rails の資格があればいいんですけど・・・Rails はバージョンによって動作が変わりすぎなので、現実的ではないんでしょうね。

勉強っぷり

私はもともと Ruby はちまちま使ってる&Rails の開発を業務で数カ月行ったレベル。さらに最近チーム内の勉強会で、改めて たのしいRuby 第2版 Rubyではじめる気軽なプログラミング をひととおり読んだばかりなので、文法に関する知識はそれなりにある状態です。

それっぽい試験対策としては、以下の本を一通り読みました。

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

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

誤記がいくつかあるので、

正誤表のチェックもお忘れなく。(ここに載ってない誤記もあったのでコメントしておきました。。)

練習問題については、まずは 【解説】まつもと ゆきひろのRuby検定 - ITpro EXPO検定---ITpro EXPO 2008:ITpro これをやりました。この時点で 80点 とか。

その後問題集の巻末に練習問題(二回分)をやって、それぞれ正答率は 86%、82% とか。

さらに Ruby認定試験対策問題 総合問題 をやって(これは 1、2 問間違えたかな)最後に Ruby認定試験対策問題 を 1/3 くらいやったところで試験本番。

試験

10:00 からの試験で、「集合時刻(9:45)に遅れた場合は受験できません」とのことだったんだけど、道に迷ってしまって試験会場に到着したのが 9:52 とか。「本当は受けられないんですけど、次の時間でよければどうぞ」とのことで、10:45 から試験でした。次の会を見ていた感じだと、10 分前から受験説明が開始されていたみたいですが・・・とにかく集合時刻に遅れないよう気を付けましょう。

90 分の試験ですが、対策書と同じような問題がたくさん出るので、だいたい 20 分くらいで終了して。得点は 94/100 点で、合格点は 75 点なので、あっさり合格。

問題のレベルは、練習問題よりもほんの少し簡単でした。例えば練習問題では、配列のインデックス指定について

  • [start..end] と [start...end] の違い
  • [start, length] の指定
  • 負数を指定した場合の挙動

が一度に聞かれたりしましたが、これが一つずつ問われるような形でした。

あとはマニアックな問題も出されます(例えば○○メソッドに空文字を渡した場合どうなるか〜)が、この類の問題はせいぜい数問なので、落としても合格圏内に入れるでしょう。他の方も言っているように、まず対策書の問題をしっかり解いた上で、基本クラスのメソッドを一通り押さえておくと良いと思います。

感想

「○○オブジェクトに存在しないメソッドは?」なんて問題が出るので、Ruby の文法は好きだけどメソッドのエイリアスが嫌いな私としては、あまり好きではないタイプの試験でした。ハッシュのキーを確認するのに Hash#member? なんて使わないし知らないよ、みたいな。でも机上デバッグなんかをする場合は必要になる知識なので、役に立たないことはないと信じてます。

その他

今気づいたんですが、

というプログラムもあるようで。これ取得するほうが、提案する際に売りになりそうですね。条件は

5名以上のRuby Association Certified Ruby Programmer資格保持者が正社員として所属している。

とのことなので、チームメンバが全員取得してしまえば、あと一人合格者見つければいいだけで・・・誰かこっそり取ってないかな。