📝

【初学者】Ruby Silver勉強法・当日の試験内容

2024/08/19に公開

はじめに

こんにちは。なかじと申します。
現在、プログラミングスクールに通ってRuby on Railsを学習しております。

記事の概要

先日、Ruby Silverを受験し合格しました。
本記事では、試験までの学習の流れと試験当日のことについてまとめました。
今後受験される方の参考になれば幸いです。

受験申込について(学割)

今回の受験では、通っているプログラミングスクールが適用可能だったので学割を使用しました。下記からサイトから学割の申請をするとバウチャーが届きます。学割の申請方法(在学確認)等は下記リンクのメールアドレスから確認してください。
https://www.ruby.or.jp/ja/certification/examination/student_discount
試験申し込みは下記リンクの「試験予約」から可能です。私は最初に「受験チケットの購入」から手続きしてしまい、不要な申し込みをしてしまいました...。申し込み時にバウチャー入力の欄があるので忘れず入力しましょう。学割だと8250円で受験することが可能です。
https://www.prometric-jp.com/examinee/test_list/archives/10

学習について

Silver受験勉強までのRubyの学習状況

上記に加えてプログラミングスクールのカリキュラムでRuby on Railsを使った開発をしているという感じで、独学ではアルゴリズムやRubyに特化した学習を進めていませんでした。

使用した教材

公式問題集(難易度★☆☆)

  • 合格教本、Rexに比べると難易度は低めであるという感想が多いですが、私も同じように感じました。基本的な内容が網羅されている印象です。

合格教本(難易度★★☆)

  • メルカリで中古品買って、巻末のRuby Silver演習問題だけ解きました。この問題集から似たような問題が出題されていました。ちょうど勉強中に新しいバージョンが出たらしいです。

Rex(難易度★★★)

  • 解くたびに一定数問題が入れ替わるのですが、何回かやっているとほぼ同じパターンになってたこともあった気がします。
  • 合格教本一通り終わらせた後に通しで解いたのですが苦戦しました。こちらからも似たような問題が出題されていました。

プロを目指す人のためのRuby入門

  • 配列・ハッシュが頻出だったため最初から第5章までざっくり目を通しました。加えて、問題解いていてよく分からなかった箇所を調べるリファレンス的な使い方もしていました。

学習期間

日程 やったこと
5/25-7/15 毎日合格教本・公式問題集から2問ずつ解く(毎日10-20分)
7/3 受験申し込み
7/16-7/21 Rex初回(54点)→1週間かけて全問見直し(毎日1時間程度)
7/22-7/30 合格教本の解き直し→間違えたところチェック(毎日1時間程度)
7/28-8/9 Zennスクラップまとめ開始
7/31-8/4 Rex解いて64点で焦る。ひたすらRexを解き、復習(毎日1時間半〜2時間程度)
8/5-8/9 合格教本・公式問題集・Rexの解き直しとスクラップの復習(毎日1時間半〜2時間程度)
8/10 試験当日

やってよかったこと

実際にコードを動かしてみる

  • 学習用のリポジトリを作って、解けなかった問題やよく分からなかった問題はコードをコピペして実行して試すようにしていました。
  • 必要に応じてプリントデバックしたり、object_idやクラスを確かめてみたりすることで、このコードを実行した結果、何のクラスのどんな値が出力されるかということを意識的に考えれられるようになった気がします。
  • そして勉強の記録を毎日Githubにコミットすることで草も生やしておりました🌱

学習内容の一元化

  • 直前にはなりますが、間違えた問題やまとめをZennのスクラップにまとめて毎日見返すようにしていました。スクラップにあるものは絶対に落とさないという気持ちでいたのですが、当日「あ、これスクラップにあった気がするけど分からん」ってなってました😂(反省)
  • まとめるツールはなんでも良いと思いますが、私は学習の継続をアピールする意味でNotionからスクラップに移行しました。
  • 結局のところテストである程度暗記をしていないと点数にならないことから、直前の追い込みが大事だったなと思います。

https://zenn.dev/nakayama_bird/scraps/11a92f6d597c5b

やらなくてよかったこと

学習期間の長期化

  • 学習始めてから受験まで2ヶ月半かかっているのですが、正直なところ最初の1ヶ月ちょっとは毎日の学習のウォームアップ的にちまちま解いていただけで、当日の点数に結びついたな〜という感じがあまりありません。
  • Rubyの基礎力向上という意味ではよかったですが、資格を取るための勉強としてはイマイチだったのかなと思います。

正規表現の学習

  • こちらの記事を第3回まで読みましたが、Silverだとそれほど難しい正規表現は出題されないため不要だったかなと感じています。(記事はとてもわかりやすいのでおすすめです。)
  • 正規表現だと下記リンクが必要最低限にまとまっていて、問題に登場するものほぼ網羅できていた気がします。

https://www.ruby.or.jp/ja/tech/development/ruby/tutorial/040_regexp

試験当日の流れ

試験の詳細

  • 試験時間:90分
  • 合格点数:75点
  • 試験方法:CBT(パソコンでポチポチ受けるタイプです。体験版はこちら。)

当日の感想

  • 最初の方が結構難しく、見たことないメソッドも登場したので結構焦りました。
  • 解き進めていくにつれて見覚えのある問題が多くなってきましたが、見直しする中で結構ミスしてた箇所がありました。1回目解いたまま提出したら不合格だったかもしれません😂
  • その場で点数と合否がわかるので試験終了ボタン押すのがドキドキでした。点数は82点でした。

当日出題された問題

  • 当日出題された問題でこれまでの問題集で登場してなくて、覚えていたものをいくつか紹介します。

unionintersection

べき乗メソッドのpow

p 2.pow(3) #=>8

Rubyでインクリメント(++)が使えない

  • ?に入る要素として正しいものはどれか?
a = 100
a (?)
p a #=>101
1,+= 1
2,++
3,=101
# もう一つの選択肢忘れたけど明らかに違うやつでした

indexの順番が分からないようになっている(x1,x2になっていた)

  • どのように出力される?(問題内容自体は覚えてないです)
a = [1, 2, 3]
a.each_with_index { |x1, x2| p [x1, x2] }
#=>[1, 0]
#=>[2, 1]
#=>[3, 2]
  • Rexで出題された時にはniになってたので数値とインデックスだと分かりやすかったです。
a = [1, 2, 3]
a.each_with_index { |n, i| p [n, i] }
#=>[1, 0]
#=>[2, 1]
#=>[3, 2]

concatメソッドの引数の方を出力する問題

  • このコードの出力結果は?
s1="Hoge"
s2="Foga"
s1.concat(s2)
puts s2 #=>Foga
  • 引数を出力させる問題で危うく引っかかりそうになりました。見直しは大切です。

可変長引数(ハッシュの代入)

def foo(**hash)
  p hash #=> {:a=>1, :b=>2}
end
foo(a: 1, b: 2)

まとめ

Ruby Silverの勉強方法と当日の流れについてまとめました。直前までいまいち点数が取れず焦りましたが、なんとか合格できてよかったです!ただ勉強していく中で分からないことがまだまだあるなと実感したので、今後もコツコツと学習を進めていければと考えております。
ここまで読んでくださりありがとうございました!

Discussion