OSS-DB SIlverを片付けるためにやったこと

OSS-DBのSilverを片付けてきた。

いちおう,どういう勉強をしたかを簡単にまとめておくことにする。

ここで書く内容のエッセンス

ひねった問題が多いので以下のように割り切って対策をしたということである。

  • 対策は全体→部分を徹底。最初から細かくやると,物量に対して心が折れるしインプットの効率も悪い。
  • 基本知識は「完璧に」する。微妙な選択肢は無限に作れるので,完璧にしておかないと迷ってふらふらと変な選択肢を選ぶことになる。
  • 既存の教材の演習問題は「確認のための問題演習」には向いているものの,「初学者のインプットのための問題演習」には向いていないものが多いので,インプットには使わない。
  • 「完璧」にして試験を受けにいくのはコスパが悪すぎ。どこかで一回割り切って試験を受けに行く。

この結論へ向かう過程と,自分はこれをどういう具体論で実践したかということを以下は細かく書いたものである。(ので長いの嫌な人はここで読むのを止めても良い)。

前提条件(自分の既にある経験)

自分は午後でSQLDBMSを回避してのDBスペシャリスト(すなわち傾向変化前)は持っている。すなわち,データベース一般の基本知識・SQLのうち簡単なSELECTがらみの部分の勉強はスキップできるという前提である。

スキップした部分については,以下とは違う勉強法が最適な場合があると思っている(特に正規化とSQL)。

また,暗記が嫌いという個人の特質があることも強調しておく。苦痛耐性高い人とか暗記好きな人はもっと楽ができるはず。

勉強法を確立するまで

試験範囲があいまい

例えば,コマンドはどのコマンドまで問われるのか,オプションはどの粒度で問われるのか?シラバスからはまったく読み取れない部分がかなりある。そして,そのせいか複数教材間で扱う粒度が割れている。

体験記は全くあてにならない

体験記を検索すると,楽勝というものがぞろぞろ出てくる。

体験記を読んだ感じだと,Ping-tの問題を叩き込んでいけば,まあぼちぼち3日でなんとかなるだろうという読み。ところがこれが大外れ。「こなしきれれば」世間に書いてることは正しいのだが,自分のスペックではこなしきれないのである。量が多く,選択肢は細かいので読んで疲れてくる。

努力とか時間を積めばいいんだろうけど,DB持ちがこの資格をとれることによるうれしさはほぼゼロである。なので,やる気がまったくでてこないし,ゆえに頭に全く入らない。

ということで,以下の解決策をひねり出す。

こんな感じで勉強した

インプット作業

範囲を適度に分割して以下を繰り返していく。

  1. ざっと緑本を読んで概略を理解する
  2. 緑本の目次を頭に叩き込む(白紙の紙から再現する訓練を繰り返す。)
  3. 緑本の章末を解いて問われることの粒度を把握する
  4. 緑本の説明を箇条書きの羅列でほぼ完全に再現する(白紙の紙から再現する訓練を繰り返す。)
  5. 4が程良くできるようになってきたころに,再現内容とシラバスをつきあわせる。シラバスのトピックや重要単語を読んで教科書の説明を思い出す。(私は,重要度も暗記した。どのトピックをどこまで踏み込んでやるかを脳内で考えやすくたるため。)

さらに,合間に以下をする。

  • 一部について,演習を増強して確認しておきたいな,と思ったら部分的に黒本やping-tを使って軽く演習。
  • 完璧に仕上げたいとか細かく調べたいと思った部分は公式ドキュメントを読む

なお,目次再現は,紙から章のタイトルを複数章分まとめて再現する訓練(範囲の全体像の把握)と1章単位での再現(内容の再現)の2通りをこなしている。

最後の確認

試験前日から当日にかけてping-tのSQL以外の部分のいくつかのセクションを流した。基本知識が入った状態だと,ping-tは解説読み込みも含めて相当に高速で流せた。ただ,この時点でも正答率は微妙だったが。

Ping-tで最終確認したことが試験でもいくつか使えたので助かった。自分にとって,ping-tは初期学習用としては微妙だったが,仕上げの確認用としては相当にいい感じだったということである。

また,試験前日には緑本と黒本の模試を解いた。正答率は,5割程度という状態だった。間違えたとこは,ふわっと解説読んだだけで解き直しはしていない。そんな微妙な状態に本番につっこんだわけだが。。。。

対策の基本方針

  1. さっさと全体をつかむ。最終的に細かいとこを仕上げないといけないとしても,最初からそれをやるのは非効率。
  2. 捨てる範囲を作らない。
  3. 基本は完璧に
  4. 完璧にするのはコスパが悪すぎる。ある程度仕上がったら模試だと思って受けに行く。

1. さっさと全体をつかむ

まず,ping-tとか緑本の章末の解説を読んでると,

  • 覚えることが無限にありそうで萎える
  • 解説読むのに時間がかかりすぎる

といった感じで心が折れる。問題に細かい違いを問う問題や複数選択の問題が多いからである。

だったら,もう少し軽い確認問題で基礎知識を叩き込めないか?が次に考えることである。緑の章末問題は(試験難易度からすると)軽いが,初学のときはこれでも折れる。

そこで書店で黒本を見てみると,黒本はわりかし一問がさくっと解けるように作られているようにみえる。しかし,実際に使ってみると問題のチョイスに相当に癖を感じる。

