やっと 合格

毎年の目標に掲げ続けていた, Ruby Association Certified Ruby Programmer Gold version 2.1 に合格出来たので振り返りたいと思う.

やっと Gold が取れて福岡県民の義務を果たせました。

モチベーション

なぜ, 受験したのか. それは, Ruby 推しの街, 福岡に住むエンジニアとしての義務だと思っているから…

speakerdeck.com

業務上で Ruby コードを書くことはないが, ちょくちょく Ruby 製のツールをいじる機会があるので, これらのツールがどのような仕組みで動いているのか, その基盤となっている Ruby についてちゃんと理解するべきという思いから 2016 年の 8 月に Silver を受験して合格し, Gold 合格を目指して勉強を重ねてきた. (ちゃんと勉強に取り掛かったのは 2017 年末)

実は三浪

試験センターのお姉さんに顔を覚えられたかな…

実は今回の試験で 4 回目の受験. 試験センターのお姉さんにも顔を覚えられてしまったのではというくらい. 過去 3 回の試験をちょっとだけ振り返ると以下のような感じ.

一回目

  • 2017 年 12 月末に受験
  • 合格教本の問題集の答えだけ覚えて受験した感じで, ちょっと甘く見ていた
  • 62 点

二回目

  • 2018 年 1 月末に受験
  • 一回目の反省を踏まえて,合格教本とメタプログラミング Ruby もちゃんと読み直し, IT トレメの問題を解くようにした
  • でも, 不合格の 70 点

三回目

  • 2018 年 7 月 20 日, 記念すべき fukuoka.rb 100 回目に花を添えようと思って受験
  • 二回目以降, だいぶん間が空いてしまっていて, 試験の感覚が鈍っていた
  • 最後の見直しで直した部分が全部間違っていたと記憶している (自信を持って答えらえるレベルに達していないと実感)
  • 72 点

そして今回

  • クラス継承の理解を根本的に間違っていると三回目の不合格に気づいたので, 慌ててその理解の矯正をした
  • 三回目のモチベーションを維持しつつ, 最後のチャレンジということで自分にプレッシャー

1 行でまとめると

  • 記憶に頼るだけでは合格は難しい!!!

どんな勉強をしたか

教材, 目的, 取り組み

教材 目的 利用 (学習) 頻度
合格教本 出題範囲の把握等 3 回程通読
公式リファレンス 不明な点をググる前に確認 都度利用
メタプログラミング Ruby 第2版 メタプログラミングの理解を深める 3 回程通読, 気分転換にパラパラと
チェリー本 合格教本, 公式リファレンスで理解出来ない部分を補う 都度利用
合格教本の各種問題 (基礎力確認, 模擬) 問題に慣れる, 答えの説明が出来るように 隙間時間や毎朝の起き抜けに
IT トレメ 問題に慣れる, 答えの説明が出来るように 隙間時間や毎朝の起き抜けに
RubyExamination 理解度の確認 3 回程
  • 仕事で Ruby を触っているわけではないので, 一日 10 分でも Ruby に触る時間を設けた
  • 参考資料に書かれているコードを徹底的に写経, コードを少し変えて自作の問題を作る
  • そのうちに答えを覚えてしまうので, その後は, なぜ, その答えになるのかを説明出来るようになるまで理解を深める
  • 公式のドキュメントの細かい部分まで読んでおく (全ての項目は無理なので, 気になった項目だけでも)

オブジェクト指向, 組み込みライブラリ, 例外処理

特に以下の出題範囲について勉強に多くの時間を割いた.

  • オブジェクト指向
  • 組み込みライブラリ
  • 例外処理

オブジェクト指向では, クラスの継承, メソッドや定数の探索経路, メソッドの可視性等を, 組み込みライブラリでは Enumerable や正規表現, 文法では例外処理のイメージが全然掴めていなかったので, 合格教本や IT トレメの設問を写経したり, 自分でコードを考えたりして挙動の把握に努めた.

書籍教材

