こさろぐ

岡山のエンジニア雑記

Java屋がRuby試験Silverに合格するまでにやったことを全部書く

f:id:pepepki:20170404003618j:plain

こんにちは、小坂(@pepepki)です。

先日、Ruby技術者認定試験のSilver(※)に合格しました。

Silver、Goldと2種類の試験があり、今回は下位のSilverです。

※正式名称:Ruby Association Certified Ruby Programmer Silver version 2.1

www.ruby.or.jp

 

こちらが証拠の合格写真です。

f:id:pepepki:20170403230642j:plain

 

普段はSIerJavaをメインに仕事しており、Rubyを触りだしたのは2017年2月の下旬頃。それから約1ヶ月ちょっとでRubyのSilver試験に合格しました。

そこで、合格するまでにやったことをこの記事に全部書いてみました。受験する場合に参考になれば幸いです。

 

学習期間

約40日。ただし前半の25日はネットを参考にしながらちょっと触った程度。本格的に勉強したのは後半の2週間です。

後半の2週間は1日2時間程度勉強していました。

家では家事や育児であまり勉強時間が取れません。そのため、下記のようなスキマ時間も活用して問題を解いたりテキストを読み進めていました。

スキマ時間だけでも工夫すれば1日30分以上は時間が生まれます。時間制約がある分、集中できたのは良かったです。

 

  • 朝会社に出社後~始業前まで
  • 昼休憩時
  • その他家事の合間(洗濯物が終わるまでの数分、とか)

 

勉強の流れ

学習した順番に記載します。

1.ドットインストール

f:id:pepepki:20170403234620p:plain

環境構築しながらビデオ学習。Rubyってだいたいこんな感じっていうのを理解する。ドットインストールで構築した環境が後々の学習でも役に立ちました。ただし、Rubyのバージョンが2.3でした。試験は2.1でちょっと実行結果が変わるため、注意が必要。

視聴した講義は以下の3つ。いずれも会員登録すれば無料で閲覧できる講義です。Railsは試験合格が目的なら見る必要はありません。

・ローカル開発環境の構築 [Windows編]

Ruby入門 (全26回)

Ruby on Rails 4入門 (全28回)

あえて取り組む必要はありませんが、流れを理解するのには良かったと思います。

2.Progate

f:id:pepepki:20170403234727p:plain

Rubyのプログラミングをしながらレベルを上げるというゲームに興じました。あんまり勉強している感覚はなし。レベル上げ楽しー。飽きた。で終わってしまいました。

何らかの言語経験者には少し物足りないかも。超初心者の人にはいいかもしれませんが、私は試験対策としてはやる必要はありませんでした。

3.[改訂2版]Ruby技術者認定試験合格教本(Silver/Gold対応) Ruby公式資格教科書

試験対策には必要な参考書ですが、注意も必要です。

まず、数十箇所の誤植があるため、最初に公式サイトの正誤表は必ず見ておく必要があります。

※追記:初版は誤植が多かったのですが、改訂2版で改善されたようです。

流れとしては、1回Silverの試験範囲を通読。かいつまんだような足りない説明が多く、多大なストレスを感じながら読み進める。気になる箇所だけ実際にソースを書いて実機確認。

通読後、7章の基礎力確認問題に取り組む。正答率50%ほど。解説を本に穴があくほど読む。どういうプロセスで考えるべきだったか。どの知識が抜けていたのか。他の選択肢はなぜ間違いなのかを徹底的に考える。その後もう一度解き直して知識と理解のプロセスを再確認。

4.Rubyがミニツク

まつもとゆきひろさんの解説動画があるRubyの学習サイト。

まずはここからやるべきといえる良サイトです。Ruby入門コースのページは全ページ見ました。各章最後のドリルも全問正解できるまで繰り返しました。

各章の導入でまつもとゆきひろさんの動画解説があり、非常に分かりやすかったです。モチベーション維持にもなりました。

Ruby入門コースのあとは、Ruby技術者認定試験(Silver)対策コースを全問正解できるまで解きました。Rubyのバージョンが1.8.X時代の古い内容ですが、やっておく価値はあります。念のため実行結果は実機で見ておきましょう。

5.Ruby技術者認定試験合格教本 Silver/Gold対応 Ruby公式資格教科書

5.としましたが、3.と同じ本です。

ミニツクが一通り終わったあと、7章の模擬試験を解きました。正解率は6割程度だったと思います。ここでも不明点はゼロにした上で全問正解できるまで繰り返し解きました。7章の模擬問題に傾向が近い、またはほとんどそのままの問題が本番の試験でいくつか出題されました。

6.公式模擬問題

仕上げとして、公式の模擬問題を解きました。教科書の模擬問題で鍛えられたおかげでほぼ正解しましたが、理解が曖昧な点や穴が見つかったので、解説を読み込んで知識の補強をしました。公式の模擬問題からも、本番でよく似た問題が出題されました。

 

6終了後は、4~6を3周程度繰り返しました。最後の方には問題文の冒頭を見ただけで答えが浮かぶ程になっていました。

 

試験の感想

模擬問題とよく似た問題が多かったものの、「絶対これが正解だ!」と自信を持って解答できたのは7割程度でした。もうちょっとリファレンスを読み込んでおけば高得点が狙えたと思います。

・ヒアドキュメント

・破壊的/非破壊的メソッドの理解

・String、Hash、配列の基本的な文法・組み込みメソッド

・モジュールのインクルードやインスタンスメソッド・クラスメソッドの扱い

・ファイルを開く際の読み書きモードなどの扱い

・Enumerableモジュールのメソッドの理解(似た挙動のメソッド、違い)

…などなど、まだまだありますが、上記のような模擬試験に頻出のポイントを念頭に置きながら学習するとよいかと思います。