はじめに
私はRubyを全くやった事がなかったのですが、転職後の会社がRuby on Rails推しという事で
まずはRubyの基礎を覚える為に受講を決意しました。(というか周りはみんな持っていると言われた事もあり・・)
私のプログラミング経験値としてはC系、Java、PHPを5年くらいはやりました。
勉強期間
- 4/7(木)〜4/24(日) (約15日)
- 平日は通勤時間(往復2時間)と土日はパソコンを触りながらの学習(土日は1日3時間くらい?)
勉強方法について
-
以下参考書での勉強
- Ruby技術者認定試験合格教本 Silver/Gold対応 http://ecx.images-amazon.com/images/I/51TGSmvhRsL._SX347_BO1,204,203,200_.jpg
- 問題と答えが合っていないものがあったりもしましたが、巻末に記載されている問題でいくつか同じような問題がでたので良かったです!
-
以下公式の問題集を繰り返し実施し理解を深める
-
以下サイトでRuby技術者認定試験(Silver)対策コース のドリルを100%まで実施
- Rubyがミニツク http://www.minituku.net/?locale=ja
- 同じような問題がでたかあんまり覚えていませんが、通勤中にもできるので繰り返し実施してました。
-
Qiitaで勉強状況をメモ
- これは自身の勉強内容を反芻する意味で非常に効果的だったと思います。irb または rbファイルを作成し自分で時々プログラムを実行し確認もする事で理解を深めました。
-
Rubyのリファレンス確認
- http://docs.ruby-lang.org/ja/2.1.0/library/_builtin.html
- 見た事のないメソッドが出てきてテンパらないようにチェック。全部を読むのは現実的ではなかったので、Enumerable, String, Array, Hash, File, IO, Dir を見る感じでした。
受講前について
- 試験会場には早めに到着
- 付け焼き刃にリファレンスを見直してメソッドを暗記
- 違う名前だけど同じ意味のメソッド名の暗記確認
試験内容について
傾向
- やさしいと思ったのは○○に該当する答えを すべて 選んでください。という問題はほとんど出ませんでした。複数の場合は2つ選んでください。といった選ぶ数が解るのでほとんどが消去法でいけます。
- 同じような動作をするメソッド系の問題がでました。(map/collectのような)
- 問題集とほぼ同じような問題が多数でました。20問くらいは似たような問題でした。
- 破壊的とそうでないメソッドを考える問題がでました。
- ブロックに渡すパラメータが複数あるものについて、パラメータを逆に覚えていないかをひっかけるような問題がでました。
- メソッドにパラメータを指定した場合と指定しない場合と空文字を入れた場合を考えさせる問題がでました。
試験内容例
1.rb
#エルスイフはどれ? Ruby以外を無駄に知っていると混乱
else if # --> よく目にするパターン
elseif # --> php
elsif
elif # --> python
2.rb
# xxxxx に何をいれるべきか?
a = ["1","2","3"]
b = ["5"]
a.xxxxx(b)
p a # --> ["1", "2", "3", "5"]
3.rb
# 以下で ["a", "b", "c"] になるものは?
p "a\tb\tc".split()
p "a b c".split()
p "a b c".split(//)
p "a\tb\tc".split(/ /)
4.rb
# 以下の結果は?
a = 1,2,3
p a.to_a
5.rb
#each と each_lineが同じ意味だよね?を解くようなひっかけ問題
a = "a\nb"
a.each do | x |
p x
end
#実行エラーになる。というのが正解
# each_line であれば
#"a\n"
#"b"
# となる
6.rb
# 値が左、indexが右
[5, 10, 15].each_with_index do |n, idx|
p [n, idx]
end
# 左が戻り値、右が値
p [2, 3, 4, 5].inject {|result, item| result + item }
7.rb
#どのように表示されるか? --> /ruby
p File.join("", "ruby")
8.rb
#24時間後を表示(addとかいうメソッドはない)
t = Time.now
p t
t+=60*60*24
p t
試験結果
5問間違えてしまいましたが、90点という合格ラインでした。
時間配分としては見直しを一周しても30分は余りました。
今後
Goldを目指したいですが、Railsの勉強も並行してやろうと思います!