Ruby技術者認定試験Silver/Goldに対応した公式テキストの改訂2版です。試験バージョン2.1にしっかり対応しました。試験対策としてはもちろんですが,Rubyの文法をはじめ,オブジェクト指向や各種ライブラリなど,Rubyを使いこなす上で必須の基礎知識もしっかり身につ...

gihyo.jp

公式の問題集で, 出題範囲毎の解説と基礎力問題, 模擬問題が掲載されている. 以後は「合格教本」と呼ぶ.

本書はRubyを使ったメタプログラミングについて解説する書籍です。メタプログラミングとは、プログラミングコードを記述するコードを記述することを意味します。前半では、メタプログラミングの背景にある基本的な考えを紹介しながら、動的ディスパッチ、ゴーストメ...

www.oreilly.co.jp

Gold 受験するなら必読と呼ばれている良書. メンターのビルからあなた (読者) に OJT を通してメタプログラミングを教えるような流れになっていて, 完全に内容を理解出来なくても楽しく読み進めることが出来る. 自分はどちらかと言うと, 他の教材で学習する息抜きに読み進めた感じ.

Rubyの文法をサンプルコードで学び,例題でプログラミングの流れを体験できる解説書です。ほかのプログラミング言語で開発経験のある人が,Rubyを学ぶ際に効率的に学べる内容を詰め込みました。プログラミング未経験者向けの「変数とは」「配列とは」といったプログ...

gihyo.jp

チェリー本. 合格教本や公式リファレンスを読んでいて, なんと無く理解出来ていない部分もをこのチェリー本を解りやすい解説を読むことで, 自分の中でその部分を言語化することが出来た.

サイト教材

オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (Ruby 2.1.0)

ググる前に公式のリファレンスを読む癖を付けた.

ITエンジニアのスキルアップに役立つ問題を、毎日※1問ずつ出題する無料サービスです。※土日祝日を除く問題は、Web/RSSで提供しています。1つのテーマの問題をまとめて解ける「問題集」も用意しています。

jibun.atmarkit.co.jp

IT トレメ.

REx – Ruby Examination

合格教本に掲載されている問題や IT トレメに掲載されている問題と比較すると格段に難しくて, 本物の試験問題よりも難しいんじゃないかと思うくらいの問題が出題されるので, 一問, 一問, リファレンスや書籍を参考にしながら解く感じで進めた.

その他, 「Ruby Gold」や「Ruby 認定試験」でググってヒットする過去に受験された方々の受験期や勉強メモ等も参考にさせて頂いた.

以上

変化

勉強していく過程で, 自分自身にいくつか変化があった. 一つは, 他人が書いた Ruby のコードが少し読めるようになったこと. もう一つはググる前に公式のドキュメントを読むようになったこと (すごく当たり前のようなことだけど).

これからが大事

合格出来て本当に嬉しいし, 本当に苦労したけど, Ruby を体系的に学ぶことが出来て受験して本当に良かったと考えている. 今後もこれを活かせるようにがんばっていきたいと思う.

ありがとう, fukuoka.rb

福岡の Ruby コミュニティ fukuoka.rb が 100 回目を迎えるとのことで, そこに花を添えようと思い (余計無いお世話だけど), 三回目を受験したけど不合格で, 俺って本当に馬鹿なんだろうなあと凹みつつも, これが最後のチャレンジでなんとか合格することが出来た次第. fukuoka.rb が 100 回目を迎えていなければ, もしかすると三回目は受けていなかったかもしれないので fukuoka.rb には本当に感謝している.

ありがとう, 奥さん

落ちても「良い笑いのネタになったね」と励ましてくれた奥さん, 「あんた, Ruby の本質を解ってるの?」とダメ出ししてくれた奥さん, 家族団らんの時間を勉強に割いても笑って許してくれた奥さん, 本当にありがとう.

元記事はこちら

Ruby 技術者認定試験 Gold に やっと合格して福岡県民の義務を果たせた