Ruby Gold 3.1 落ちました → 「無料でもう一度受験できるってマジ？」(Ruby Gold 3.1 合格体験記)

# はじめに

　2022年10月〜 Ruby技術者認定試験の対象バージョンを3系に対応したものに変更されました。
「Ruby Silverを取得したから次はRUby Goldを取得しよう！」 と勉強を続けていたらいつのまにか新しいバージョン対応になる話を聞きました...

　新試験になることに不安を持ちつつもどうせなら新しいバージョン対応の資格持っているぜと胸を張りたいので新試験を受けることにしました

 そんな合格体験記を綴ります。
 手早く、新試験はどのような勉強をすれば良いか知りたいと言う方は `6. まとめ` まで飛ばしてご覧になることをオススメします

# 1. 受験前

「新試験になるならそれ対応の参考書欲しいなー」

https://www.amazon.co.jp/dp/B016B877OG/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

　すでに Ruby Silverを取得していた私はその時に購入していた参考書を持っていてRuby Goldにも対応していたのですが、旧試験のものなのでやはり新試験に対応したものを揃えておきたいと考えました

ですが...

**参考書がないやん！！！**

　上記のような資格専門で新試験に対応していないものがなくて頭を抱えました。
　とはいえ、新しく発行されるのを待つわけにもいかず自分なりに分析しながら勉強を取り組むことにしました

## 1-1. 分析

「新試験の範囲ってどうんなふうに変わるんだろう？」

　そう思い、公式ページから推測してみようと思いました。旧試験のページも削除されていなかったため技術者らしくdiffをとって推測してみました

- 旧試験ページ: https://www.ruby.or.jp/ja/certification/examination/version2.1.html
- 新試験ページ: https://www.ruby.or.jp/ja/certification/examination/version3.html

### 実行環境

```diff_ruby
  コマンドラインオプション
- 組み込み変数/定数
```

### 文法

```diff_ruby
+ リテラル
変数と定数
演算子
ブロック
例外処理
大域脱出
キーワード引数
+ ナンバードパラメータ
ラムダ式（->）
+ パターンマッチ
+ ヒアドキュメント
```

### 組み込みライブラリ

```diff_ruby
よく使用されるクラス、モジュール
（Object、Module、Kernel、Enumerable、Comparable等）
数値
正規表現
+ Proc
+ Enumerator
```

### 標準添付ライブラリ

```diff_ruby
- よく使用されるライブラリ（socket、date、stringio等）
+ time、date、singleton、forwardable等
```

### オブジェクト指向

```diff_ruby
メソッドの詳細
メソッドの可視性
クラスの詳細
クラスの継承
モジュールの詳細
+ Module#prepend
+ Refinements
```

　ぱっと見て
- `ナンバードパラメータ` `パターンマッチ` は旧試験ではまだ実装されていないものなので出そうな気がする
- `組み込み変数/定数` の行が削除されたり、標準添付ライブラリの範囲が明確（っぽく）に見える

やはり新試験を名乗るだけあってそこそこ新しい分野が出題されるのではと思いました

## 1-2. 勉強

「じゃあ新しく追加された機能を重点的に勉強しようっと」

　主にRuby 2.7で新機能が増えた印象があったのでそれらをリリース内容や参考になりそうな記事を読んで理解を深めました

