🎯

【合格体験記】Ruby Gold 合格のために行った勉強方法

に公開

この度、Ruby Association Certified Ruby Programmer Gold version 3 (以下、Gold 試験)を受験し、96点で合格しました。
どの様に勉強して合格に至ったのかを体験記としてまとめようと思います。
Gold 試験を受験しての内容となっていますが、Silver 試験の受験においても部分的に流用できる内容になっているかと思います。

受験した経緯

C#エンジニアとして株式会社ラグザイアに入社してから1年後、会社から Ruby on Rails の案件をやってみないかという提案があったことがきっかけとなり、Ruby エンジニアとしてのキャリアを歩み始めました。
右も左も分からぬ web 開発。とりあえず資格勉強を通じて Ruby を学ぼうと思い、Ruby技術者認定試験を受験することにしました。(資格手当も付くし・・・!)

下位試験について

Silver 試験は 2023年9月に受験・合格しており、 Gold 試験の受験はそれから1年半後になっています。
間が開いた理由は特に無く、ズルズル先延ばしにしていただけです。
Gold 試験では Silver 試験の領域の知識も多少問われることがあるので、Gold 試験の受験を視野に入れる場合は Silver 試験合格後に間を開けずに Gold 試験の申し込みを行う事を強くお勧めします。
私が落とした設問のうちひとつは、Silver 試験受験後すぐであれば絶対に落とさない様な設問でした・・・。
(mapメソッドの alias として collectがある事を覚えていれば得点できていた設問)

勉強方法

まず、既に弊社社員がいくつか合格体験記を書いているので、それらを参考にしました。

https://qiita.com/jonakp/items/c7b7ecfe3eb9ee8c950e
https://zenn.dev/luxiar/articles/434b62921cd0f3
https://zenn.dev/luxiar/articles/31fc85a78b80f8

他、先駆者の方々の記事を片っ端から読んで、内容を忠実にトレースすることで、今回の結果を得ることができました。

具体的な勉強方法

  1. メタプログラミングRuby 第二版の Ⅰ部 (1章 ~ 6章)を読む
  2. RubyExamination(通称 REx)の「Goldチャレンジ」をやる
  3. 2 をやっている中で、理解の怪しかった設問のキーワード(メソッド名など)を都度 Obsidian(メモアプリ)にリストとして残す。
    正解できる設問だったとしても、暗記してるだけの場合もあるので、「なぜその選択肢が正解なのか」を暗唱できない設問のキーワードは全て残していく。
  4. 2 が終了後、解答と解説が参照できる様になるので読む。正解した設問の分もちゃんと読む。
  5. 3 のリストを ChatGPT に投げて解説を付けてもらって読む。
    解説は自分が理解できるレベルになるまで ChatGPT と繰り返し壁打ちし、最終的な解説を 3 のリストに追記していく。
  6. 2~5 を点数が伸びる限り繰り返す。
    (7回ほど繰り返しました。)
  7. 70点程度で点数の伸びが頭打ちになったので、座学に切り替える。
    (公式テキストを通し読みしました。)
  8. 再び、2~5 を満点を目指して繰り返す。ここからはRExだけではなく、公式テキストの模擬試験や公式の模擬問題も織り交ぜる。(REx以外の模試にこのタイミングで着手した理由は、学習の初期からやっていると回答を暗記してしまうため)

2月4日に試験勉強を開始し、試験当日の3月2日までの27日間、ほぼ毎日このルーチンに則って学習を行いました。(試験前日はしっかりと休みました。)
1日につきだいたい1~2時間くらい掛けていたので、トータルの学習時間としては20~35時間くらいに収まるのかなと予想します。(学習時間についてはしっかりと測らずにやりたい時にのんびりとやりました。)

メタプログラミングRuby 第二版 について

Rubyを使ったメタプログラミングについて解説する書籍です。
先駆者の方々がやたらと推しているし、公式サイトの受験対策用資料の中にも含まれていたので、とりあえず試験勉強のとっかかりとして読んでおこうと手に取りました。
タイトルの堅苦しさに反して、内容はユーモアに溢れていてとても読みやすかったです。
Ruby 初心者のボブとそのメンターのビルが業務上の課題に対し、Ruby のメタプログラミング技術を如何に駆使して解決するかという物語形式でわかりやすく書かれています。
Gold 試験の対策をしているだけでは得られなかったであろう、「こんな機能いつ使う機会があるんだ?」という疑問に対する答えが一冊の中に詰まっています。
私は暗記が苦手で、なぜそれが必要になるのかの背景を知る事で記憶する習慣があるため、とても助かりました。
Gold 試験合格後に改めて読み直したくなるほど良い本でした。

