...

Ruby技術者認定試験Silverに合格したので出題された問題とか勉強方法とかまとめたよ

Ruby技術者認定試験silverの勉強法と出題問題

どうもおはようポテト(@ohayoupoteto22)です。

先日、Ruby技術者認定試験silverに無事一発合格できました。

 

ということで今回は

「どんな感じに勉強したか知りたい」

「実際にどんな問題が出たか知りたい」

このような方に向けて、実際に出た問題や勉強方法についてゆるーくまとめたいと思います

ブログ主

早速いってみよう!

Ruby技術者認定試験とは何ぞや?

Ruby技術者認定試験制度は、Rubyベースのシステムを設計、開発、運用するエンジニア、Rubyでシステム提案を行うコンサルタント、Rubyを教える講師及びRubyを学ぶ学生などを対象とした認定試験制度です。認定者は、Ruby技術者としての技術力を公正に評価され、高い水準のRubyによるシステム開発能力を持つことを認定されます
(引用:Ruby Associationより)

簡単に説明すると「Rubyをある程度知ってるよということを証明できる資格」です。

大まかな内容は以下の通り。

概要

制限時間90分

50問で4択(1問2点)

76点以上で合格

難易度はGoldとSilverの2つ

受験料は16,500円(学生は半額。やったぜ。)

ちなみにGoldはSilverを合格しないと受験できないです

ソロモン

 

軽く自己紹介

この試験の勉強を始める前の僕のスペックについて少しだけ。

情報学部の大学生

Ruby (on Rails)でwebアプリケーションをいくつか作った経験あり

でもRubyの知識はそこまでない

他の言語も広く浅く触ってきた

貧乳の二次元の女の子が好き

この資格を取ろうと思ったきっかけは色々ありますが、一番は「ESに書けるIT系の資格が欲しかった」からですかね。

