【合格体験記】Ruby Gold試験対策に役に立ったこと
最初に
Ruby技術者認定試験 Goldを受験し、86点で合格することができました。
勉強方法や試験対策に役に立ったことを個人的な観点ですが話したいと思います。
受験の経緯
自分の場合、半年以上前にRuby Silverに合格したのち、一ヶ月後にGoldを受験し68点で落ちている経緯があります。
数ヶ月の実務経験を得たこと、また実務でもっとRubyを使いこなしたいという理由で、再チャレンジしました。
勉強方法
勉強自体は次の流れで行いました。総勉強時間は25時間程度です。
- メタプログラミングRubyを読む (1~5章)
- 問題集を解く
- 2に並行してEffective Rubyを読む
- 先人の記事を読む
試験対策として役に立ったこと
1. メタプログラミングRubyで言語仕様の理解を深める
Ruby Goldの勉強としてメタプログラミングRubyを読むことの最大のメリットは、メタプログラミングを学べることではなく、Rubyの深い言語仕様について学べることだと思います。
実際、試験ではdefine_method
やmethod_missing
等の基本的な仕様は問われますが、メタプログラミングの深い理解は問われないように思います。それよりも、オブジェクトモデルや定数探索、例外処理などの言語仕様を深く問う問題が多いです。
Rubyの言語仕様は、入門書では深ぼられていないことが多いです。
そこで私は、メタプログラミングRubyの1~5章を読むことによってRubyの言語仕様を学びました。
入門書よりも深く学べる、かつ試験内容ともマッチしていてかなり役に立ったと思います。
(メタプログラミングRubyの5章以降の内容はがっつりメタプログラミングになるので、試験対策目当てではそこまで優先度は高くなさそうです)
2. 先人の記事を参考に気をつけるポイントを覚える
Ruby Goldの試験では、見たこともないメソッドや、普段気にしていないような点について出題されることがあります。これらは、問題集でも見ない内容だったりします。
例えば、次のような問題です。
class A
@a = 1
end
p A.instance_variables
- [:@a]
- [:a]
- [@a]
- [a]
答え
- [:@a]
自分は1回目の受験で、これに近い内容の問題で間違えました;;
このような問題で点数を落とすのは避けたいです。
そこで、先人の方々がまとめてくれている記事が役に立ちます。
どういった問題が出たか、注意する点について説明されている記事が多くあります。
それらを読むことで、点数のロスを最小限に抑えることができると思います。
試験対策として時間対効果が薄かったこと
1. 問題集を周回しすぎる
問題集を周回しすぎると、意識せずとも問題と回答を覚えていきます。
これによって学習の効果が低くなってしまいます。
実際、自分が半年前に受験した際は、問題集は9割以上安定していたのですが、結果は68点でした。これは、問題集で高得点==理解できていると勘違いしていたのだと思います。
ではどうすればいいのか?
一つは書籍などでの言語仕様の理解に時間を取ったほうが良いと思います。問題集は、インプットした内容を確認するために利用するのが使い方として効果が高いと思います。
2つ目は、生成AIを使うことです。問題集は変わることがないので覚えてしまいますが、生成AIを用いて問題を作れば全く同じになることは少ないです。
自分は先人の記事から得た注意点について、生成AIを利用して問題を作ってもらい、理解できているか確認を行いました。
2. Effective Rubyを読んだこと
Ruby Goldの試験対策としてEffective Rubyを読んだという記事は見たことがないので、特殊かと思います。自分がこの本を読んだのは、試験までに時間があり、問題集を過剰に周回してしまうことを対策するためです。(本自体に興味があったというのもあります)
Effective Rubyの内容はTips集なので、実際に試験対策になったと思ったのは全体の2割程度でした。試験の合格のみが目的の場合はおすすめはしません。
Ruby Goldで扱う内容は普段余り使わないことが多いので、覚えゲーみたいな所があると思います。自分みたいに時間が余りそうと思った方は、試験までの期間を短く設定することをお勧めします。
ちなみに、Effective Rubyは試験対策としては有用ではないかもという話で、本自体は良い内容です!
最後に
Ruby技術者認定試験の受験を考えている方の参考になったら、幸いです!
株式会社ラグザイア(luxiar.com)の技術広報ブログです。 ラグザイアはRuby on RailsとC#に特化した町田の受託開発企業です。フルリモートでの開発を積極的に推進しており、全国からの参加を可能にしています。柔軟な働き方で最新のソフトウェアソリューションを提供します。
Discussion