どうも、すわんです。
先日Ruby認定試験のSilverに合格しました。
正直、バージョンも2.1系と古いですし、暗記一辺倒な試験で難易度も低いため、取得する価値があるかはかなり微妙な感じです。
Web系言語を習得したい、初心者プログラマの学習の入り口としてはおすすめです。
自分の受験動機としては、会社から資格取得手当が出ることと、少しはRubyを理解している証明になるかなと思ったため、取得しました。
今回は、Ruby Silverを取得するために行った勉強方法等をまとめていきたいと思います。
用意する参考書
- Ruby技術者認定試験合格教本
購入する参考書はこれ一冊だけで十分です。
理由は、Silver向けに勉強した方が良い範囲がまとめて記載されていることと、実際の出題に近い問題集がついているためです。
参考書での勉強の仕方は、
プログラミング未経験の方は、頭から1通りSilverの試験範囲を読むことをおすすめします。
プログラミング経験者の方は、初めから後述する問題集を解き始めて、間違えた箇所や周辺知識を補強するために、参考書の該当箇所を参照するという使い方が一番効率的です。
問題集について
上記で紹介した参考書だけでは、問題集を解く量が不十分なため、WEBで公開されている問題集を利用しました。
利用したWEBの問題集は下記の通りです。
上記のWEB問題集をしっかりやっておけば、まず問題なく合格できる水準にまで達します。
特にRubyExaminationは実際の出題レベルに近いのと、毎回ランダムな問題が出題されるため、何度も繰り返し解きました。
出題内容の傾向
予約語
予約語は試験で1問出題される可能性が高いです。
ぼくが、受験した際にも予約語に関する問題が出題されました。
「選択肢のうち、予約語ではないものは?」という感じで出題されます。
確実に覚えて1点獲得したいところです。
予約語の一覧については、下記に記載しておきます。
BEGIN class ensure nil self when
END def false not super while
alias defined? for or then yield
and do if redo true __LINE__
begin else in rescue undef __FILE__
break elsif module retry unless __ENCODING__
case end next return until
出題数の多いクラス、モジュール
出題数の多いクラスは以下の通りです。
- Stringクラス
- Arrayクラス
- Hashクラス
これらのクラスのメソッドは、実際のコーディングでも最も使う、基本的な部分になると思うので出題数がとても多いです。
これらのクラスやクラスのメソッドについて、優先的に学習することをお勧めします。
例外処理
Rubyの例外処理は、以下のように書くのが正しいです。
begin
# 例外が発生する可能性のある処理
rescue => error
# 例外を発生した場合に実行する処理
ensure
# 例外の発生に関わらず実行する処理
end
実際の出題内容としては、上記の選択肢以外に他の言語では一般的なtry ~ catchなどが与えられ、
正しい例外処理を選びなさいなどの出題がされます。
同じ処理の別名メソッド
Rubyには、メソッド名は違うが処理が同じ、戻り値だけ違うメソッドが存在します。
「選択肢の中から同じ処理のメソッドを選択してください」といった問題が出題されます。
覚えておくだけで、即答できる問題のため絶対に正解しておきたいところです。
- map, collect
- reject!, delete_if
reject!は、削除が行われた時は、レシーバ自身。変化がない時は、nilを返す。
delete_ifは、戻り値はレシーバ自身
配列の参照
この出題は頻出で、2問以上出題されたりします。
以下のような違いをおさえておく等が重要です。
ary = [1,2,3,4,5,6]
ary[1..2] => [2,3]
ary[1...3] => [2]
ary[1,2] => [2,3]
ざっと紹介してきましたが、Ruby Silverはほぼ全て暗記です。
そのため、いかに効率良く試験に出やすい部分を暗記しているかに尽きます。
難易度も低くかなり取得しやすい資格のため、是非気軽に挑戦してみてください。