既存の問題がないなら,自分で何か方法を考えるしかない。緑本の章末やPing-tの難易度も踏まえると,緑の本文は(ごく少数の一部のセクションを除いて)ほぼ全部重要事項で完全暗記がマストという判断はある。そして,そのレベルに到達させるには読み込みの繰り返しや一問一答形式は適切な訓練ではない。結局は,白紙再現以外の訓練以外ないという判断になる(注 : あくまで自分の暗記力の場合です)。

白紙再現のときも,細かい部分の再現をいきなりやるとしんどい。よって,まず目次を再現できるようにしてから徐々に粒度を細かくしていくという勉強法を取るという結論になる。

2.捨てる範囲を作らない。

「・・の分野は簡単」「内容の分量と難易度とテキストの重要度から判断すると・・の部分は楽そうだから重点的にやっていく」などとしたくなる。「・・の分野は簡単」と書かれた体験記もある。しかし,この戦略は危険である。緑・黒・Ping-tの問題を見ていると,どの部分もシンプルな問題もひねった問題も多数考えられる,という感想しかないからである。

仮にひねられる問題が一定で,それが事前にわかっていれば,そこを避けることもできる。しかし,CBTなので,ひねる分野もランダムに選ばれている可能性が高い。すなわち,どこの分野からシンプルな問題が出題されて,どこの分野がひねった問題かは予測不可能ということである。ゆえに,完璧で仕上げた分野ですから1点も取れないということは普通にありえる。

ただ,敵は鬼や悪魔ではないとも仮定したい。全問ひねるということはさすがにない。

以上をふまえると,全分野のうちどこからくるかわからない簡単な問題で65%をかき集めるというという作戦しかない。そのためには捨てる範囲は作れない。

なお,合格基準が65%より上にあったら(いちおう公式には非公開)あきらめるか,勉強の精度をあげてもう一回やるしかないと割り切った。自分には,この試験で短期間で7割は無理。

3. 基本は完璧に

勉強していると,正答の選択肢は基本だが,誤答の消去は基本ではできないというパターンがそれなりにある。逆に,正答の選択肢はマニアックだが誤答の消去は基本というのもある。すなわち,1問の中に違う難易度の選択肢が混在しているものの,問題の答えを出すだけなら基本知識という問題があるということである。

こういう問題は,基本部分があいまいだとふらっと誤答を選んでしまうことがある。よって,基本は完璧にしておかなければならない。

しかし,問題ベースの教材で基本を完璧にしようとすると,対策に時間がかかりすぎる。たとえば,選択問題があったとき,

  • 選択肢のうち3つが基本(その解説は問題そのものにはなっていない周辺分野の基本事項も含む)
  • 選択肢の2つがひねってある(対応する解説も重箱)

という場合,そこから基本のみを抽出して学習するのはコスパが悪い。基本の識別が初学者には無理だし疲れる。問題を解くために,基本でない選択肢を読むだけても疲れる。

こう考えると,問題を中心としたインプットは効率が悪いという結論に行き着く。

4. ある程度の仕上がりで本番を1回受けに行く

緑・黒・Ping-tで,扱う粒度が微妙に割れているとこがある。結局,どれが正しいのかは本番を受けてみるまでわからない。この状態で何かの教材を選択して完璧にする,という対策を取るのはコスパが悪い。ゆえに,一度,情報収集・兼模試だと思ってある程度の仕上がりで本番を受けに行くのが良いと思う。

ただ,知識白紙状態では試験会場での情報収集は難しい。知識としては固まったがひねった問題は対処しきれないな,と感じた時点で受けると良いと思う。要は,ひねった問題対策に追加的なコストをかける前に,どういう方向でどういうコストをかけるれば良いか?ということを決定するための情報を収集しようということである。

自分は,あまりに仕上がりきらないので,こういうつもりで試験を受けに行ったらまあ受かったから良かったけど。

最後に

この試験,Lv2の試験で受かったからといって高く評価されるものでもない。そのため,後から使わないし何の役にも立たない無駄知識を詰め込むのに時間をかけたくない。これをどう回避していくかがポイントである。

なお,ここには書かなかったけど,本当の白紙からやる場合はもうワンクッション挟んだ対策が必要になると思う。(いくつか思いつく候補はあるが確信はない)

とにかく,この試験の教材は本当の意味での初学の人にやさしくできていない。なので,「全体→部分」を徹底しないとすぐに心が折れる

実機を触るべきか?

実機を推奨していた人もいたし,公式も実機での勉強を推奨している感がある。しかし,これは試験対策としては費用対効果が合わないと思っている。

書物から実態がイメージできない人には実機の実習はそれなりに意味があるのだと思う。例えば,Linuxでコマンドを全く使ったことがないレベルの人とか,ファイルとかディレクトリがイメージできないとか,コマンドラインをイメージできない人などは実機を触ったほうが良いとは思わないでもない。

自分は実機は触ってないといいつつ,Accessは軽く触ったことはあるし,基本・応用の午後やDBの午後の事例解析問題は何問かは解いているので(少なくとも基本5回・応用5回・DB3回分ぐらいは解いている。)データベースやテーブルそのものをイメージできないということもない。そういう意味では全くのペーパーではないため,本当に実機無用とは確信を持って言い切れない。

ただ実機を触るとしても,実機触れば大丈夫だけはないと思う。この試験で問われる細かいことが,実機を軽く触っただけで覚えれらるはないのではないかと思う。