知識0の初心者がRuby技術者認定試験Silver/Goldを取得した話

※2020/12/02 
　・内容を更新しました。
　・スライドを追加しました。

#はじめに
・これからRuby技術者認定試験を受けようと思っている人/興味がある人向け

---

#概要
プログラミング経験・知識なしの状態からWebエンジニアへ。Rubyで開発業務を行うことなった。
本記事はSilver/Gold取得を経験したとある男の体験記及びノンフィクションのそれ。

---

###取得するまでの時系列
- ◇Silver（2019/7/6より学習開始）
 - 2019/7/6 ：Rubyの学習を始める。
 - 2019/7/20：1回目のSilver受験。74点で不合格。
 - 2019/7/25：2回目のSilver受験。70点で不合格。
 - 2019/7/31：3回目のSilver受験。80点で合格。

- ◇Gold（2019/8/1より学習開始）
 - 2019/10/1：1回目のGold受験。64点で不合格。
 - 2019/10/6：2回目のGold受験。60点で不合格。
 - 2020/3/30：3回目のGold受験。82点で合格。 

実はSilverもGoldも2回ずつ落ちています（草）
３回目にしてようやく合格するというまさに3度目の正直。
落ちた日の夜は「さようなら諭吉。」と何度も叫びました。

---

###受験するまで&受験した感想
- 1日の学習時間
 - 平日：4時間
 - 休日：6時間

最低でも1日にこの時間は学習に充ててました。
一番やったときで一日10時間くらいです。

※1時間くらいやったら休憩入れてました。
※地頭の良い方/既にプログラミングを学んでいる方はより少ない時間で十分だと思います。

---

#### ◇Silver
 - 始業前・昼休憩・終業後・帰宅して寝るまでのタイミングで参考書学習、問題集解き、qiita記事を読む。
 - 英語力も必要だと言われたので、会社までの移動中は「英語学習アプリ」とかで適当に英文を読む。
 - 合格するまでにかかった日数は25日間、勉強時間は大体130~150時間くらい。
 - ほぼほぼ暗記だけでいけるという記事が結構ありますが、その印象はあります。2回落ちたけど。


#### ◇Gold
 - 受験前にMacBockPro(ノーパソ持ってなかったんです)を用意できたので、カフェで勉強するようになった。
 - ひたすらコード書いて動作を確認する学習に切り替えた。
 - 1回目、2回目の受験を不合格で終え、今のままじゃ受からないと判断しいったん距離を置くことにした。
 - 2020年1月からGoldの学習再開。カフェはやめて自宅で勉強するようになる。結構ゆるーく勉強してた。
 - 合格するまでにかかった日数は150日間、勉強時間は中断前/再開後を合わせて200時間くらい。
 - 理解してないと解けない問題しかほぼないからぶっちゃけ難易度はsilverの軽く2~3倍は上。

---

###学習に使用した書籍/記事/対策問題
####  ◇Ruby技術者認定試験合格教本　Silver／Gold対応　（Ruby公式資格教科書）

<a href="https://hb.afl.rakuten.co.jp/hgc/1993efb5.4d7acbe2.1993efb6.7bab7a80/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F15068165%2F&m=http%3A%2F%2Fm.rakuten.co.jp%2Fbook%2Fi%2F18702494%2F&link_type=pict&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0Iiwic2l6ZSI6IjI0MHgyNDAiLCJuYW0iOjEsIm5hbXAiOiJyaWdodCIsImNvbSI6MSwiY29tcCI6ImRvd24iLCJwcmljZSI6MCwiYm9yIjoxLCJjb2wiOjEsImJidG4iOjEsInByb2QiOjB9" target="_blank" rel="nofollow noopener noreferrer" style="word-wrap:break-word;"  ><img src="https://hbb.afl.rakuten.co.jp/hgb/1993efb5.4d7acbe2.1993efb6.7bab7a80/?me_id=1213310&item_id=18702494&m=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F1942%2F9784774191942.jpg%3F_ex%3D80x80&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F1942%2F9784774191942.jpg%3F_ex%3D240x240&s=240x240&t=pict" border="0" style="margin:2px" alt="" title=""></a>

- ◇どんな本？

Ruby技術者認定試験を受ける人ならほぼ必ずこれを読むことになると思います。
何故なら、試験対策本として世の中にあるのはこの1冊だけだからです。
Silverの上位資格であるGoldの対策本も兼ねています。

試験対策本なので、Silver/Goldの試験範囲の内容と合わせて、
実際に出題される問題を想定した基礎・演習問題や模擬試験問題が掲載されているので、
この書籍を中心に勉強していくのが試験対策になると思います。

この本をまず一気読みしてから、分からないところを都度読み直して学習していくようにしていました。
「Ruby技術者認定試験合格教本」だけでSiverに合格したという人もいるので、赤本だけでもOKかも。

#####◇Good
 - 試験範囲はしっかりカバーしているので、とりあえず読んで間違いない。
 - 対策問題の数が多いので、アレンジした問題をgitにコピーして、オリジナル問題を作るなど色々使える。
 - Gold試験にも使えたり、Rubyの基礎本としても読めるので持ち腐れになりにくい。人にも貸せるしね。

#####◇Danger
 - 所々に誤植があるので、Rubyに慣れていても惑わされる可能性があります。
- :point_right:[サポートページ](http://gihyo.jp/book/2015/978-4-7741-7567-6/support)で誤植について掲載があるので、確認した方が良いです。

 - 教本の演習問題はともかく、問題の答えを丸暗記しても、合格できませんので読むだけじゃダメです。
- :point_right: 重要なのは問題の答えではなく**「どういった処理順でこうなるのか」**を常に考えること。


---

#### ◇当時読んだ記事の中でもとても参考になった記事
・[Ruby Silver試験前に見直すと幸せになれるメモ](http://tamata78.hatenablog.com/entry/2015/08/07/200454)
・[Ruby技術者認定試験 Silver/Gold 対策の個人的なハマり問題集](https://qiita.com/ffggss/items/0bab2a1e80e941378b49)
・[Ruby技術者認定試験 Silver version 2.1を受けて…](https://qiita.com/motty93/items/413485469e4ec665c329)

特に「Ruby Silver試験前に見直すと幸せになれるメモ」は絶対に読んだ方が良いです。幸せになれた。
試験会場先にプリントアウトしたものを持って行って入室ギリギリまで見てた記憶があります。
あれ、今思うとすごく恥ずかしい。

---

####◇使用した試験対策問題

例題はたくさんあった方がいいかなと感じたので、当時参考にした例題集貼っておきます。
ちなみに問題自体が間違っている場合もごく稀にあるので、ぜひ気づいて欲しいです。

#####◇Silver
・[ミニツク](http://www.minituku.net/drills/775230600.html)
・[silver_j.md](https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0)

#####◇Gold
・[Ruby技術者認定試験【Gold】模擬問題](https://www.school.ctc-g.co.jp/ruby/training_ruby_gold_01_10.html)

#####◇オススメ
・[REx - Ruby Examination](https://rex.libertyfish.co.jp/exam_histories (silver/Gold))
・[とある資格の勉強会～Ruby技術者認定試験編～(silver/Gold)(Android専用アプリ)](https://apkpure.com/jp/%E3%81%A8%E3%81%82%E3%82%8B%E8%B3%87%E6%A0%BC%E3%81%AE%E5%8B%89%E5%BC%B7%E4%BC%9A%EF%BD%9Eruby%E6%8A%80%E8%A1%93%E8%80%85%E8%AA%8D%E5%AE%9A%E8%A9%A6%E9%A8%93%E7%B7%A8%EF%BD%9E/jp.ne.poropi.quizapp.ruby)

---


###◇やって(使って)おけば良かったと思うもの(こと)

#### ◇たのしいRuby
<a href="https://hb.afl.rakuten.co.jp/ichiba/1993efb5.4d7acbe2.1993efb6.7bab7a80/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fbook%2F15822269%2F&link_type=pict&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0Iiwic2l6ZSI6IjQwMHg0MDAiLCJuYW0iOjEsIm5hbXAiOiJyaWdodCIsImNvbSI6MSwiY29tcCI6ImRvd24iLCJwcmljZSI6MSwiYm9yIjoxLCJjb2wiOjEsImJidG4iOjEsInByb2QiOjAsImFtcCI6ZmFsc2V9" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  ><img src="https://hbb.afl.rakuten.co.jp/hgb/1993efb5.4d7acbe2.1993efb6.7bab7a80/?me_id=1213310&item_id=19519154&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F9844%2F9784797399844.jpg%3F_ex%3D400x400&s=400x400&t=pict" border="0" style="margin:2px" alt="" title=""></a>

3回目のGold受験するあたりで読みました。元々持ってたけど試験対策本が無敵だと思ってたから放置してた。
1回しか通して読んでないんですが、正直もっと早くこの本を読んでおけばよかったと後悔しました。

赤本(試験対策本)って「元々なにかしらのプログラミング経験や知識がある人」向けっぽく書かれていて、
且つ、試験対策特化型なので、私みたいな何にも知らない初学者だと理解が至らない点があったりします。
goldのために読んでるはずが、silverの範囲で2~3回「え、そうなん？」っておもわず声出ました。

読み進めていくと徐々に赤本とは違う表現だったりするので、赤本でしっくりこなかったところが
たのしいRubyだと説明わかりやすいなと感じるところもありました。

もちろん、資格に関係なくRubyを学ぶ上でも良い参考書だと思います。

---

#### ◇Progate(プロゲート)
![Progate_Logo_CMYK.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528890/b04df44c-c5e5-1073-6191-8d75c7370a02.jpeg)

お前使ってなかったんかい！！ってツッコミが来そうな気がしてならないProgateです。
私は使用せずに勉強していました。今ではとても後悔しています。

Progateの説明はほぼ不要だと思いますが、エンジニアを対象にしたオンライン学習サービスです。
Web版/スマホ版がリリースされていますが、両者で受講できるコースや解答方法が異なるので注意して下さい。
一部のコースは無料ですが、有料会員でないと受講できないものもあります。

初心者であればあるほどさっさと有料会員になって**「Rubyコース」**を全部やることをオススメします。
1ヶ月1000円くらいなので、1ヶ月以内に全部やれば良いだけの話ですし。

また、HTML/CSS/Git/Linux/sqlなど開発を行う上では避けて通れないものも学ぶことができます。
Ruby on Rails(フレームワーク)コースもあり、今になって有料会員で学習中ですが、
実務でも役に立つ内容もあると感じています。

あと、出来るなら学習中、コードのインデントも気にしてください。
私はよくインデント汚いって怒られます。ごめんなさい。

---

#### ◇ひたすらコードを書く(写経する)
<img width="1579" alt="スクリーンショット 2019-11-21 20.49.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528890/a562adf8-cd9d-8169-d237-270134f7057c.png">

あなたは自分で書いた or 読んでいるコードの動きを人に説明できますか？
Noと答えた人は「**分からない部分**」について調査し、実際にコードを書いて学習してください。

---

#### ◇応用力を身に着ける / 深堀りして理解する

>
Q1.eachメソッドはどんな処理ができますか
Q2.実際にeachを用いてコードを書いてください
Q3.Q2で書いたものを「do end」 を使用しないで書いてください
Q4.ブロックを「{」と「}」で囲うか「do」と「end」で囲うかとで違いはありますか

eachメソッドで一例を考えてみましたが、こんな感じでしょうか。

「問題の形式」が変わると「暗記や形」で覚えているので応用ができず、不正解なんてことも。
腐っても試験なのでどこに罠が仕掛けられているか分からないのです。
もし当て嵌まっているならあなたも私みたいに74点で落ちるかもしれません。

上記のようなことを聞かれても答えられるまで勉強しましょう。

---

#### ●最終的に解答選択肢を見ないで問題を解く
<img width="829" alt="スクリーンショット 2019-11-21 20.55.58.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528890/b43fae94-eade-4de0-008b-f0f339e0bfb0.png">


基本的に4択から正解を選ぶ例題が多いと思いますが、
ある程度コード読めるようになったら解答欄を見ずに解答することをオススメします。

これは問題を形で覚えないで、しっかりコードを読んで動きを理解することを意識させるためです。
実際の試験で出るものに似た問題もありますが、うまい具合(言い方を変えると意地悪)に内容が違っています。
コードを追って動きを考られるようになれば、本番で正答できる確率はグっと上がるはずです。

あと見直ししましょう。絶対幸せになれる。

---

さいごに
--
私はこの資格を初学者が受験することに肯定的です。
特にRuby初学者にとって取っ付きやすい（受験料は別）ですし、
一定の知識が身につき、それを測れると思っているからです。

ただ、あくまでこの資格は「Rubyの入り口」です。
取得したからとて大きくアドバンテージがあるわけもなく、ましてsilverは特に難しい資格でもありません。
（puts 'hello world'　からはじめて2週間勉強して74点で落ちた奴が言ってるんだから信憑性あり←）
(goldは実務レベルの部分あるので一概にアドバンテージなしとも言えない)

それならこの資格って意味あるのか？と考える方もいますが、
既に取得している人、学習中の人になぜこの資格を受験したのか話を聞いてみたところ

・初学者がRubyを勉強する上での指標(ひとつの目標)とする
・熟練者によるRuby知識の腕試し
・就職/転職、OJTで自身の取組(成果)としてアピールする

と様々なバックグラウンドがある中、共通しているのは「資格取得した先のこと」が重要になっている点、
そして、もし仮に試験に合格できなかったとしても、Rubyの学習はどんな形であれ継続していくという点です。
(当たり前ですが、Silver/Goldを取得し、私を待っていたのはRailsでした。)

試験結果は「目標を定めて学習した成果のひとつ」であり、
試験学習時間は「今後も続くRuby学習における一部の過程」に過ぎず、
結局、この資格を受験したことに意味があったかどうかを判断し、価値を見出すのは自分自身です。

Rubyというプログラミング言語を学ぶためのきっかけとして
この資格学習を利用し、合格後も継続して楽しく学習できることを私は願っています。

---

あとがき
--
20201202

この記事編集するつもりがかなりサボってしまって、ところどころ作りかけのまま放置してました。
本資格を受験予定の方が身近にいたので、その方々のために編集させてもらいました。
放置してぐちゃぐちゃになっていた間にView/LGTMが増えててびっくりしました。

読んでくれた方々、ありがとうございます。
この記事がほんの少しでもどこかで誰かの役に立てたなら、幸いです。

silver取得から約1年半、gold取得から約9ヶ月が経ち、今もなんとかエンジニアを続けています。
現在はRailsの資格取得を目指して学習中です。受験時期は情勢的な問題もあって来年になりそうですが。

また何かあれば更新します。
さようなら。

![icon.ruby_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528890/269d8f67-1bf0-7591-beca-c5bf88a73556.png)