Ruby技術者認定試験 Goldに合格した話

週末にRuby技術者認定試験 Goldを受けて78点で合格しました!
ギリギリでしたが合格は合格(笑)
Ruby Silverのときと同様、どういう勉強法をしたかアウトプットすることで同じような境遇の方の役に立てば幸いです。

Ruby技術者認定試験とは

実施団体であるRubyアソシエーションの公式サイトからの引用です。

Ruby技術者認定試験制度は、Rubyベースのシステムを設計、開発、運用するエンジニア、Rubyでシステム提案を行うコンサルタント、Rubyを教える講師及びRubyを学ぶ学生などを対象とした認定試験制度です。認定者は、Ruby技術者としての技術力を公正に評価され、高い水準のRubyによるシステム開発能力を持つことを認定されます。

認定によりRubyベースでシステム開発を行ううえで必要な基礎的な知識と応用力をもつことをアピールすることができます。試験の合格者は、Rubyアソシエーションにより「 Ruby Association Certified Ruby Programmer Silver/Gold version 2.1」として認定されます。

合格することで正式にRubyエンジニアとしての技術力を評価してもらえるわけです。

試験の特徴

全50問で75点ボーダーなので38問正解で合格になります。なかには複数選択の問題も含まれます。試験時間は90分ですがしっかり対策して挑めば30分あれば解き終わることが出来るくらいです。なお、試験は各自のタイミングで終えることが出来ます。完了とともに間髪を入れず点数と合格/不合格が画面に出力されます。焦らしも何もないのであっけないですが、不合格だった場合、現実を受け入れるのに時間が必要になりそうです。。

上にも記載しましたが、動作環境が2.1系と定められています。バージョンによって動作が異なります!環境を作ってirbでサンプルコードを打っていく勉強方法になりますが、きちんと環境構築しましょう!

出題範囲

  • オブジェクト指向
    • ポリモルフィズム
    • 継承
    • mix-in
  • 文法
    • コメント
    • リテラル(数値、真偽値、文字列、文字、配列、ハッシュ等)
    • 変数/定数とスコープ
    • 演算子
    • 条件分岐
    • ループ
    • 例外処理
    • メソッド呼び出し
    • ブロック
    • メソッド定義
    • クラス定義
    • モジュール定義
    • 多言語対応
  • 組み込みライブラリ
    • よく使用されるクラス、モジュール(Object、数値クラス、String、Array、Hash、Kernel、Enumerable、Comparable等)

試験の対策

準備期間

受験すると決めてからはこんな感じで準備しました。

  • 3週間
  • 平日:通勤電車や帰宅後のスキマ時間に30〜1時間
  • 土日:2〜3時間(出来なかった日もあり)

平日日中は仕事なので割とゆるゆるでした。
学生さんなどで時間がある方であればもっと短期間で仕上げることも出来ると思います。

参考書・模擬問題

なかでも、メタプログラミングRuby第2版の5章までの内容(クラス、モジュール、メソッド探索、変数スコープ、プロック、ラムダ、特異クラス、include、extend、prepend)が出題の50%ほどを占めていました。

実施団体であるRubyアソシエーションの公式サイトでも副読本として掲載されていることもあり、試験合格のためには必読の一冊となっています。

なお、この本については章ごとに内容をまとめているのでこちらも参考ください。
メタプログラミングRuby第2版のアウトプット

1週間目

上述の通り、メタプログラミングRuby第2版をしっかりと読み、内容を理解することが合格するための近道です。まずは、通勤時間などを使って2回読み直しました。

なお、この本はボブとビルというキャラクターを題材とした物語調の書籍であり、あまり技術書技術書していないので読みやすく、Rubyの楽しさを教えてくれる本なので個人的にはとても好きな一冊です。試験合格のための参考書ではあるのですが、折に触れて読み返すことになる良書だと思います。

2週間目

GoldではSilverとは違って、添付ライブラリが出題範囲に含まれます。

実務で意識して使う領域ではないですし、添付ライブラリの範囲が広いにもかかわらず3問ほどしか出題されないのであまり学習効率が高くないが特徴なのですが、一応 irb を叩いて動作確認しながら理解だけはしておこうと、合格教本を利用して添付ライブラリの一覧を点検しました。

3週間目

最後の週は模擬問題をひたすらこなしました。特に、RubyExaminationは回答する毎にランダムで50問が出題されるので変に覚えてしまうことがなく、ためになりました。模擬問題を解いたら、間違えた問題・カンで正解してしまった問題を解くのに必要な知識を再度書籍で読み直しました。後はこの繰り返しです。

当日の問題から思うこと

Silverのときと2つことが大きく違っていたので記載しておこうと思います。

合格教本の巻末問題そのままで多くの問題が出題された

難易度はGoldの方が上ですが、Silverの方が出題範囲が広大です。

Goldは出題範囲が狭まるせいなのかわかりませんが、合格教本の例題がそのままで出題された問が散見されました!これについては運が良かっただけなのかもしれませんが、書籍をやりこんで臨むことで、見たことがある問題にあたるかもしれません。

メタプログラミングRubyを読み込んでいて本当に良かった

何度も書いていますが、メタプログラミングRuby第2版の5章までの内容が出題の多くを占めています。書籍の内容を理解できれば、多くの類似問題を得点源にすることができます。

Silverは出題範囲が広いため知らなければ解けない問題が出てきますが、GoldではRubyのルールを理解すれば「頭の体操」のような感覚で解くことができる問題が多かったです。

例えば、「メソッド探索」のルールそのものをメタプログラミングRubyを読んで理解していれば、それを当て込めば解ける問題が多く出題されます。

最後に

Silverのときよりも準備期間が短かったので不安ではありましたが、無事に一発合格することができました。実務・試験勉強を通して、よりRubyの楽しさに気づくこの頃です。

Goldも取ることができたので、次は前から学びたかったRSpecを本腰を入れて学んでいきたいところなのですが、本日、エンジニア向けのコミケイベント(?)技術書典6に参戦して技術書を複数冊買ってしまったのでまずはこちらからになりそうです(汗)

この記事の内容が役に立ったと思いましたら、SNSで記事を共有していただけますと幸いです。