【参考にさせていただいた記事】
- [プロと読み解くRuby 2.7 NEWS](https://techlife.cookpad.com/entry/2019/12/25/121834)
- [サンプルコードでわかる！Ruby 2.7の主な新機能と変更点 Part 1 - 番号指定パラメータ（numbered parameter）](https://qiita.com/jnchito/items/79f0172e60f237e2c542)
- [サンプルコードでわかる！Ruby 2.7の新機能・パターンマッチ（前編）](https://qiita.com/jnchito/items/9bb4aa1dcefa00257815)
- [サンプルコードでわかる！Ruby 2.7の新機能・パターンマッチ（後編）
](https://qiita.com/jnchito/items/a9c7030cb5697f992cb7)
- [サンプルコードでわかる！Ruby 2.7の主な新機能と変更点 Part 2 - キーワード引数に関する仕様変更
](https://qiita.com/jnchito/items/c15ac23791e0320e0fc2)

「あとは模擬試験も受けて自信をつけておきたいな」

　持っていた参考書には模擬試験があったり、外部サイトで有名な [RubyExamination（REx）](https://www.ruby.or.jp/ja/certification/examination/rex) にて模擬試験を受けることができます。
　しかし、旧試験の問題で答え合わせする時、新しいバージョンによって答えが変わっているものもあり、敬遠しました

　その代わり、GitHubにて新試験用対応の問題が公開されていましたので以下の問題を反復して解くことにしました

https://github.com/ruby-association/prep-test/blob/version3/gold_ja.md

# 2. そんな感じでいよいよ受験

「新機能も網羅したし、模擬試験も解いたし、大丈夫だろう！！！」

と意気揚々と試験会場へ

↓
↓
↓

**落ちました** :joy: :joy: :joy: 

　受験費用もかかるものなので一発で合格したかったですが、結果は呆気なく落ちました orz ...

　とほほと落ち込んでいましたが、実は私が受験した期間中は以下のキャンペーンがあり、再試験を無料で行えました :thumbsup: :thumbsup: :thumbsup: 

https://www.ruby.or.jp/ja/news/20220906

# 3. 1回目受験してみた感想と反省

「新しい機能についての問題は少ないやんけ！！！」

　私が実際に受けてみて感じたのが、新機能などについての問題はそこまで多くないと言ったものだした。
　　先述した `ナンバードパラメータ` `パターンマッチ` についても `ナンバードパラメータ` に関わる問題は2問ほど、 `パターンマッチ`　については1問も出題されませんでした...

　新しい分野についての出題は私の覚えている限り5, 6問でした。割と新しい箇所は出なかったという印象です。

具体的なイメージですと
　前提として Ruby技術者認定試験 は 50問(100点満点)で合格点は75点以上なので38問以上正解しなければなりません。
　つまり新しい分野を全て落としても他がしっかり取れていれば安定して合格できそうだったということです

　逆に言うと旧試験・新試験関係なくRubyの根本的なことについてしっかり理解できていれば受かるはずということです(自分は理解できていなかったと言うことですが :sweat: )

# 4. 改めて勉強

「新機能についてはもう勉強しなくても良いな」

　新機能については先述した記事や模擬試験を解いたことで理解できましたし、実際本番でも自信を持って解くことができました。
　また、難しい問題は出なそうだったので基本的なことだけ頭に入れて模擬試験をさらっておけば本番でも解けそうでした。

　あとは根本的な箇所を再び勉強しました。

 ここでいう根本的と言うのは主に `オブジェクト指向` など先述したdiffで変わっていないところです。特に以下は受験後改めて勉強して挑もうと思える問題が多かった印象です

```
メソッドの詳細
メソッドの可視性
クラスの詳細
クラスの継承
モジュールの詳細
```

　上記の分野は一部を除いて旧試験とほぼ変わっていないものなので旧試験の参考書を確認しつつ模擬試験を解きました

　根本的なところが変わっていないだけあって旧試験同様以下から似たような問題は変わらず出ていました。
 　1回目の受験前に敬遠していた参考書の模擬試験、 [RubyExamination（REx）](https://www.ruby.or.jp/ja/certification/examination/rex) を解きました。

　敬遠していましたが、よくよく考えると新試験の `受験対策用資料` にも載っているということは公式からもここら辺は変わらず抑えておけってメッセージだったのかもしれません！

# 5. そうして2回目の受験へ

次受ける時は今度こそ受験費用が発生してしまう(それが普通)最後のチャンスそうして迎えた2回目の受験

↓
↓
↓

合格しました :tada: :tada: :tada: 

　2回目受けた所感ですが、新しい分野の問題数も1回目と大きな差はなく同じ問題も難問か出題されていました
　こうして無事 Ruby Gold取得できました！

# 6. まとめ

以上から私が Ruby Gold 3.1 を受験する上で以下の点で進めていただくと良いと思います！

- 出題の問題は旧試験と変わらないものも多く存在するためまだ新試験対応の参考書がない場合は旧試験のものでも根本的なことは網羅できるのでそれらを参考にしてみてください
- [RubyExamination（REx）](https://www.ruby.or.jp/ja/certification/examination/rex)など旧試験対応の模擬試験も解いておくこと(Rexでしたら平均90点以上スコアが出せるようになれば良いかと思います)
- 新しい分野については以下の模擬試験を解きつつわからない箇所が出たらRubyリファレンスや技術記事を見て頭に入れておくとさらに点数アップが期待できます

https://github.com/ruby-association/prep-test/blob/version3/gold_ja.md

https://docs.ruby-lang.org/ja/latest/doc/index.html

- 以下の期間中はまだ再受験無料キャンペーン実施中なので是非この機会を狙ってみてください！(詳しくは[公式ページ](https://www.ruby.or.jp/ja/news/20220906)へ！)

>申請期間
2022年10月3日（月）～2023年1月20日（金） 23:59　申請分まで
再受験可能期間
2022年10月11日（火）～2023年1月31日（火）