2.1も難しかった。
でもやはりネットの海は広大です。ほかに参考になる情報はありますが、
この情報も誰か(自分)のためになるかもと思い残しておきます。
すでに1.8版の試験をもっていてバージョンアップに伴い再受験しました。
基本的には1.8の範囲を押さえつつ、2.1の範囲で点を稼ぐことができ、
90点くらいで合格できました。
とは言っても、全然楽勝とは思えなかったですが。
###記憶にある限り2.1の範囲は以下
受験時には8問くらいが2.1の範囲だったと記憶している
- iのリテラル記法
- prepend(includeとの違い、優先順を押さえる)
- refinementsをusingする前、した後の動き(定義の仕方、スコープ)
- Fiberの定義、呼び出し、Fiberを定義した時の戻り値(resume、ジェネレータでそこが尽きた時のエラー:FiberError)
- Hashのキーワード引数(キーワードありの場合→変数に受け取ることができる、無しの場合)
- Enaumable#lazy
###個人的に難問題
- 可変長引数の展開のルールで*をつける場所と結果を選ぶ問題
- ancestorsが呼び出しのタイミングで結果が変わるようなことを問う問題
- ブロックの結合度(do〜end、{}の違い。ブロックとして渡す方法)
- 起動オプション(lが出題されたような)
- to_s,to_strとp,inspectの関連とか再定義とかに絡むところ
- rescueで引数省略でエラーが捕捉される、されないとかを問う問題
- all?とeachを組み合わせて正しい動きになるようにする問題(問題文が長くて全然理解できなかった)
###試験範囲に含まれている認識がなかったもの
- append_features,includedの動き
###既存の範囲
その他については公式教科書の内容がまだ通じました。1.8取得後に手放そうかと思ったけど手元に置いておいて正解でした。
- メソッド内での定数の扱い
- クラスを継承した場合のクラスメソッドの扱い
- module_functionをもつモジュールのincludeと呼び出し(selfが絡んでいた→いつでもselfは大事だ)
- attr_シリーズ
- Threadの中でのエラーとデバッグモードを絡めた話
- ヒアドキュメント
- protectedとprivateメソッドの可視性
- open-uriとopen
- DateTime、Dateの使い方
- Timeのインスタンスの計算結果
- strftimeの記法