まあ僕に関しての話はここまでにして本題に行きましょう(っ´ω`c)

Ruby技術者認定試験の勉強方法と時間

まずはブログ主がどんな感じに勉強したのかについて。勉強期間は1ヶ月半ぐらいでした。

手順
1~3週間
参考書を1.5周ぐらい読む
4~5週間
メソッド君たちと仲良くなる(覚える)
5~6週間
ひたすら問題演習
学校の勉強や他の独学しているものもあるのでそれらが終わってからの時間によくやっていました。

ブログ主

それじゃ詳しく見ていこう

参考書を1.5周ぐらい読む

勉強に用いたのはRuby技術者認定試験ではお馴染みのこの参考書です。ぶっちゃけこれ一冊さえあればなんとかなるかなと。オールインワン。

「ほならね、この参考書を読破してやりますよ」と意気込み1~2週間近く睨めっこしていたのですが…
一つの真理に辿り着きます。

あれこれ一生終わらなくね

この参考書、かなり簡潔にまとめられていますが、お世辞にも少ないとは言えない量です。

なので一通り読んで理解したら次のステップに移ってよいかなと。どうせ問題演習で分からないところを調べる辞書として手垢まみれになるので。

 

今になって思うのは「もっと早くから問題演習に取り掛かればよかった」、これに尽きます。

 

あちなみに上の参考書、説明が端折ってあるところもあるのでそこは「たのしいRuby」などの他の書籍で補完していました。

メソッド君たちと仲良くなる

ぶっちゃけここをすっ飛ばして問題演習に取り掛かってもいいと思います。

「落ちたら地下に放り込まれる」「一発合格しなきゃ実家が燃やされる」なんて人はやった方がいいかも。

特例すぎる。

ソロモン

試験ではメソッドに関する問題が大半を占めるのでまずメソッドと仲良くなる必要があります。

そこでベタではありますが、単語帳を用いて暗記する方法をとりました。

単語帳に書いたメソッドの数は130ぐらい。(覚えたとは言ってない)

ひたすら問題演習

そしていざ問題演習へ。

一日50問を解くことをノルマとし、間違えた問題やポイントは逐一メモ帳にまとめていました。

(字汚すぎて草)

 

これもメモ?

ソロモン

ブログ主

これは予約した美容院の時間書いたやつ。

…次にその問題演習で利用したサイトをご紹介します。

試験の問題演習ができるサイト

ミニツク

ミニツクはRuby技術者認定試験Silverの問題だけでなく、Rubyの基礎的な文法についての勉強もできるサイトです。

ドリル形式になっていて、その場で解答と解説が表示されるので効率よく勉強することができるのでオススメです。

ブログ主

ここは解説がすごい丁寧。

 

REX

REXはRuby技術者認定試験の問題を”ランダムで”出題してくれるサイトです。ちなみにGoldの問題もあります。

参考書や本試験より難易度は少し高めですが、これに慣れておくことで本試験が簡単に感じるようになります。マジで。(必死)

前半に「そこまで難しくなかった」と書きましたが、それもこのサイトでしごかれたおかげかも…

ブログ主

圧倒的おすすめ。

しかし50問解いて初めて点数と解説が見れるので、ある程度まとまった時間が必要かもです。

DIVE INTO EXAM

DIVE INTO EXAMは先ほど挙げたREXと同じように問題を”ランダムで”出題してくれるサイトです。

難易度は参考書より少し高めでREXよりは少し簡単です。

結局どのサイトの問題解けばいいん?

僕の場合はここで挙げたサイトを全部日替わりで50問ずつ解いていたのですが、

本試験で出た問題の多くは参考書の練習問題から多く出ていました。なので

手順
基本
参考書の問題を完璧に解けるようにする
気が向いたら
ミニツクの問題にも少し手を出してみる
試験前
REXで実際の試験形式に慣れる

このような流れでやってくのがオススメです。

勉強を少し楽にするかもしれないポイント

勉強の際に個人的に気を付けたポイントをまとめました。少しでも参考になれば幸いです

!の付かない破壊的メソッド

本試験でもちょくちょく、そのメソッドが破壊的か非破壊的か覚えてないと解けないような問題がありました。

なので先に”!の付かない破壊的メソッド“を全て覚えてしまえば、「それ以外のメソッドは!が付かない限り非破壊的だ」となるので楽でした。

ブログ主

てことでまとめてみたよ

Stringクラス

concatinsertreplace
<<[]=

 

Arrayクラス

popshiftunshift
pushconcatinsert
fillreplacedelete
delete_atdelete_ifclear
<<[]=

 

Hashクラス

shiftreplacedelete
delete_ifclearupdate
[]=

 

破壊的メソッドに関しては以下の記事で詳しくまとめてあります。

Rubyの破壊的メソッドRuby技術者認定試験に出やすい「!」の付かない破壊的メソッド一覧

破壊的メソッドの返り値

a=[810,114514,072]

p a.delete(810) #=>810
p a.slice!(0,1) #=>114514

ブログ主の場合、破壊的メソッドの返り値についてよく意識していました。

例えばdeleteやslice!の場合返されるのは、要素が消された配列ではなく”消した要素”である…と。

 

引数

chomp()とchomp(“”)や、split()とsplit(“”)のように

引数に空の文字列を指定してあげると動きが変わってくるものがあるのでそこら辺注意かもです。

Rubyのsplit【Ruby】split()とsplit(”)の違いをまとめてみた

実際に試験で出た問題

本試験を受けて印象に残っていた問題を思い出せる範囲でまとめました。

zipとtranspose

a=["松","竹","梅"]
b=["松","たか","子"]

a.zip(b) do |i|#選択肢1
  p i
end

[a,b].zip do |i|#選択肢2
  p i
end

[a,b].transpose.each do |x,y|#選択肢3
  p [x,y]
end

[a,b].transpose.each do |i|#選択肢4
  p i
end

この中で同じ出力結果になるのはどれかという問題。

基本的にほとんどの問題で「〇つ選択」と指定があるのですが、この問題含めたまーに「複数選択」というのがあるので注意が必要ですね。めんどくさいったらありゃしない。

正規表現

この中から「Ruby」もしくは「ruby」という文字列にのみマッチする正規表現を2つ選べ、という問題。

/^[Rr]uby$/
/^Ruby|ruby$/
/^[Rr][u][b][y]$/
/^R|ruby$/

確かこれは参考書の練習問題でも出ていたので助かりました。例えば選択肢4の場合、行頭がRならなんでも許されて「Roland」でもマッチしてしまうので注意が必要ですね。

 

?A

p ?A

これも参考書の練習問題で出たもので、「これさぁ、本番で出るわけないじゃん?ww」と高を括ってたら本当に出ました。草。

 

grepメソッド

a=["a","8","b","114514","c"]

p a.grep(/d/).length

grepはその配列を、引数の正規表現にマッチする要素のみにするというのは理解していたのですが、この場合「*とか+無いから一桁である8のみ?」「それとも114514の方も?」となり迷いました。

答えとしてはどちらも当てはまります。2が出力されます。

 

exit

begin
  p 1/0
rescue ZeroDivisionError
  p "異世界転生したい"
  exit 1
ensure
  p "ハーレム生活を送りたい"
end

実行結果を聞かれるものでした。

 

文字コードの設定

# coding:Shift-JIS
# -*- charset: Shift-JIS -*-
# encoding:Shift-JIS

「この中で文字コードをShift-JISに設定できるものはどれですか」的な問題でした。4つ目の選択肢は忘れました。

確かこれも参考書の問題で出たので助かりました。アーメン。

ブログ主

思い出せたのはこんぐらいです

 

最後に

結果発表はいつ?

得点に関しては本試験終了後すぐに公開され、合否も判明します。

そしてもし合格だった場合、1週間後ぐらいに電子版での合格証明書が届くカタチです。

Goldを受けるか

Goldを受けるかどうか」ですが、silverで勉強したことを忘れてしまってまた一から勉強し直すのもアホらしいので、

Goldの勉強も引き続き進めてすぐ受けようと思います。

ブログ主

それにしても受験料高すぎ。

 

就職で有利になる??

「就活の際にこのような資格が必要なのか」と他人に突っ込まれたり自問自答したりしますが…まあ

 

あるに越したことはないでしょ(´ω` )

 

ということで引き続き頑張っていこうと思います。ゆるーく。

予約は早めに

あ、そうそう今回受験して感じたことがもう一つ。

それは「取り敢えず試験の予約した方がいいよね」ってことです。

 

自分みたいな超絶怠惰人間の場合だけかもしれませんが、いつまでも予約しないと

まだ受けないから勉強しなくていいや

みたいな思考になってズルズルいってしまうので取り敢えず早めに予約しておくのが良さげかも。試験は基本いつでも受験することが可能ですからね。

おやすみ

以上となります。

この情報が少しでも今後受ける方の参考になれば幸いです。僕の屍(?)を越えていってください(›´ω`‹ )

最後まで読んでいただきありがとうございました!では⸝⸝- ̫ -⸝⸝

参考になったらシェアしよう

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA