Ruby Silverとは
Ruby技術者認定試験の一種です。
正式名称は
Ruby Association Certified Ruby Programmer Silver version 2.1:
となっており、短縮してRuby Silverと呼ばれています。
制限時間は90分で選択式の問題が50問出題されます。
全国にあるプロメトリックという会社のテストセンターでPCを操作して解答します。
Silverのレベルは以下の通り。
Rubyの文法知識、Rubyのクラスとオブジェクト、標準ライブラリの知識について、基本的な技術レベルを持つことを認定します。
(公式サイトより)
受験履歴
75点が合格ライン。
下記の通り、1回目で84点をとって無事合格!
受験回数 | 合否 | 点数 |
---|---|---|
1回目 | 合格 | 84点 |
受験当時の状況
自社開発の企業に新卒で入社し、半年ほど経過していました。
情報系の大学出身で、学生時代は主にPythonを使用。
Rubyやjavaといったオブジェクト指向の言語はほとんど経験がなく、入社してRailsでの開発を始めたのが受験のきっかけとなりました。
わからないことが多くて悩んでいた時、先輩エンジニアに「Ruby Silverって試験があるよ〜」って教えていただいたのでその日の夜に申し込んだ記憶があります。
教材
使用した教材は、公式テキスト1冊のみです。
(3000円以上するので少しお高いですが、リファレンスとしての活用もできますので持っていて損はないかと)
勉強のゴール
公式テキストに収録されている問題を完璧に解けるようになる
公式テキストに基礎力確認問題(30問)と模擬問題(50問)が収録されています。
試験では、これら80問から似たような意図の問題やまったく同じ問題が出題されます。
余談ですが、試験勉強において具体的なゴール設定は大切です。
「合格する」というゴールだど、抽象的すぎます。
試験直前までずっと不安な気持ちになってしまうため、「試験までにこれができたらOK」という具体的な行動のゴールを定めておきます。
もし落ちた場合は、ゴール設定が間違っていたかゴールに到達できなかったかのどちらかとなります。
勉強方法
制限時間や解答方式など、冒頭の試験概要は事前によく読んでおいてください。
基本サイクルは以下の通りです。
0, 暗記シート(A4の紙など)を作成
1, いきなり問題を解く
2, 問題解説を読み、覚えるべき項目を暗記シートに書く
→よく分からないときはirbで動作確認する
3, 解説を読んで必要だと思った知識の詳しいページを読み、暗記シートに追記する
4, 間違えた問題にレ点ををつける
5, 1-4を繰り返して収録されている80問をすべて解く
6, 暗記シートを覚える
7, レ点付きの問題を解き、解けたらレ点の横に○、間違えたらレ点を書き加える
8, ○がついていないレ点の問題を解く
9, 80問を何度も繰り返し解く
10, 試験直前は暗記シートだけ見る
(余裕がある方向け)
公式テキスト80問は何周やっても完璧、という状態で試験までに余裕があったら以下の公式模擬問題(50問)も解いておきましょう。
https://gist.github.com/sean2121/945035ef2341f0c39bf40762cd8531e0
大切なのは、収録されている80問を最初にすべて解くことです。
数百ページあるテキストを最初から読んでいたらいつまでたっても終わりませんし、膨大な量のメソッドやその返り値を手当たり次第に覚えていくのは非常に効率が悪いです。
まず問題を解いて、不足している知識を洗い出してから詳細のページを見に行けばいいです。
解説で十分事足りることもしばしば。
テキスト1冊だけで勉強するのは不安だと思います。
が、中途半端な状態にしてWEBのいろんな問題に手を出す方が危険です。
この試験は傾向がはっきりしていますので、80問きっちりできれば合格ラインは問題ないと感じます。
問題の出され方
に慣れておきましょう。
例えば、以下の問題を解いてみてください。
a="ruby silver"
a.upcase # アルファベットを大文字にするメソッド
"HELLO" + " " + a
puts a #=>
正解は"ruby silver"
です。
"HELLO RUBY SILVER"
ではありません。(僕は最初ひっかかった)
upcase
メソッドは非破壊的メソッドのため、レシーバー(メソッドの呼び出し元)自体は変化しません。
破壊的メソッドは!
がつくことがほとんどですが、配列を結合するconcat
など一部メソッドは!
なしで破壊的メソッドなので要注意(concat
はめっちゃ出る)。
a="ruby silver" #=> "ruby silver"
a.upcase #=> "RUBY SILVER"
"HELLO" + " " + a #=> "HELLO RUBY SILVER"
puts a #=> "ruby silver"(aの中身自体は変化していない)
このように、一生懸命勉強してupcase
メソッドの処理を知っていたとしても、問題に正解できるかどうかは別なのです。
まとめ
公式テキストの問題(全80問)が完璧に理解できていることがめっちゃ重要