2009-07-24
一週間でRuby技術者認定試験に合格する方法
はじめに
成績は84点と決して派手ではない結果だけど、思い立ってから取得まで一週間という短期間で取得することができた。
これから受験しようとしている方へ、合格までの道程を簡単にご紹介したい。
Ruby技術者認定試験とは
受験料や出題範囲はこちら。
http://www.ruby-assn.org/ja/certification/examination.htm
試験に関しては、まつもとゆきひろさんの一言が一番シンプルにこの試験を表現していると思う。
今まで通りRubyとかかわる人にはなんの役にも立たないでしょう。
認定試験は、Ruby技術者を確保したい企業にとっての目安であり、
そういう企業にアピールしたい技術者にとっての道具です。
私はというと、別に仕事に必要になったわけではないけど、最近読む書籍の中で言及されることが多いRubyをもっと知りたいと思ったことと、できれば仕事で使ってみたいのでまずはアピールのキッカケを作りたかったこと、あと会社で奨励金が出ることを知ったことにも背中を押されたと思う。
勉強の進め方
私の場合、試験勉強には書籍が必須。移動中や職場での休憩時間などのちょっとした時間に勉強できるし、Bookmarkを使えばどこからでも手早く勉強を再開できる。また書籍のページ数から今現在全体の何割くらいをこなせているのか判断しやすく、自分のペースで勉強できることが大きい。
今回勉強に使用したのはこちらの書籍。
Ruby技術者認定試験 公式ガイド (ITpro BOOKs)
- 作者: 伊藤忠テクノソリューションズ, ITpro, Rubyアソシエーション
- 出版社/メーカー: 日経BP社
- 発売日: 2009/03/25
- メディア: 単行本(ソフトカバー)
- Amazon.co.jpで詳細を見る
特にこの書籍が良かったというわけではなく、他に選択肢が無かったというのが本音。
まず休日2日間で巻末の模擬問題を除いてこの本に目を通した。*1140ページくらいなのでRubyに興味があれば誰でもすぐに読めてしまうと思う。ここで大切なのは実際にプログラムを書いて動かしてみることだと思う。irbを使えばちょっとしたコードはすぐに試せる。
例えば私の場合、Hashクラスにはinvertというキーと値を逆にするメソッドがあるけど値が重複していたらどうなるのか?といった疑問がわいた時はすぐにirbで動きを確認した。*2
それから模擬問題に取りかかる。模擬問題は2つあるが、集中してやれば一つ1時間もあれば解答と採点までできる。試験勉強に慣れている人なら当たり前のことかも知れないけど、ここで重要なのは間違った問題の解答をよく読んで必ず理解をする事。
組み込みクラスのメソッドで間違えた箇所については周辺も含めて見直すと効果が高い。例えば、引数を省略した場合の動作、同じ処理結果が得られるメソッドなどについてだ。実のところ、本番の試験での組み込みクラスのメソッドについての出題割合は結構高い。
一通り模擬問題を解き終えたら、出題された内容を中心に書籍を軽く俯瞰すること。細かい部分でも、出題された内容については大抵言及されている。また、時間があればもう一度模擬問題をやってみると良い。他のプログラム言語をある程度知っている人なら二度目は90点以上取れるはずだ。
試験問題の傾向
問題のレベルは先に紹介した書籍の模擬問題と同じと考えてよい。何問かは全く同じでは?という内容の問題も出題されていた。
先にも挙げた通り、組み込みクラスのメソッドに対する出題は結構多い。とはいえども出題されるクラスの数が少ないので対策はとりやすい。Hash, Array, StringについてはRubyのリファレンスマニュアルをざっくり読んでいたおいた方が安心できる。あとは正規表現とファイルについても再度整理しておいた方が良いだろう。特にファイルは普段なじみが無い人は要注意。*3
ちなみに複数選択する問題には選択数が明示されるので消去法での解答も可能だ。わからない問題は、「後から見直す…」的なチェックボックスをONにして次に進んだ方が良い。さくさく解答していけば見直しまで含めて40分程度で解答できるほどのボリュームなので、後から考えて解答する時間は十分あるからだ。
引っかけ問題と思われる問題はあまり出題されない。ただし、破壊的メソッドか否かで結果が異なる問題なども出題されるため、落ち着いて問題文を読んでから解答したい。
まとめ
- 試験問題は書籍の模擬問題と同レベル
- 実際に書いて動かしてみる
- 組み込みクラスのメソッドについての問題が多数出題される
- 試験時間は十分にある
取得の難易度というのは他のIT試験であるOracle BronzeやSJC-Pと比べるとやや易しい印象を受けた。
今回は短期間で取得したけど、本来は基礎は十分に時間をかけている方が今後の学習曲線に違いがでるはず。試験が終わったからといってRubyの基礎に対しての理解や興味を忘れない事が重要。と自戒を込めて。。
以上、84点からのアドバイスでした。
さて、一週間休止していたRailsの勉強を再開しようかな。
ちなみに私のバックグランド
職業プログラマーとして5年目。
ピッケル本を所有しているものの、残念ながら仕事でRubyを使った経験はありません。
仕事では主にJavaを使っていて、動的言語に関しての知識はほとんど無いに等しく
JavaScriptについて少しだけ勉強をした事がある程度。
他に保有しているIT系資格はソフトウェア開発技術者試験、SJC-WC, Oracle10g Bronzeなどなど
会社から支給される奨励金にいつもお世話になっている感じです。
- 10 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=dHM&q=javascript+hash+key+削除&btnG=検索&lr=lang_ja
- 9 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4DAJP_jaJP273JP273&q=javascript+宣言+存在チェック
- 7 http://www.google.co.jp/search?q=JsUnit&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 6 http://reader.livedoor.com/reader/
- 6 http://www.google.co.jp/search?hl=ja&q=ruby+資格&btnG=Google+検索&lr=&aq=f&oq=
- 4 http://74.125.153.132/search?q=cache:CwV99UiBxqcJ:d.hatena.ne.jp/nobyu/20090119/1232376042+fixtures+:books+ruby+test+unit&cd=1&hl=ja&ct=clnk&gl=jp
- 4 http://search.yahoo.co.jp/search?p=javascript+オブジェクト名を動的に&ei=UTF-8&qrw=0&pstart=1&fr=top_ga1_sa&b=31
- 4 http://www.google.co.jp/search?hl=ja&q=ランニング+初心者+距離&lr=&aq=4&oq=ランニング 初心者
- 4 http://www.google.co.jp/search?q=ランニング+初心者&hl=ja&lr=lang_ja&start=10&sa=N
- 3 http://b.hatena.ne.jp/testin/favorite