はじめに
Ruby アソシエーションが行なっている Ruby技術者認定試験 Gold に合格しました。
受験スコア
78点でした。75点以上で合格なのでギリギリのラインでした。
学習期間
2020年1月7日から学習を本格的に開始して、2月中旬に合格しました。学習期間としては、約1.5ヶ月です。
工夫したこと
隙間時間の活用です。2歳の息子がイヤイヤ期真っ盛りであるため、家で落ち着いてコードを書くことはほぼ不可能でした。
ちなみに、毎朝家族の朝食を作り、ほぼ毎日息子とお風呂に一緒に入って寝かしつけも行っていました。土日はほぼ息子とつきっきりで遊んでいました。
そのため、集中して勉強できる時間をいかに確保できるかが課題でした。自由時間が限られていることもあり、平日の通勤時間と会社の昼休み時間を使って、1日約30分は必ず勉強するようにしました。またスマホを使って日々の隙間時間があれば、1問でも多くの問題を解くように心がけました。
隙間時間の活用はポモドーロテクニックを使って管理しました。
勉強したこと
使った教材
公式教科書と、メタプログラミングRubyの2冊です。
- 作者:Paolo Perrotta
- 発売日: 2015/10/10
- メディア: 大型本
毎日Rubyを書く
1月7日からほぼ毎日Rubyのコードを書いていました。毎回ブログに投稿するのは手間だったため Twitter にやったことを投稿するようにしました。ハッシュタグの#100DaysOfCode
を使って学んだことをアウトプットしました。
DAY9#メタプログラミングRuby より
— Yokoyama Hironori (@yokoyantech) February 4, 2020
・特異クラス、得意メソッドの継承チェーンを学ぶ#100DaysOfCode pic.twitter.com/NSDXMdmdIw
メタプログラミングRubyを読み込む
1章から5章まで写経しながら2周しました。ボブとビルの掛け合いを楽しみながら、メタプログラミングを学びました。本を読み進めるのが楽しすぎて、途中から試験勉強そっちのけになっていました。
define_method
や、method_missing
を使ったメタプログラミングはまさに黒魔術でした。リファクタリングの参考にもなるので、実務でもリファレンスとして手元に置いておきたい本です。
私はこの本を読み込むことで、Rubyの継承チェーンを理解することができました。
インスタンスメソッドやクラスメソッドの違いはもちろん、特異メソッドや特異クラスがどのような仕組みになっているのかが分かりやすく図解されており、ゴールドを受験するならメタプログラミング Ruby は必読と言われる理由がよくわかりました。
Rubyの標準ドキュメントを読み込む
教科書の練習問題や模擬試験を解くだけではなく、問題に出てきた回答や選択肢についてもRubyの公式ドキュメントを使って調べるようにしました。
スマホでRubyを書く
電車の中で問題を解くうちに、irbを起動して動作確認したいことが多々ありました。その場で解決したかったため、スマホにTermuxを入れてirbをどこでも使えるようにしました。
反省点
- 教科書の試験範囲の本文を全く読まなかった
- 今回資格試験を受験するにあたり準備期間が1ヶ月半程度しかありませんでした。そのためメタプログラミング Ruby を読み込んだ後はひたすら教科書の巻末の基礎問題集と模擬試験の80問をひたすら解くという方式を取りました。
結果的に合格することはできましたが、模擬試験の範囲外のものが出題されることもあり、その点については、全く手も足も出ませんでした。
腰を据えてRubyの言語仕様を学べる機会だったので、資格試験の教科書は流し読みでもいいので一周は読んでおくべきだったなと反省しています。
資格取得によって得られたもの
ずばり、Rubyの知識です。メンバーのプルリクに対して、「この書き方はRubyらしいか?もっとスマートな書き方はないか?」ということをさらに考えるようになりました。資格学習前に比べて、深みが増したように感じます。曖昧だった継承チェーンを理解することができたのは大きな収穫でした。また、育児しながらでも隙間時間を積み重ねれば、資格が取れるという成功体験も得ることができました。
まとめ
ということで今回はRuby技術者認定試験 Goldの合格体験談をまとめました。今後、学習される方の参考になれば幸いです。