はじめに
2024年の6月27日にRuby Association Certified Ruby Programmer Gold version 3(以下「Ruby Gold」)に合格しましたので、どのように勉強したのか、実際に役立ったのか等をSilver編とGold編の二つに分けて記事にしようと思います。
Silverは90点で合格しました。
Ruby技術者認定試験とは
Rubyベースのシステムを設計、開発、運用するエンジニア、Rubyでシステム提案を行うコンサルタント、Rubyを教える講師及びRubyを学ぶ学生などを対象とした認定試験制度です。
Silver
Rubyの文法知識、Rubyのクラスとオブジェクト、標準ライブラリの知識について、基本的な技術レベルを持つことを認定します。
ちなみに、Goldの認定条件はSilverとGoldの両方に合格することとなっています。
項目 | 内容 |
---|---|
試験時間 | 90分 |
試験方法 | CBT形式 |
問題数 | 50問 |
合格ライン | 75% |
料金 | 16,500(学割で8250円) |
出題範囲は公式をご覧ください
勉強時間
勉強時間は1日1時間を3週間強継続して、テスト当日と前日は3時間勉強しました。
元々、Rubyを実務で使用していたこともあり勉強時間としては約25~30時間で合格しました。
Ruby未経験でも合格するだけであれば、40~50時間ほどで合格できるかなと思います。
学習教材
プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで
自分はただ、資格試験に合格するというよりはRubyの基礎力を付けたいという面が大きかったです。
そのため、いわゆるチェリー本でテスト範囲の部分を再学習しました。
実務で役立つ知識を再定着させつつ、テストに出る範囲は入念に覚えました。
その後は、とにかく過去問や模擬問題の演習です。
REx
- Silver、Goldの模擬問題が合計で300問あり、毎回ランダムで出題が変わります
- 体感的に安定して85%解けるようになれば合格ラインになります
- スマホでも出来るので通勤時間にもぜひ
- 間違えた問題は Ruby リファレンスマニュアル と 実行環境で動かしてみましょう
- 個人的には実行環境で動かすのは直感的に理解できるので一番おすすめしてます
[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応)Ruby公式資格教科書
Ruby技術者認定試験Silver/Goldに対応した公式テキストの改訂2版です。
こちらの基礎問題集と模擬問題集を、3週程して9割以上は取れる状態にしておきました。
ただ2024年6月26日に最新版が出たそうなので、今から勉強するのであれば以下がおすすめです。
Ruby技術者認定試験Silver模擬問題
Rubyの模擬問題集になります。
レベル的には教本よりも少し優しいくらいです。
こちらも、9割以上は取れる状態にしておきましょう。
実際にRuby Silverの問題を解いてみよう
問題1
次のコードを実行するとどうなるのか
$val = 0
class Count
def self.up
$val = $val + 1
$val == 3 ? true : false
end
end
[*1..10].any? do
Count.up
end
p $val
- 1: 10が表示される
- 2: 1が表示される
- 3: 0が表示される
- 4: 3が表示される
正解は...
#any?
はブロック内の処理が一度でもtrue
を返すと処理を終了します。
そのため、$val
が3になった時点で処理が終了します。
よって答えは、4の「3が表示される」です。
ref: https://docs.ruby-lang.org/ja/latest/method/Enumerable/i/any=3f.html
問題2
次のコードを実行するとどうなるのか
a1 = "abc"
a2 = 'abc'
print a1.equal? a2
print a1 == a2
- 1:
falsetrue
と表示される - 2:
truetrue
と表示される - 3:
falsefalse
と表示される - 4:
truefalse
と表示される
正解は...
#equal?
はオブジェクトが同じかどうかを判定するメソッドです。
一方、==
はオブジェクトの値が同じかどうかを判定します。
今回の場合、a1
とa2
は異なるオブジェクトを参照しているため、#equal?
はfalse
を返し、==
はtrue
を返します。
よって答えは、1の「falsetrue
と表示される」です。
rubyのstringは同じ値を持っていても、生成するたびに別のobject_idが生成されます。
例
>> "hoge".object_id
=> 62440
>> "hoge".object_id
=> 64060
最後に
いかがでしたでしょうか?
Ruby Silverは問題数を多くこなして、暗記することが重要になる試験です。
今回挙げた教材をこなしていけば、問題なく合格できる内容になっていると思います。
Ruby Silverを取得することで曖昧な部分もクリアになり、「なんとなくコーディング」
がかなり減ったと思います。
また、次回紹介するGoldは単なる暗記ではなく、Rubyのオブジェクト指向やメタプログラミングの知識やRubyがどう動くかなど本質的な理解が求められることが多くなります。
今回の記事が、Ruby Silverを受験する方の参考になれば幸いです。