ばぁど・うぉっちんぐ

セキュリティに強いWeb屋。自由と春を求めて羽ばたく渡り鳥。

このブログはGoogle Analyticsを利用しています

4年目プログラマの Ruby Association Silver 合格体験記

はじめに

2017年2月にRuby Silver 合格しました。

結果は84 / 100 と、まぁ合格だよね、という感じの合格点。 でも、合格は、合格!!!

他の記事と同じようなことしか書けず、何番煎じかわかりませんが・・・ メモ程度に残しておきます。

なんで受けたの?

一人のプログラマとして、なんでもいいから一つの言語としっかり向き合ってみたかったからです。

今年でプログラマ歴4年目となるのですが、あまり言語と深く接するということをしてこなかったので、諸々のタイミングを踏まえて挑戦してみました。

そもそも、Ruby SIlver は、2年前くらいに一度挑戦して落ちてましたし・・・(苦い思い出

勉強方法

公式教科書

gihyo.jp

私は古いのしか持っていなかったのですが、特に問題ありませんでした。

試験範囲の確認するのにはもってこい。

SIlverは7割くらい、ArrayやHashのメソッドのお話です。

ただ、サンプルコードには間違っている箇所もあるので注意してください。

章末問題も100点(うっかりミスは許容)取れるまで、ひたすら解きました。

なんでその回答になるのかの、理由をひねり出せれば問題ない。

パーフェクト Ruby

gihyo.jp

Rubyistであれば、持っていて損はない一冊。 公式の教科書だけでは足りない深い部分の理解をしたいときはこっちで調べました。

ミニツク

ミニツク - Rubyのe-ラーニング研修システム

ありがたいweb サービスでございます。

これのRuby silver対策部分をひたすら行いました。

問題集

http://www.ruby.or.jp/assets/images/ja/certification/examination/exam_prep_jp.pdf

こちらも100点取れるまでひたすらやりました。

他の方の受験記

Google先生に、「Ruby Silver 合格」聞いてみて出てくるブログ記事を読み漁る作業。

勉強時間

勉強を始めたのは試験日の、3週間前くらいからです。

朝(出社前)、会社の昼休みを利用して1日、2時間は勉強時間を確保しました。

普段からRubyは実務で触っているので、基本的なところは大丈夫な自信はありました。

試験に出てくるArrayやHashなどは普段使わないメソッドがあるので・・・

試験前の1週間はできるだけ定時に帰ることを心がけて、夜の勉強時間も1時間ほど確保しました。

個人的に試験のここがポイント!

破壊的、非破壊的

! がなくても破壊的なメソッドはいくつかあるので注意です。 arrayのarray#insertとか?

ref.xaio.jp

同じ動きをするメソッド

別名なのに同じ動きをするメソッドがあります。 arrayのslice[]が同じとかね

ref.xaio.jp

ref.xaio.jp

sliceメソッドは、メソッドの別名です。

もう、ややこしい。 Ruby に別名なのに同じ動きをするメソッドがある理由は下記のルビまの記事などを読んでもらえればいいんですかね。

Rubyist Magazine - map と collect、reduce と inject ―― 名前の違いに見る発想の違い

ファイルの内容を読み込むメソッドの挙動

読み込む対象 メソッド名 動作 EOF
IO read IOから内容を読み込む。長さが指定されていれば、その長さぶん読み込む。 長さが指定されていなければ空文字。指定されていればnil
IO.foreach 各行をブロックに渡して実行 nil
each_lines 各行をブロックに渡して実行 nil
readlines ファイルを全て読み込んで、その配列を返却する。 空配列
gets 一行ずつ読み込む nil
readline 一行ずつ読み込む EOFError
バイト each_byte IOオブジェクトから1バイトずつ取得する 何もしない
getbyte 一バイトずつ読み込む nil
readbyte 一バイトずつ読み込む EOFError
文字 each_char IOオブジェクトから1文字ずつ取得する 何もしない
getc 一文字ずつ読み込む nil
readchar 一文字ずつ読み込む EOFError

この微妙な差異がね・・・ なんとも。。。

get××系がnilを返却。

read××系がEOFError系を返却。

と覚えておけば良さそう・・・

クラス別のdeleteメソッド

delete()メソッドのクラス別の挙動

クラス 引数 返値 破壊的 別名
String 文字 元の文字列  非破壊的 なし
Array 削除した値  破壊的 なし
Hash key値 削除したkeyのvalue  破壊的 なし
File ファイルパス 1 or エラー  破壊的 unlink

こんなんばっかり・・・

他にもあったので、似通った部分は自分なりにまとめるのはオススメでございます。

勉強するために工夫したこと

復習できるように!

Ruby Goldの取得も視野に入れていたため、いつでも振り返られるようにまとめることを意識しました。 特にノートはオススメです。 ノートにまとめたり、ArrayやHashのメソッド一覧を作ってみたりしました。

情報交換

ちょうど近くにRuby SIlverを同じタイミングで受けた人がいたので情報交換とかしました。 まじ、GJ!!

まとめ

Ruby Silver受験して、普段業務では使わないようなメソッドに対する知識も増やすことができました。

業務で使うメソッドやRuby の機能って限られたものになりがちなので、知見を増やすという面では資格はもってこいですね。

まぁ、あと業務経験○年です、プラス資格持ってますならば、定量的に測れるスキルになってくるのかなーと思っております。