Ruby技術者認定試験【Silver】合格しました！勉強法やスケジュールを公開します！

## はじめに
つい一週間くらい前にRuby技術者認定試験を受験して、無事合格しました！
受験しようと思ったのが1ヶ月前くらいで、勉強期間は約1ヶ月。
勉強スケジュール等の見通しもない状態で、とりあえず先に試験に申し込んで日程を決める「テスト(日程先に決めちゃう)駆動開発(勉強法)」でなんとか合格しました。

これから受験を考えている方や、試験勉強を絶賛している方の参考になればと思い、テスト勉強でどんなことをしたのかまとめようと思います！


![study_night_boy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485238/ced2b49f-538d-0d72-3c18-893e658ce6e2.png)


## 前提
一旦ここで自分のスペックをご紹介しておきます。

```
サーバーサイドエンジニア歴: 4年
Ruby歴: 1年半
業務でもRubyを使用している
好きな食べ物: オムライス
```

## 結論
自分は下記の順番で勉強していきました！
不安だったので、ネット上に転がっている合格体験記をいくつか読んだのですが、下記であげている問題集たちを解いていけば漏れはないと思います！

```
①Ruby技術者認定試験合格教本をサラッと読む
②とりあえず公式問題を解く(https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0)
③RExを解く(https://www.ruby.or.jp/ja/certification/examination/rex)
④模擬問題集も解く(https://github.com/ruby-association/prep-test/blob/version3/silver_ja.md)
⑤Ruby技術者認定試験合格本の巻末の問題集を解く

ひたすら②〜⑤を繰り返す
```

基本的に暗記なので、問題を解く→解説を読むの繰り返しでなんとかなります。
受けた感覚だと、上記でご紹介した問題と同じ問題が7割くらい出ていた気がします！

自分は業務でRubyを使っていてある程度言語には慣れていたのですが、業務経験がない方やRubyをまだ書いたことがないという方は、入門書を一冊通して読んでおくと良いかもしれません！

入門書としてはこのあたりが無難かなと思います！

https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6%8C%87%E3%81%99%E4%BA%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AERuby%E5%85%A5%E9%96%80-%E8%A8%80%E8%AA%9E%E4%BB%95%E6%A7%98%E3%81%8B%E3%82%89%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA%E3%83%BB%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E6%8A%80%E6%B3%95%E3%81%BE%E3%81%A7-Software-Design-plus%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4774193976

後はUdemyなどの動画教材で一通りのアプリケーションを実際に手を動かして作ってみると基本がすぐに身につくと思います！

## 勉強のポイント
各ステップで意識しておくと勉強効率が上がるポイントをご紹介します！

### ①Ruby技術者認定試験合格教本
こちらは文字通り公式が認めている教本になります。

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

読み物として面白いものではないので、「ふーん、そうなんだ」くらいでまずは一冊読んでみることが大事だと思います！
実際に問題集を解いてみて、疑問に思ったところやその周辺知識をインプットするために再度読み返すと非常に良いです！
巻末に用意されている過去問は結構何回も解いて理解するようにしました。

### ②−⑤ひたすら問題を解く
ざっくりと教本を読んだらもう問題に向かってしまって大丈夫です！

一番問題数が多いのはRExです。
https://www.ruby.or.jp/ja/certification/examination/rex

ランダムに50問選定してくれて、採点までしてくれます。スマホでも取り組むことができるので、電車の中などでもお手軽に勉強することができます。

ただ５０問全部解かないと採点に進めないので、ちょっとそこがめんどくさかったです。(一問一答が好きなだけ)

間違えた問題の解説は後で一覧で見返せるようにエクセルにまとめて、問題演習に入る前にそのエクセルを一周するようにして知識を定着させました。

### 調べて周辺知識も補完しながらの学習が大切
そこまで過去問が多い訳ではないので、何回か解いているとだんだん問題の答えを覚えるように自分はなってしまいました。
問題を覚えないように自分は違う種類の過去問を交互に解くようにしていました。

後は、答えの選択肢だけを理解するのではなく、間違った選択肢はなぜそれが間違っているのかをしっかり説明できるようになっておくことが大切だと思います！

コマンドを実際に実行してみたり、公式ドキュメントを読んでみたりと、時間はかかりますが、調べる過程も学習になります。

手っ取り早いので、Rubyの実行はPaizaを使ってサクッと動作確認をしていました。
https://paiza.io/ja/projects/new?language=ruby

![computer_programming_man.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/485238/bad1d0c4-3a34-83a0-d2fe-cc7ea80bdbf0.png)


## 勉強中に参考にした記事たち(書いて下さってありがとうございます)
https://qiita.com/jonakp/items/7f7550eeea78973a0a7f

https://qiita.com/fkm_y/items/9edbd45652526688de6d

https://tamata78.hatenablog.com/entry/2015/08/07/200454

https://qiita.com/motty93/items/413485469e4ec665c329

https://qiita.com/nyan_tech_24/items/6cc1819523df53bf4429

https://qiita.com/k-penguin-sato/items/ab2267ca99d5aedcc40a

https://qiita.com/shu_0115/items/5f08a6d58d1acc46fbad


## 最後に
Rubyを業務で使っていても、初めてみるメソッドや、知らなかった仕様などがいっぱいあって、とても勉強になりました

基本的に暗記してしまえば合格できる資格なので、時間をかければ必ず合格できると思います！
過去問と同じ問題もかなり出るの、とにかくがむしゃらに過去問を解いていきましょう！
次はGoldを受けてみようと思います！