Oracle Masterに見る資格試験の価値

昨年10〜12月頃に、「なんとなく面白そうだから」という理由で、Oracle MasterのBronze〜Goldまで一気に取得しましたが、今一すっきりせず、「何も理解できていないのではないか?」という気持ちでいっぱいでした。そこでOracle通の間で有名な「Exper Oracle Database Architecture」を読んだところ(まだ40%くらい)、頭の中のモヤモヤがスッキリして色々思うことがあるので、書いてみます。

Expert Oracle Database Architecture。Oracleのバイブル的な書籍です。凄く深くて広い。

Oracle Masterの価値

私はアプリ寄りなので、インフラ屋さんの仕事をしたことは無いですが、Oracle Masterはインフラ屋さんの間では非常に評価が高いようです。別の部署には、転職のためにOracle Master Platinaまで取得された方もいますし、Oracle専門の部隊では、はじめの数ヶ月でOracle Master Goldまで取得することが義務付けられています。

Oracle Master取得=価値が高い」というのは、アプリ屋の間でも半ば常識化していて、私がBronzeは5日ほど、Silverは週間ほどで取得して上司に報告したら、とても喜ばれていましたし、Goldを参考書一冊のみで一ヶ月強でいけました、と報告したら一気に株が上がったようです。

しかし、この試験に、それほど価値はあるのか、私は大いに疑問です。
例えば、Oracle Masterでは、「SQLは集合演算である」「SQLはRelational Modelをベースにしているが、中途半端に二次元の表ライクに歪められているので、非常にトリッキー」といった話は一切でてこないですし、「何故そのような仕組みなのか」「その仕組が存在することで、どのようなことが示唆されるか」った、現実世界の開発において、その知識がどのように活用されるのかも示されていません。
(Goldになると少しは現実世界に近い問題が出た気がしますが・・・)

資格試験とはそういうものなのかもしれませんが、機能や仕組みが、他と切り離されたぶつ切りの点のようなものとして示され、暗記を強要されます。ぶつ切りの点を暗記するのは、他の機能との関連や実際の挙動が示されないので、それ以上の理解が進まないし、忘れやすく、非常に効率が悪いです。こうなると、頭が悪くても短期の暗記力が強い人が優位に立ててしまいます。(例えば私とか・・・)

正直、未経験でRDBMSSQLの事がわからない人でも、暗記力が強い人が1〜2ヶ月で一気に取れる資格に「何の価値も無い」と言っても言い過ぎではないのでは。
(余談ですが、私はSilverに2週間、Goldに1ヶ月強かけましたが、無理して落ちるのも嫌なので、非常にのんびり勉強しており、資格試験取得のプロみたいなできる人なら両方合わせて2〜3週間くらいで行けるだろうな、と思います。その程度の試験です。)

本当に必要な知識

私は知識というのは「ぶつ切りの点」ではなく、「他の機能や仕組みとの横のつながりや、導入経緯、その機能、仕組みが示唆すること等も含めた面」を脳内で広げていくことだと考えています。また、知識を得る目的は「暗記マニアになること」ではなく、「現実に起こりうる状況下で、その知識を活用して問題を解決する手助けをするためである」というのが持論です。

Oracleの話で言えば、例えばLGWRがログを定期的にflushすることで得られるメリットは、「LGWRの仕組み」という点ではなくて、「Commitなどのトランザクション制御を含めた仕組み」にまで広げないと見えてこないはずです。
(もちろんそれだけではないでしょうが。)

他にもTransaction Isolation LevelがStatement Levelでどのように働くのか、Multi Version Concurrency ControlとUndo領域との関係なども、Oracleに閉じた話としても極めて大事ですが、他のRDBMSはどうなのか等にまで話を広げられると、「RDBMS」というカテゴリの話として、知識を広げられます。以上のように、「暗記特化で点ばかり重視する人」と、「知識を面で考えられる人」では、知識の幅、活用力で大きな差がでます。

また、「知識を面で考えること」が大事なのはプログラミングやソフトウェアアーキテクチャに関しても同様だと思います。APIや言語の機能のような「点」も大事ではあるのですが、RDBMS等のインフラ層の世界(個人的に最もクリティカルだと思います)、各種アーキテクチャパターンプロトコル、要件定義、テスティング等、様々な知識を縦と横に広げた「総合力」が必要なのではないでしょうか。
(総合力が無いと、非常に閉じた世界の、ひとりよがりなものしか作れないはずです。)

まとめ

長くなってしまいましたが、まとめると、資格試験はぶつ切りの点の知識を暗記させるという点で、それなりに役に立ちますが、それ以上のものではないです。知識と知識を繋がて、縦と横に広げたり、現実世界のコンテキストで活用するには、それなりに難しい本を読んで研究したり、実物を動かして経験を積むことが重要です。そして、そのような「現実に使える」知識を身につけるには、そう簡単なことではなく、一ヶ月や二ヶ月ではできず、年単位の勉強と考察(これ、極めて重要です)、経験が必要でしょう。

また、私の今の環境は恵まれており、調整担当の量産型SEではなく、高スキル者が評価されるので、もっと広く、深く、突き詰めていければ良いなぁと思っています。