Code Journey

30代未経験からプログラミング挑戦中(追うものは追われる者に勝る)

【合格体験記】RubySilver試験の準備から合格までの体験談

はじめに

前提

まず前提として、この記事を書いているのは未経験からプログラミングに挑戦中の者になります。学習はフィヨルドブートキャンプ(以下 FBC)に参加しながら取り組んでいて、現役のエンジニアの方からレビューをもらいながら進めています。

現在の学習状況は以下を随時更新しているので興味ある方はご覧ください。

hirano-vm4.hatenablog.com

今回タイトルにもあるように、RubySilverに合格することができました!75点以上が合格で、今回の点数は92点でした。これから受ける方の参考になるかもしれないのでアウトプットしておきたいと思います。

受験動機

FBCでのプラクティスも終盤になり、残っている大きなプラクティスは「チーム開発」と「Webアプリ作成」になりました。

こちらの記事に記録したように、言語としてまずRubyフレームワークRailsを学習します。終了した後は、JavaScriptとReactと別の言語たちをしばらく学習していました。

その状態でいきなりチーム開発に入ってしまうとRubyに頭がすぐに切り替わらなそうだった。また、客観的な基準で一定のRubyの習熟度を確認しておきたいという気持ちがあってRubySilverを受験することにしました。


RubySilver試験とは

試験の概要と目的

公式(Ruby Association)では以下のように説明されています。

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

認定によりRubyベースでシステム開発を行ううえで必要な基礎的な知識と応用力をもつことをアピールすることができます。試験の合格者は、Rubyアソシエーションにより「 Ruby Association Certified Ruby Programmer Silver/Gold version 3」として認定されます。


この試験は、SilverとGoldの2つの試験があります。

Silverは、Rubyの文法知識、Rubyのクラスとオブジェクト、標準ライブラリの知識について、基本的な技術レベルを持つことを認定する試験。


Goldは、Silverで求められる範囲(文法、オブジェクト指向、組み込みライブラリ、実行環境など)を更に掘り 下げた知識に標準添付ライブラリ知識やアプリケーション設計に必要となるクラスやオブジェクトに関する知識を追加し、Rubyによるプログラム設計技術を持つことを認定する試験となっています。


なのでまずはSilverから受験するのが通常ルートだと思います。

「Goldとして認定されるにはGold及びSilver試験の合格が必要」という文言が公式にはあります。表現的に受験を妨げるものではないようにも捉えられますが、Goldだけを受験する場合は公式に問い合わせてみた方がよい気がしました(あまりそんな方はいらっしゃらないと思いますが)。


試験は90分で全50問です。選択肢を選んでいくのみなので、時間には余裕がありました。見直しを3回しても30分くらい余る感じでした。パソコンで試験を受験することになるので、当日操作に戸惑わないようにCBT体験版で予行練習しておきましょう!

マーカーを引いたり、選択肢を視覚的に絞れるように取り消し線をつけたり、あとで見直しができるようにフラッグを立てることができることがわかります。


これもプロメトリック社のサイト内で練習できるので不安な方は触っておきましょう。

試験結果は、受験後すぐに画面に表示されます。プロメトリック社で以下のように確認できました。

受験費用

受験費用はこの記事を書いている2024年2月時点で、通常価格16,500円(ガク割適用価格 8,250円)となっています。なかなか高額だったので、しっかり学習して大丈夫だと思える状態にしてから受験しました。

学生の方は半額で受験できるので卒業を控えている方は早めに応募したほうがお得に受験ができるかもしれません!


申し込み方法

Ruby Associationからではなく、受験の応募・支払い・会場の予約はプロメトリック社を通して行います。

少し応募やアカウントの取得にクセがあるので時間に余裕を持って手続きすることをお勧めします。

試験準備

勉強時間

日々の学習の中で問題を50問程度やって、間違った問題と疑問に感じた部分を自分でirbでコードを動かしてみたり、リファレンス、合格教本があるのでそれを確認しました。期間にしては隙間時間で1〜2ヶ月。試験前は1週間くらいからガッツリやりました。


学習教材

REx

rex.libertyfish.co.jp

こちらのWebアプリで無料で学習することができるので、まずはこちらのサイトで雰囲気を掴むのが良いかもしれません。平均して90点台を取れるまで反復しました。

GitHubアカウントを連携させるのみで利用することができます。解説もある程度書いていますが、省かれている部分もあるので、そこは自分でリファレンスやググり力でカバーしましょう!

今の時代ならChatGPTも学習に有効ですが、間違った回答がでてくることも多いので、最終的にはリファレンスの確認はしたほうがよいと思いました。


公式問題

Githubに公式の問題があるのでそれも無料でできます。また、さすが公式なだけあって似た問題も多かったような気がします。

Ruby技術者認定試験Silver模擬問題

こちらは旧バージョンの公式問題のようですが、やった方がいいと思います。


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

https://amzn.to/48kZ2ERamzn.to

ここまで勉強して、RubySilverを受験しようと思った方は、この公式本を購入すると良いと思います。解説だけでなく、基礎問題や模擬問題もあってかなり似た問題が出題されていました。

