技術者認定試験シルバーとゴールドに合格しました。1つが、めでたくチェックオフされました。それを記念して、勉強方法や合格してみての所感などをレポートさせていただきます。優先的に習得しているのではないかと思います。学び直したいと思ったことが、受験に至った経緯です。基本を学ぶプログラミングに限らずですが、試験に特化した勉強の前に、基本を学ぶことが重要です。Ruby』を熟読しました。基本を習得した上で、試験勉強に進みましょう。(以下『教本』)を徹底的に読み込み、巻末の演習問題も完全に理解し全問正解するまで繰り返し挑戦しました。公式資格教科書だけあって、巻末の演習問題は実際の試験に近いと感じました。同内容の問題でも、設問中のパラメータと正解選択肢の組合せが、『教本』記載のものと異なっていたものもあったと記憶しており、当然のことですが、解答丸暗記では合格できません。設問と解法をしっかりと理解してください。基本を学ぶフェーズでは、手を動かし慣れることを優先し、用語の定義が曖昧のままだったりすることもあるかと思います。試験では、用語の定義を明瞭に認識し、記憶に定着させることが重要です。1つでもありますよね。試験の中心は組み込みクラスで、『教本』第5章の内容になります。クラスのメソッドとお友達になりましょう。クラス、それぞれでの機能、押さえておいてください。誰と誰が仲良しなのか、帰る家によって態度がガラリと変わるのは誰か、把握が大事ですね。非破壊的メソッドメソッドが破壊的か非破壊的かも大事なポイントです。多くの破壊的メソッドは、同名同機能の非破壊的メソッド名末尾に「!」をつけたものとなっていますが、中には「!」なしの破壊的メソッドもあります。メソッドで出力内容が問われる時は、どのオブジェクト(メソッドが働きかけたオブジェクトを代入した変数か、メソッドが働きかけたオブジェクトそのものか)が出力対象かによって、またタイミング(メソッドがオブジェクトに働きかけている瞬間か否か)によっても、出力結果が変わってくるので注意しましょう。ここでちょっとしたクイズをどうぞ。?演算子(メソッドですよ!)「+」は、「.+()」というメソッドのシンタックスシュガーです。あり、「.+()」そしてそのシンタックスシュガー「+」は数値クラスのインスタンスメソッドなんです。理解がより深まるでしょう。組合せによって、使えたり使えなかったり、挙動が異なったりもするので、整理しておくとよいですね。レシーバが文字列の時、引数は数値は可だが文字列は不可。レシーバが数値の時、引数は数値は可だが文字列は不可。レシーバが配列で、引数が文字列の時。配列の要素の結合(文字列化)で、引数の文字列がセパレータとなる。レシーバが配列で、引数が数値の時。基礎知識(例:偽となる値は何か?)、マジックコメント、ヒアドキュメント、%記法、正規表現などが、各1~2問ながら、頻出のようです。例外処理、ライブラリまで幅広く出題されますが、中心となるのははオブジェクト指向です。『教本』第4章が詳説していますので、完全理解まで何周でも読み込みましょう。いくつかサンプルコードがあるので、それを基に、自分でも多数のバリエーションを作り、手を動かして理解すると良いと思います。違いはポイントですね。?」的な、分かりそうで分からないでも分かった気になっていることが、ちゃんと分かるようになります。特異クラスとクラスメソッドやはり『教本』演習問題にサンプルコードがあります。1つが特異クラスですが、他のクラスメソッド作成方法も習得し、一方で特異クラスの他の用法も整理しておきましょう。用語の定義の正確な理解と、具体的な用例の知見が、ポイントとなるところです。「特異クラスとは、特異メソッドを定義するクラスです。(中略)特異メソッドとは、特異クラスで定義されたメソッドです」(以上、若干恣意的な抽出引用を大意要約)、なんて困った参考書もあるようですが笑。メソッドもお忘れなく。self言わずと知れた自分自身ですが、どこで使われるかによって示すオブジェクトが変わってきます。クラスそのものだったり、インスタンスだったり。盲点となる方、多いのではないでしょうか。特徴と用例、要確認ですね。オブジェクト指向以外では、以下の領域が頻出のようです。lambdaふだん使っていなければ、シンプルなサンプルを丸暗記してしまうのが、「ブロックのオブジェクト化」という概念に慣れるのに良いと思います。2つの記法の相違点など、基本的な事項をきちんと押さえていることが問われます。正規表現シルバーに引き続きゴールドでも出題範囲で、若干複雑になります。皆さん大好きなのは承知していますが、取りこぼしのないように。これらについては基本知識を問う直截的でシンプルな内容にとどまるようです。各1~2問、頻出の模様です。ライブラリ際限ない分野ですので、『教本』に掲載のもの、特に演習問題で取り上げられている内容を中心に学習するのが良いと思います。以上と、資格試験としては高めに設定されています。本記事中の項目は特に重要と思いますので完璧にマスターして着実に得点し、本記事では触れなかった分野でも『教本』特に演習問題にある領域を押さえ、それでも何問か出くわすだろう未知の問題に余裕の対応ができれば、合格は見えてきます。業務でのコーディングにおいて、頻繁に使いながらも理解が曖昧だったことがクリアになり、体系的にも整理されたことです。オブジェクト指向の理解が一段と深まったのも有意義だったと感じます。リテラルから例外処理まであらゆるものがオブジェクトであり、例えば先述のように「+」や「*」のような演算子も数値クラスや文字列クラスのメソッドで、コーディング中も意識がオブジェクト呪縛から逃れられません。ある所以、「徹底したオブジェクト指向」を改めて実感したと共に、オブジェクト指向への愛も深まりました。業務では見たこともなく、今後もおそらく使わないだろう項目が出題されることも確かです。これらに関しては、「試験だからこそ、自分の業務では触れる機会のない領域も網羅的に学べた」と捉えています。いつかそれらの機能が必要になった時、少なくともそれらの機能が存在していることが記憶の片隅にでもあれば、試験で勉強したことが役に立ったと言えるでしょう。試験に合格することが社内外の評価に繋がったり仕事を得る上で役に立つこともあるのは勿論ですが、何より自分のために、末永く役に立つベース知識が培われたことが嬉しいですね。!Avintonは仲間を募集しています!Avintonはエンジニアを積極採用しています。文理・経験問わず、これまで様々なバックグラウンドを持った社員を採用してきました。現在いい勢いで成長しているAvinton。社員の数もどんどん増加しています。