RubySilver合格体験記


# はじめに
[「Ruby技術者認定試験Ver3」](https://www.ruby.or.jp/ja/certification/examination/)（以降、RubySilver）を受験して、合格しましたので体験記として記録したいと思います。
受験を考えている方の手助けになれば幸いです。


## 資格取得を目指した理由
今の会社ではSESと自社サービスの開発に携わっており、自社サービスではRubyを主に使用しています。
私自身Rubyでの開発経験は無く知識も浅かったので、最低限の知識を身につけて会社に貢献したいと考えました。
そのときにRubySilverの存在を知り、体系的に学ぶために学習をはじめました。

## 使用した教材・参考書の紹介
### [Rex](https://rex.libertyfish.co.jp/)
過去問演習を行えるWebサイトです。
スマホからでも演習ができるので、出先や移動時間でも気軽に勉強できるので重宝しました。
出題内容もランダムで変わるので、答え暗記してしまう問題も解消されやすいです。
使用するためにはGitHubアカウントが必要になります。
### [最短突破 Ruby技術者認定試験（Silver/Gold対応） 公式テキスト](https://amzn.asia/d/fB1LPxI)
Ver3に対応したテキストで、演習問題もSilverだけで80問あるので辞書的に使用するだけでなく、演習にも使用することができます。
SilverとGoldの両方に対応していますが、テキスト部分については明確に「ここまでSilverの範囲」という区切られ方がされていないので、間違ってGoldの範囲まで勉強しないように注意しましょう。（勉強のためなら全然OKです）
### [公式問題集Ver3.0](https://github.com/ruby-association/prep-test/blob/version3/silver_ja.md)
GitHub上に用意されている問題集です（50問）
難易度的には易しめだと感じましたが、試験中に見覚えのある問題が出ていたので使用することをおすすめします。
[以前のVerの問題集](https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0)もあるので時間がある方は解いてみてください。
### [Ruby公式リファレンス](https://docs.ruby-lang.org/ja/latest/doc/index.html)
メソッドを確認したりするのに使用しました。
試験に出題されなかったメソッドなども詳しく説明されています。実務でも読む機会が出てくると思うので、読み方を身につけるという意味でも活用しました。

### [Ruby Silver勉強中のメモ](https://zenn.dev/nakayama_bird/scraps/11a92f6d597c5b)
Zennのスクラップで、主に試験前の確認のために使用させていただきました。苦手意識のある部分の復習を手軽にできて、とても助かりました。

### [Paiza.IO](https://paiza.io/ja)
教材ではないですが、問題の動きを確かめたいと思ったときに使用していました。
環境構築などを行わずにコード実行ができるので、ちょっと確認したいなあと言うときにとても便利でした。

## 学習計画の立て方
学習期間は2ヶ月くらい（長くて3ヶ月）と設定して学習をはじめました。
学習方法としては以下の流れで行いました。
1. テキストを軽くすべて読む（理解できなくてもいい）
2. テキストの演習問題や過去問を解く
3. 不正解だった問題の解説を読みながら、テキストや公式リファレンスで該当箇所を確認
4. 2と3を繰り返していると苦手分野がわかってくるので、重点的に学習する

テキストをじっくり読んでから過去問演習を行うのではなく、テキストは軽く読んでどのような内容が問われるのか知る程度に抑えました。
そのぶん過去問や問題集を何度も解き、苦手分野を潰していく方法が自分に合った学習法だと感じました。
何度も過去問を解いていると答えを暗記してしまうこともありますが、**「なぜこの問が正解なのか、不正解なのか」** を説明できるように理解していけば問題ないと思います。


# 学習で苦労したポイント
## 出題傾向、苦手分野
問題の傾向としては、やはり組み込みライブラリ（String、Array、Hashなど）のメソッドについての問題が多かったと感じます。
過去問を解いている中でも「どのメソッドを使用するのが正しいか？」や「メソッドの戻り値」についての問題が多かったので、必ず理解する必要があります。
クラスごとのメソッドによっては、名前は同じでも動きが異なったり（deleteなど）、配列として返されたりハッシュとして返されるなどメソッドによって様々なので、注意が必要です。

以下の項目は出題数としてはそれほど多くなかった記憶ですが、最後まで苦手意識が消えませんでした...
- 正規表現
- File,Dir,IOクラス
- n進数


# 試験当日の流れと感想
## 試験の予約方法と当日のスケジュール
試験の予約は[こちら](https://www.prometric-jp.com/examinee/test_list/archives/10)からできます。
私の地域だけかもしれませんが土日は試験会場の数が少なく、直前に予約しようとすると既に満席の場合が多かったので、早めに予約することをおすすめします。
当日は**予約時間の15分前までには受付を完了**させないと試験を受けることができないので、注意しましょう。

## 試験の難易度と所要時間
試験時間は90分ですが、解答と見直しを含めても60分もかかりませんでした。
試験の内容も過去問や演習問題で見たことのある内容が複数あったので、勉強方法は間違っていなかったのかなと思いました。
## 合格の手ごたえや受験後の感想
受験終了時の感想としては「意外と簡単だなー」でした。
しかし、点数を確認すると82点でギリギリの合格だったのでかなりショックを受けました。
どこが不正解だったのかは知ることができないのですが、以下が原因で点数を落としてしまった思います。
- 上記で挙げた苦手分野を完全に克服できていなかった
- 逆に間違えないと思っていた分野が、トリッキーな出題でされていて間違ってしまった？

### 反省点
Rubyの理解を深めるために資格の勉強をはじめましたが、試験日が迫ってくるにつれて焦ってしまい、合格するための勉強になってしまいました。
もう少し落ち着いてリファレンスを確認したり、irbなどで動作確認する時間を多く取っていればより一層理解が深まり、点数も自然と伸びたのかなと思います。
ただ自分の性格的に長期間資格の勉強をするとダレてしまったり、わざわざ受験しなくてもいいかとなってしまうので難しいところです...

# おわりに
今回のRubySilver受験を通して、少しですがRubyへの理解を深めることができました。
実務で開発を行っているとフレームワークの力に頼りがちで、Rubyのことをあまり知らないまま開発を進めてしまっていたと実感しました。
資格を取ったからすぐに開発スキルが伸びるかと聞かれると「はい」とは言えません。しかし確実に自分の力になってくれることは確かですし、体系的に学べるうえに自信にもつながるので取得して良かったと思います。
なにより実務で使用している好きな技術を勉強するのは楽しいです笑
RubyGoldもいつかは取得したいなと思っているので、そのときが来れば今回の反省点を活かして学習に励みたいと思います。

ここまで読んでいただき誠にありがとうございました。