本サイトは広告・プロモーションが含まれています
雑記

【1ヶ月で合格】Ruby未経験のエンジニアがRuby Silverを突破した勉強法と5つの要点

この記事はこんな人におすすめ

・Ruby Silver受験者
・効率的なRuby Silverの勉強方法が知りたい型
など

どうもこんにちは、管理人のコンです。

先日(2025年6月22日)、Rubyの認定資格であるRuby Association Certified Ruby Programmer Silver version 3:を受験する機会があって、受けてきました。

結果は。。。

合格!!

点数は82点と胸を張れるほどの高得点ではないですが、勉強頑張った甲斐があってホッとしてます。

Web上には素晴らしい合格体験記がたくさんありますが、このブログでもn番煎じながら、私なりの体験記を書いていこうと思います。特に「ここを押さえておけば合格ラインに届きやすいと感じたポイント」もまとめたので、これから受験される方の参考になれば幸いです。

筆者のバックグラウンド

Ruby Silverのような専門技能系の試験では、受験者の専門分野・バックグラウンドによって必要な勉強時間が変わってくると思うので、私のバックグラウンドについて書いていきます。

  1. PythonとtypeScript(javaScript)は仕事でよく使う。Ruby??初めて触るぞよ。
  2. プログラミング歴は10年近いから、クラスとか破壊的メソッドの考え方とかは分かる。
  3. 基本情報の資格はもってるから、2進数とか論理演算子とかの処理も分かる。

こんな感じで、1ヶ月前はプログラミングの事はある程度知っているけど、Rubyのコードは読んだことない状態からのスタートでした。

勉強方法

毎日寝る前に1時間くらい勉強という、少し緩めの勉強でしたが
トータルでは30時間弱は勉強したかなと思います。

複数の教材を組み合わせることで、飽きずに知識を定着させることができました。参考になれば嬉しいです。

Ruby問題集のアプリ

まず私が始めたのは、iPhoneにRubyの問題集アプリを入れて、通勤電車や待ち時間にポチポチすることでした。

この方法が良かった理由:

  • 手軽さ: いつでもどこでも、スマホ一つで勉強できる。
  • 環境構築不要: 面倒な環境構築なしに、すぐRubyのコードに触れられる。
  • 違いの把握: フラッシュカード形式でサクサク進むので、普段使っている言語(Pythonなど)との文法の違いを効率的に把握できる。

アプリは月額制ですが、無料期間があったので、私はその期間で集中的に勉強させてもらいました(笑)。

Ruby技術者試験合格教本の問題集を解いたり読んだり

言わずと知れたRuby試験の公式テキスト。

試験範囲の文法解説に加え、演習問題と模擬試験が計80問ついてきます。本番でも「あ、これ見たことある!」という類似問題が出題されるので、必須の一冊です。

ただ、正直なところ、解説が少し物足りない部分もあるので、「読む」だけでなく、自分のPCでコードを動かして試すことが重要だと感じました。

GitHubに公開されている問題

このリンクにある問題集も勉強しました。

一部問題が変な箇所もありますが、公式問題集と同じような傾向を出していて勉強になりました。

生成AIによる解説


問題集を解いていて、「なぜこの選択肢は間違いなんだろう?」「このメソッドの他の使い方って?」といった疑問が出てくることがあります。公式問題集も解説が手厚いとは言えないので、そんな時に生成AIを活用していました。

私は普段からGeminiを愛用しているのですが、以下のように質問することで、理解を格段に深めることができました。

  • 「この問題の選択肢Bは、どう修正すれば正解になりますか?」
  • String#deleteメソッドの具体的な使用例を3つ教えてください。」

このように、自分で能動的にAIに質問することで、知識を効率的かつ確実に定着させることができました。

合格のポイント

Silverは100点満点中75点以上で合格です。つまり、25点分(問題数にして12問)は間違えてもいい、ということ。

全てを完璧に覚えるのではなく、頻出ポイントを確実に押さえることが合格の鍵です。

おそらく以下の5点のポイントを覚えておけば、問題集に掲載していない問題にも対応可能になり合格することができると思います。

クラスの書き方やbegin resucueの書き方はマスターする