この1冊でGoldもSilverも対応しているので少し高いですが、購入をお勧めします。知らなかったことが結構書かれていたので、試験が終わった後も辞書的に使えるかも?

注意した方がよさそうなのは[改訂2版]を購入するということです。口コミをみると初版はかなり間違いがあるようです。初版は安く中古で売っていますが、改訂2版の方が良さそうです。

私は改訂2版の紙の本が欲しかったのですが、あまり在庫がないのか探すのに苦労しました。たまたま良いタイミングで中古本が売られていたので、古本で購入しました。デジタル版はAmazonで購入可能でした。

受験した方のブログを読み漁る

たくさんの方がアウトプットされていて助かりました。同じFBCの方もいて嬉しくなりました。参考にした記事を以下に引用しておきたいと思います。ありがとうございました!

【Ruby】「!」が付かない破壊的メソッドまとめ #Ruby - Qiita

Ruby技術者認定試験Silver version 2.1を受けて… #Ruby - Qiita

【Ruby技術者認定試験】ポイントまとめ #Ruby - Qiita

Ruby Silverに合格しました! - すずかのプログラミング勉強記

Ruby Silver試験前に見直すと幸せになれるメモ - 気軽に楽しくプログラムと遊ぶ

模擬試験ガチで1問も解けなかった私がRuby Silverに合格したお話 - 宮水の日記

Ruby silverの試験勉強で、よくわからない部分を書き出してみた - 駆け出しエンジニアの気ままブログ

まったくの0からの学習でない場合はまず、テキストを読むのではなく問題を解く。そこから間違ったろころ、怪しい部分、疑問に感じたところをテキスト・リファレンス等で確認しておくのが効率の良い学習だと感じました。


試験で注意すべきポイント

受験して意識した方がよいポイントを箇条書きでまとめてみました。(全てではなく、覚えていたものを並べていますのでご注意ください)

  • 選択する対象が「正しいもの」or「間違っているもの」なのかを確認する

  • 選択すべき回答がいくつなのか確認:「1つ」「2つ」「複数」「すべて」など指示があるので確認を!たまに「すべて」とあっても1問のみだったりすることもあるので問題をまずしっかり読む(見直して気づいた問題がありました)

  • 練習問題の答えだけを学習しない(引数・オプション・破壊的メソッドか否かetc問題から考えられる周辺知識をirbなどで確認しておく)

  • 破壊的メソッドであるか否かで、変更が反映されていなかったor変更されていた問題が多い(!がなくても破壊的メソッドがあるので注意する)

  • 対象が見つからないときなどに、戻り値がエラーになるのか、nilなのか、0なのか、boolなのか、配列の要素数になるのか等

  • 比較演算子・論理演算子の戻り値・優先順位

  • 変数のスコープ

  • 正規表現を覚える

  • Dir、File、IOクラスのメソッド(pwdはDirクラスにあるかどうか等覚えておく)

  • Fileを開く際のモードの特徴を覚えておく(r r+ a a+ w w+  デフォルトは? ファイルポインターの位置の指定etc)

  • エイリアスメソッドは覚えておく!!

  • 例外処理(サブクラスまで補足する)

  • 進数の変換(080は8進数のためエラーになる、0xは16進数、0bは2進数など)

  • スーパークラス(指定しないとObjectクラスがデフォルトでスーパークラス

  • オブジェクト指向(initialize 継承 super attr_reader)

  • 文字列・配列・ハッシュなどのメソッドや要素の操作

  • 四則演算 優先順位

  • 比較の違い(== eql? equal? 同値なのか、同一なのか)

RubySilverのメリット・デメリット

Rubyの基礎的な知識が網羅的に学ぶことができるのがメリットだと感じました。

これまでRubyを学習してきましたが、課題で使う知識は一部です。これまで使わなかったけど、知っておくべきであろう知識も多くて個人的には勉強になりました。

どれくらい理解しているか客観的に測る指標ってなかなかありません。そういう意味でRubySilverを受験するメリットはあるのかな?と感じました。

デメリットは受験費用が高いことですかね(笑)試験と、教本の費用で2万円程度かかるので、人によってはデメリットに感じるかもしれません。個人的には自己投資としては高くは感じませんでした!

まとめ

以上、RubySilverの体験談でした。

年齢・環境・覚えの早さはそれぞれですが、自分なりに今の自分よりも1㎝ずつでもいいから、成長しようとする気持ちを持ち続けるって大切だなと感じました。

悩むこともあるけど、挑戦中の悩みって前進している証拠でもある(と自分に自己暗示)。

これからもいくつになっても、新しいことにチャレンジして変わっていける自分でいられるよう、引き続き好奇心持って努力していきたいと思います💪

FBCの学習が少し止まってしまったので、ここからはチーム開発、ポートフォリオになるアプリの作成に向けてギアを上げていきたいと思います🔥

また時間に余裕ができたらGoldもせっかくなので合格を目指したいと思います!ここまで目を通していただき、ありがとうございました!

余談

2月22日猫の日に合格できたのがちょっとだけ嬉しい。