【合格体験記】新人がRuby始めて1ヵ月でRubySilverに合格

# はじめに
**Ruby Silver資格に合格しました。**

Ruby Silverは75点ボーダー(50問中38問取れれば合格)のところ、自身の合格点は84点。
8問ぐらい落としてる事になるので特筆するほど良い点数ではないのだけれど、タイトルの通り、RubyでHelloWorldを打ってから1ヵ月そこそこである事を思えば、それなりに頑張ったのではないかと甘めに自己評価……。

既に開発経験者の方が書いた合格体験記は多々あったのですが、本当に初心者という人の合格情報はあまり沢山ネットにもなかった為、自分で受ける際にどれぐらい勉強していけばよいのかかなり不安だった。そんな動機で合格体験記を書く事にしました。

# 書いた人のスペック
・SE未経験入社1年目
・開発経験なし
・Java研修済
・他に持ってる資格はせいぜいIパスぐらい

# 試験1ヵ月前：はじめてRubyでHelloWorldを打つ
たまたま業務中にほんの軽くですがRubyの学習を受けられる機会があったので、そこで基本文法や簡単な仕組みなどの基本中の基本については習得しました。

本当に**Ruby自体が全く初めてという方の場合は**、後述の公式教科書にいきなりチャレンジすると正直詰みかねないので、資格の勉強をする前にまずはRuby自体の勉強をすることをお勧めしたいです。(メジャーな[この本](https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC6%E7%89%88-Informatics-IDEA-%E9%AB%98%E6%A9%8B/dp/4797399848/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=Ruby&qid=1572242201&s=books&sr=1-3)とか[この本](https://www.amazon.co.jp/プロを目指す人のためのRuby入門-言語仕様からテスト駆動開発・デバッグ技法まで-Software-Design-plusシリーズ/dp/4774193976/ref=sr_1_1?__mk_ja_JP=カタカナ&keywords=Ruby&qid=1572242201&s=books&sr=1-1)1冊やればよいと思う)

さらにプログラミング自体が本当に初めてという方は念入りに勉強する、Pythonなど共通項の多い言語の経験者であれば少しスムーズに行える、などこのあたりは個人差があるかと思われます。



# 試験半月前：受験を決意、資格教科書を購入
少し時間に余裕が出来たので、だいたい受験日の半月ぐらい前にRubySilverの受験を決意し、資格教科書を購入。
今思えば試験半月前の出来事になるのですが、この時点では試験の申し込みをまだしておらず、いつか受験出来たらいいかなーみたいな適当な感じで勉強を始めています。

![alt](https://images-na.ssl-images-amazon.com/images/I/519gNUrXcML._SX350_BO1,204,203,200_.jpg)
[Amazon](https://www.amazon.co.jp/gp/product/4774191949/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4774191949&linkCode=as2&tag=gesource-22&linkId=0405ac759f06496238ca555e5aadacae)

**Ruby資格の本もいろいろあるけどこの本があれば大丈夫。**

2版でない方も売っていて安いのですが、情報もRubyのバージョンも古いらしいので、**必ず左上に「第二版」とあるものを選択しましょう。**
自分は今回第二版の中古のものを入手し、新品より少し安く購入することが出来ました。

ただこの教科書、Silverのみ受験される方には不要な部分も結構多く、またその記載がこの教科書は少々不親切な事だけは若干不満点。その為公式HPなどを参考にしながらGoldのみの部分がどこなのか探す必要があるのにはちょっと注意。
いずれGoldも受ける事を考えると1冊で良いのは楽なんだけど、もうちょっと分かりやすく目印付けてほしかったなあ……。

#試験1週間前：模擬問題を解く
テキストを一通り勉強し終わったら、あとはひたすら模擬問題を解く。
RubySilverは合格ボーダーが75%とちょっと高めなので、念入りに苦手を潰していきたい所。

**■公式教科書の基礎確認問題・模擬問題**
　まるっきり同じ問題が出る事も中にはあるなど、基本的な傾向はこの通りなので、まずはこの本の模擬問題で高得点を取る事が重要と言えます。参考までに試験前日の自分の得点が48/50。
　
**■公式の模擬問題が混ざった一問一答**
　https://ruby-silver-mogi.firebaseapp.com/
　これについてはsilverのみ受験の場合はGoldと混ざっていない分こちらの方が親切かもしれません。
　ただし2019年10月現在、問36の問題文に誤植があり、正しい問題はコメント欄に掲載されています。
　https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0

**■Rex**
　出題のコードが綺麗な状態なのでそのままコピペでエディタに入れて挙動を確認できるのが良い。
　公式教科書の模擬問題とは微妙に傾向がズレるもののメソッドの挙動を覚えるのには結構役に立ち、90点前後取れればよし。
　https://rex.libertyfish.co.jp/

**■ミニツク**
　Rubyのバージョンが古かったり本番試験と傾向が違うので、頭数個分のドリルのみ目を通しておくぐらいで良いと思う。
　後半の問題はちょっと分からなくても試験的にはあんまり支障はない。
http://www.minituku.net/courses/1049510743/contents/775230600.html

他にもiOS用の対策アプリなどがあるそうなのですが、自分はAndroidスマホなのでそちらは試していません。

#Silver試験傾向ポイント
**■ほぼ毎回出る**
・意味が同じメソッド(.mapと.collect、.delete_ifと.reject!、.findと.detect、.find_allと.selectのどれかしら聞かれる)
・sliceメソッド
・配列の添え字(範囲の添え字、マイナスの添え字が頻出)
・！のつかない破壊的メソッド(特に.concat、.clearが頻出、頻出の非破壊メソッドも認識しておく)
・ヒアドキュメントのインデント
・Timeフォーマットの形式(%Yなど)
・正規表現
・クラスの継承
・false(falseとnilのみがRubyではfalseになる事について頻出)
・配列の演算(+、-、|、&など)
・File.openのオプション(r、w、aと各＋)
・Fileのポインター位置(.seek、.rewind)

**■出る率高め**
・.equal?と.eql?の違い
・.invertメソッド
・.chopメソッド、.chompメソッド、.stripメソッド
・.shiftメソッドと.popメソッド、.unshiftメソッド
・.each系(特に.each_with_index)


#試験4日前：試験申し込み
模擬試験の結果が良好になってきたので、そろそろ受かりそうと思い、たまたま休みがあった4日後の試験を申し込みました。なによりRuby試験は**随時開催**なので、どこかで退路を断たないとダレてしまって永遠に受験しなさそうだと思ってしまったのです。無駄には出来ない受験料や今後なかなかいい受験日がない(後述)事が頭を支配し、結果としてここから4日間なかなか必死になれました。

ちなみに3日前ぐらいまで申し込む事が出来るようです。前日とか当日では申し込み出来ないので注意。

まず**試験が殆ど平日のみに開催している**のが非常にネックなので、お申し込みは計画的に。
たまに休日に開催している事もあるものの、都内全域を見渡しても月に1度程度しかない頻度です。
([このページ](http://it.prometric-jp.com/center_map/index.asp)のPDFに開催日の一覧があるのでチェック)

今回自分はたまたま良い所に休みがあったので、こういう行き当たりばったり感のある申し込み方をしてしまったのですが、本来はこの開催日の一覧を見ながら逆算して受験するのが良いと思います……。
　
申し込みは上記PDFを見て会場と日付をざっくり決めた後、とりあえず同じサイトの画面に従って会員登録→試験申し込みと進んでいくだけ。

一つ注意点があるとすれば、受験チケット(バウチャー)を公式HPやPrometricの申し込みの際にもよく推してきますが、**バウチャーは個人で受験する際には必要ないと思います。**
各HPを見るとあたかも必要なもののように見えてもきますが、申し込みの際にバウチャーを持っていないと選択すると**普通にクレジットカードやコンビニ支払が選択できるようになります。**
この辺が分かるまでに自分は少し時間が掛かりました……。

#試験当日：受験
当日は印刷した確認表を持って、申し込みの時間の15～20分ぐらい前に会場に向かいました。身分証明書なども忘れず持っていきましょう。自分は身分証明書の裏の署名を忘れてて受付で少し慌てました(現地で書きました)。

会場での状況は各会場にもよると思うのですが、今回行った会場では広々とした待合室兼ロッカールームで待たされ、そこから密室になっている受験会場に案内してくれました。既に部屋の中でカタカタやってる人もいたり、後から人が入ってきたりもしたので、多分色んな種類の試験を受けている人が混ざっているのだと思います。

当日の試験は概ね傾向通りでしたが、何問か見慣れない問題もありました。試験は90分ありますが半分も経たずに終わり、退出。
「終了」ボタンを押すと点数の数値と合否が書かれたとポップアップが出てきて画面が終了しました。スコアレポートが紙で貰えると書いてあった体験記も多かったのですが、今回は利用した会場の仕様なのか貰えませんでした。
代わりに会場を出てすぐ、メールで電子版の試験結果レポート(点数・合否が書かれている)が届きました。(電子化したのかもしれない)

#試験を終えて
試験終了のちょうど1週間後に電子版の認定書やロゴが届きました。紙でも届くみたいですが、1ヵ月以上後になるみたいでこれを書いている時点ではまだ届いていません。
(追記：試験2週間後ぐらいに紙の証書が到着しました！)

Rubyでの開発がこれでバリバリ出来るぞ！という感じではない(というかRubyの開発って大体Rails)と思いますが、とりあえず箔が付いたというか、基本的な所は分かるぞという事が客観的な称号としてついてくるようになったのは便利だと思いました。もう少しあそこ勉強しとけばよかったなぁという後悔はありましたが。
会社も合格を喜んでくれたので個人的には嬉しい資格取得でした。

RubySilverは合格ボーダーこそ他の資格よりもちょっと高いですが、難易度は比較的低いと思いますし、この通り開発未経験の初心者でも取得することが出来ました。
是非参考にして頂けたら嬉しいです。