RubyExamination(REx) について

リバティフィッシュ株式会社が提供する、Ruby技術者認定試験用の模擬問題集です。(無料!!)
学習の目途が立たない時はとりあえずこれやっときゃ問題無い系の便利な教材ツールですが、以下の注意点があります。

Ruby技術者認定試験は2022年10月3日を機に Ruby version 3 系を対象とする新試験に切り替わっています。
しかし、REx は新試験に切り替わる以前の旧試験(Ruby version 2.1系)の頃に作られたものの様で、新試験では不正解になる選択肢が正解になってしまう設問が含まれています。
旧試験と新試験のバージョン差異については、以下の記事の中にとてもよくまとめられているので、RExを使う前に読んでおくと良いかと思います。
https://qiita.com/universato/items/e5a9b2fb75e412f8e780#現バージョン31と試験バージョン21の差異

このことがあり、RExだけを使ってガッツリ勉強をすることにはリスクがあります。
必ず別の教材を併用する様にしてください。
ただ、そのリスクを負ってでもRExを使って勉強するメリットはあると思います。
理由としてはふたつあります。

出題がランダムであること

設問が固定された模試の場合、繰り返し実施して正解の選択肢を暗記してしまうと、それ以上実施する価値がなくなります。

本番よりも若干踏み込んだ、難しめの設問が多く含まれていること

本番では出題されることがなかった、機能の仕様を深く理解していないと解けない様な入り組んだ設問が出題されます。
私はRExの最終的な平均点数は80点前後でしたが、本番では90点以上を取ることが出来ました。
しかし、RExでフォローされていない分野の設問も本番では出題されたので、後述の公式テキストや公式の模擬問題などの別の模擬試験でも高得点を取れるように対策しておいた方がよいです。

公式テキスト について

2024年6月26日にようやく待望の新試験対応の公式テキストが出版されました。
Silver 試験合格から Gold 試験までの間が開いたのは、これを待っていたからというのも理由のひとつになります。(言い訳)
各要素の解説は若干大味なところがありますが、公式テキストだけあって、この本に出てくることを押さえておけば大丈夫という安心感があります。
なにより、巻末の模擬試験の存在が大きいです。これをやる・やらないでは合格率が大きく変わると思います。(一部の設問の解答に誤りがあるので、本の公式サイトの正誤表を必ず確認する様にしてください)

Obsidian について(試験とは特に関係ないです)

Obsidian はマークダウンエディタです。
マークダウン記法でメモを取るタイプの人間にはうってつけのアプリだと思います。
段落を折りたためる機能があるので、理解が怪しかったキーワードの解説部分を折りたたんで暗記カードの様にして使えるのが個人的に良かったです。
課金すれば端末間でメモを共有できるので、PCでメモした内容を試験直前にスマホで確認するという使い方ができたのも大きかったです。
オススメ。

試験本番について

RExなどでは、正解の選択肢がひとつなのか複数なのかが明記されていない設問が多かったですが、本番の設問では「Nつ選択」と明記されていました。(複数選択とは書かれているが、選択数が明記されていない設問も一部ありました。)
私の場合、一通り解き終わったあとに見返しをした際、自分の回答の選択数が設問の選択数とマッチしていない設問がいくつかあったので、余った時間で見返しは念入りにした方がよいです。
私は修正点が見付からなくなるまで4回繰り返し見返しました。
つまらないポカミスで失点するととても悲しいです。出来る対策はしましょう。

受験してみての感想

受験前日まで合格できるかビクビクしてましたが、終えてみればそんなにビビらなくてもよい程度の難易度の試験でした。
教材が充実しているので、それらを使ってしっかり対策すれば特に問題無く合格できるかと思います。

Ruby に関する知識を問う試験のため、Rails を使った開発に活かせる要素はそんなに無い印象ですが、Rails そのものが Ruby によってどの様に作られているかを知る一助にはなるので、受けて損は無い試験だと思いました。

ラグザイア

Discussion