クラスの定義、継承、begin-rescue-else-ensure-end の構文と実行順序は覚えましょう。

基本的な文は何回も問題集を読めば自然と頭に残ると思うので、他のプログラミングの文法とごちゃ混ぜで考えないのがポイントです。

String, Array, Hashのメソッドとエイリアスは覚える

特に String, Array, Hash クラスの頻出メソッドは、戻り値や破壊的かどうかを含めて整理して覚える必要があります。エイリアスもセットで覚えるのがポイントです。

例えばArrayクラスのメソッドは私は以下の表のようにまとめたりしてました。

メソッドエイリアス機能
lengthsize配列の要素数を返す。
slice[]指定した位置や範囲の要素を返す。
mapcollect各要素にブロックを適用し、その結果からなる新しい配列を返す。
filterselectブロックの評価結果が真(true)になる要素だけを集めた新しい配列を返す。
finddetectブロックの評価結果が真になる最初の要素を返す。
include?member?指定した要素が配列に含まれていればtrueを返す。

個人的には、「Hashのselect の戻り値はHashだが、Hashのshift の戻り値は配列になる」といった、メソッドごとの戻り値の型が違う点を覚えるのが苦手でした。

StringとArrayの範囲指定の問題は間違えない

StringArrayの範囲指定は、必ずと言っていいほど出題されます。 a[1, 3] のようなカンマ区切りと、a[1..3] のようなドット区切りの違いを、自分でコードを書いて完璧に理解しておきましょう。

a = [1, 2, 3, 4, 5]
p a[1, 3]

ここを得点源にできると非常に楽になります。

破壊的メソッドと非破壊メソッドのひっかけ問題に気を付ける

ひっかけ問題の定番です。invertinvert! のように、!が付くかどうかで元のオブジェクトが変更されるかどうかが変わります。

original_hash = { name: "Taro Yamada", age: 30, city: "Tokyo" }

# キーと値を入れ替える
inverted_hash = original_hash.invert

p inverted_hash
#=> {"Taro Yamada"=>:name, 30=>:age, "Tokyo"=>:city}

p original_hash
#=> {:name=>"Taro Yamada", :age=>30, :city=>"Tokyo"} (元のハッシュは変わらない)

また、「同じ名前のメソッドでも、クラスによって破壊的かどうかが違う」という点も注意が必要です。

Stringのdeleteメソッドは非破壊
ArrayとHashのdeleteメソッドは破壊的メソッド

このような紛らわしい違いは、重点的にチェックしておきましょう。

正規表現も間違えなくなるまで勉強

正規表現は範囲が広いですが、Silverで問われるのは基本的な記号の意味や、簡単なマッチング問題が多いです。難しいパターンは後回しにして、まずは基本的な記号(^, $, \A, \z, [], | など)と量指定子(*, +, ?)、文字クラス(\d, \s, \w)を確実に押さえましょう。

(例) 正規表現の基本記号

  • ^ : 行の先頭にマッチします。
  • $ : 行の末尾にマッチします。
  • \A:文字列全体の、絶対的な先頭にマッチします。
  • \z:文字列全体の、絶対的な末尾にマッチします。
  • \Z:文字列全体の末尾にマッチしますが、末尾が改行文字(\n)の場合、その直前にもマッチします。
  • [] : 文字クラスといい、角括弧内のいずれか1文字にマッチします。
    • 例: [abc] は “a” または “b” または “c” のいずれか1文字にマッチします。
    • 例: [Nn] は “N” または “n” のいずれか1文字にマッチします。
  • | : OR条件を表し、| の左側または右側のパターンにマッチします。

おわりに


合格のポイントで書いた箇所も、本番ではおそらく1, 2問は間違えましたが、無事に合格することができました。良かった〜。

実は最近、気になっている企業がありカジュアル面談を受けさせてもらったのですが、その際に「Ruby経験はなくても、Silver資格を取るくらいのスキルと意欲があれば、ぜひ検討したい」というお話をいただいたのが、今回受験した大きな動機でした。

Rubyは書いていて楽しい言語ですし、今回の受験は自分にとって非常に良い勉強になりました。

この記事が、これからRuby Silverに挑戦する誰かの助けになれば、良い感じにハッピーです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA