Ruby Silver試験を受験する方の参考メモ（2020年12月28日受験）

Ruby Silver試験に合格しました。

勉強の進め方で反省点があり、わりと直前に詰め込むような形になってしまったので、ちょっと苦労しました:sweat_smile:

ここを訪れた方が私と同じ轍を踏まないように、このメモを残します。


#Ruby Silver試験詳細

|項目  |内容  |
|---|---|
|試験時間  |90分  |
|問題数  |50問（選択式）  |
|合格ライン  |75%  |

参考までに、私の学習期間は1カ月。

学習時間は家で30時間程度、通勤時に電車で毎日20～30分程度。

ちなみに業務では１本、約１週間で組んだことがある程度の初心者です。

点数は「82点」でした。


#使った教材

* [改訂2版］Ruby技術者認定試験合格教本（Silver/Gold対応）Ruby公式資格教科書
下記の計80問が収録されています。
基礎力確認問題：30問
模擬試験問題：50問

* 公式模擬問題集
https://www.ruby.or.jp/assets/images/ja/certification/examination/exam_prep_jp.pdf
計50問を収録、無料で利用できます。

* REx
https://www.ruby.or.jp/ja/certification/examination/rex
毎回50問が無料で提供される。
新しくtryするたびに一定の問題が入れ替わる。
同じ問題を何度もtryする事も可能。

#参考にしたURL
https://qiita.com/jonakp/items/7f7550eeea78973a0a7f

この合格体験談が、とても参考になりました。

上記の教材も、この体験談に掲載のあったものばかりです。

#学習方法について
まず「Ruby技術者認定試験合格教本」を電車の中で読み込み、家のPCで本の中に出てくるサンプルを全部打ち込みました。

それが一通り終わった後、ひたすら問題演習する流れです。

でも正直、「Ruby技術者認定試験合格教本」のシルバーの範囲はメソッドの使い方の解説が多く、読んでも覚えられないし眠くなります。:sleepy:

コーディングしても飽きてきてなんだか続かない。。

ただ、オブジェクト指向のところだけは面白く読めたし、自分の中で他の言語と比較しながらすっと飲み込めました。

読むにしても、最初は流し読みで、自分の興味持てるところだけじっくり読むでいい気がします。

<font color="DeepPink">それよりも、さっさと問題演習を繰り返しやる方がよいと思いました。</font>

問題を解いていていると、必ず疑問点が出てくるのでそれを「Ruby技術者認定試験合格教本」で確認する。

あるいは肉付けしていく。

実際、問題で間違ったところを本やネットで調べながら、コーディングして動かしたりしながら、納得するまで取り組んだことが一番記憶に残りました。


#あせった話(;^_^A
僕が本格的に問題演習に取り組み始めたのは、試験２週間を切ってからでした。

「Ruby技術者認定試験合格教本」と「公式模擬問題集」を3回転し終えたのが受験4日前、そしてRExに初めて取り掛かったのが受験3日前の12/25。

RExは試験直前まで問題を変え、4回挑戦しましたが、最初は<font color="DeepPink">58点</font>でした。

12/25（金） <font color="DeepPink">1回目：58点</font>
12/27（日） <font color="DeepPink">2回目：80点</font>
12/28（月） <font color="DeepPink">3回目：66点</font>
           <font color="DeepPink">4回目：86点</font>

この３日間、毎日8時間くらいは勉強したと思います。

試験当日の3回目の挑戦では、もう一通り勉強も終えて、自信を持って臨みました。

自分では90点くらいの手ごたえがありました。

ところが蓋を開けてびっくりの<font color="DeepPink">66点！</font>

最初何かの間違えじゃないかと思いました。:confounded:

同じような問題ばかりの3回目ですから。。

でもよくよく見てみると、類似の問題ではあるけれど、自分がきちんと理解できていないことがまだあったのだということがわかりました。

たとえば、これ。

次のコードを実行するとどうなりますか

```Ruby

s = <<'EOF'
Hello,
Ruby
EOF
'EOF'

p s
```

変数sに改行入りの文書を格納しているのですが、ポイントは最後に出力する「p」メソッドです。

回答はこちら。
<font color="DeepPink"><b>
"Hello,\nRuby\n"
</b></font>
と、改行コード「\n」が表示されます。

しかし、同じように「puts」メソッドで出力した場合は、改行して表示されます。
<font color="DeepPink"><b>
Hello,
Ruby
</b></font>
ここを理解していなかったため、同じような問題でもメソッドを変えられたら、回答にたどり着けなかったのです。

もうひとつ行きましょう。

```Ruby
s = <<-EOF
      Hello,
      Ruby
      EOF

p s
```

前回と見比べると、EOFの横に「-」が入っています。

出力結果はこうなります。

<font color="DeepPink"><b>"  Hello,\n  Ruby\n"<b></font>

今回はHelloとRubyの横にインデント（スペース）が入ります。

さらにいうと、コーディング終端の「EOF」の位置ですが、本来文法上は左に寄せなければエラーとなります。

ところが、最初のEOFの記述に「-」を付ける事で、終端EOFの記述にインデントが許可されます。

そのため、Hello,やRubyと同列に、インデントつけて記述してもエラーとならないのです。

こういった細かい挙動の違いが本番でも出題されます。

そして、試験直前に66点でしたが、こうした違いを確認出来たことが、逆に私を合格に近づけてくれました。

これ、問題を間違えたから覚える事が出来たのです。

本に書いてあっても読んだだけだと覚えきれない。。

もっと早くに問題演習に取り組めばよかったと思う所以です。

何回も問題に取り組んで、たくさん間違って、都度吸収する、というのが一番効率的な気がします。

#試験を終えて

試験では、ほぼ上記問題集と同じような問題が出ました。

７～８割くらいは記憶にあるなー、という感じでした。

残りの２割も、あ、これ類似問題だな、という印象です。

最初の10問に難しめの問題が集中していましたが、それを超えたらすいすい進んで行って、40分くらいで解き終わりました。

残りの50分、、、途中退出ありでしたが、、帰りませんよ、僕は:smirk:

ケアレスミスって大体必ずあるものだし、それで受験失敗したら高い受験料が悔やみきれませんからね!

わからない問題についてもじっくり考えてみると、色々な角度から見る事が出来たりします。

すると、「これ以外ないはずだ」と自分の回答に確信をもったり、逆に「これはあり得ない」と変えたりすることがあります。

そして、<b><font color="DeepPink">あったよあった、ケアレスミス!</font><b>

1問だけでしたが、問題を読み違えているところがあって修正!

無事に合格して年末を迎えることができました～:hugging:ﾜｰﾊﾟﾁﾊﾟﾁ