tech
6人のインタビューで分かったメリット、デメリット──エンジニアにとっての「資格試験」を考える(まとめ編)
サイボウズ・ラボの西尾 泰和さんが「エンジニアの学び方」について探求していく連載の第15回(毎週火曜日に掲載、火曜日がお休みの場合は翌日、これまでの連載一覧)。
「資格試験」テーマの最終回です。
本連載は、「WEB+DB PRESS Vol.80」(2014年4月24日発売)に執筆した「エンジニアの学び方──効率的に知識を得て,成果に結び付ける」の続編です。(編集部)
資格試験について匿名3人、実名3人の6人の方のお話を聞いてきました。いかがだったでしょうか。今回は、6人分の意見をまとめて振り返ってみます。
インタビューをしていく中で、知識には大まかに分けて3つのレベルがあることが見えてきました。
- 趣味の開発で身につく知識
- 業務に直接必要な知識
- 業務に直結しない基礎知識
の3つです。
趣味で開発する上では「動けば良い」になりがちで、必要とされる知識も限られたものになります。特にWeb業界では、ハードルが低いことが原因か、知識レベルの差が激しいようです。なので、採用判断の際には「学ぶスタンス」があるかどうかを見極める目的で、資格を持っているかどうかでフィルタリングすることが有益だ、というのが第4回でのCさんの意見でした。
業務として開発しお金をもらうためには「動けば良い」ではダメです。保守性や開発プロセス、品質保証など、趣味の開発では必要にならない知識が必要になります。第5回の渋川さんはこのような知識を「趣味のゲーム開発では出てこないけど、お給料をもらうには大事なところ」と表現していました。
仕事をする上で必要な知識は、会社によっては研修、訓練を通じて学ぶ機会を提供してくれるかもしれません。しかし会社での教育研修や、実務を通した訓練は「すぐ実践できる知識」に偏りがちです。
アルゴリズムやデータ構造といった基礎知識は、すぐに業務で実践できるというたぐいの知識ではありません。しかし、基礎知識の有無が、マニュアルにない問題が起きたときの応用力、問題解決力に効いてきます。実務的なノウハウだけでなく、基礎的な知識とセットで、車の両輪として教えるのが良いのではないでしょうか。これが第1回のAさんの、自社で実際に教育してきた経験から出た意見でした。
「基礎知識は陳腐化しにくい知識であり、資格試験でそれを学ぶことができる」という意見は複数ありました。しかし一方で、第2回でおおつねさんが指摘されたように、資格試験が現状の手法の変化についてきておらず陳腐化しているケースがあるのも事実です。
陳腐化するかどうかは未来に属することなので、誰も正解を知りません。C言語が生まれて40年、Javaが生まれて20年しか経っていません。今後20年~40年経ったときにプログラミングの環境がどう変化していて、何が陳腐化しているかは誰にも分かりません。プログラミングの自動化が進んでプログラマという職が消滅する、という極論までありますからね。
実際、かつてプログラミングとは機械語を書くことでした。その後、コンパイラという「高級言語での記述を元に機械語でのプログラミングを自動化するプログラム」が生まれた際に何が起こったでしょう? 初期には「自動的に作られたコードは性能が悪くて使いものにならない」と言われていました。しかしコンパイラの進化とともに、普通の人間が直接機械語でプログラムを書くよりコンパイラを使った方が費用対効果が良い状況が訪れました。これによって機械語を書くプログラマのマーケットは縮小しました。
ごく一部の、コンパイラを超える高いスキルを持った人は、縮小したマーケットに残って高い残存者利益を得ています。必要なスキルが高いため参入障壁も高く、競争の少ない安泰なマーケットです。その他大部分の人は、例えばC言語を勉強し直して「コンパイラを使うことでより生産性高くプログラムを作る」という戦略を取りました。マーケットへの参入障壁は下がり、競争は激しくなりましたが、機械語の知識はアドバンテージにつながりました。留まるスキルもなく、新しい市場に移動するために学ぶこともしなかった人はきっと苦しい状態に陥ったことでしょう。今、何か特殊なことが起ころうとしているわけではなく、技術発展の歴史の上では何度も繰り返されてきたことです。
特定の環境で「どうやってやるか」の「how」を掘り下げていく学びは、その環境への適合度を高めますが、環境が変わると知識の有用性が失われます。なので「留まる」戦略向きですね。逆に「なぜそうなるのか」の「why」を繰り返して抽象度を上げていく学びは、別の環境に持ちこしやすい「抽象的な知識」を得るので、「移動する」戦略を取る場合に長期的に有利です。
未来が分からないことをさておくとしても、現在にも分からないことがあります。これから資格試験を受けようとしている人は、自分の知識でその資格試験が「現時点で陳腐化しているかどうか」を判断することができません。それを知るためには、現時点で十分な知識を持って仕事をして成果を出している人によるフィードバックが必要です。IPAの試験に関しては知識範囲が網羅的なこと、ITスキル標準によって明確に言語化されていることなどを評価する声があります。第5回の渋川さんや第4回のBさんです。しかし、現場によって開発のやり方が異なり、資格の有用性に関する評価も現場によって異なる可能性もあります。第2回でおおつねさんが指摘されたとおりです。
知識範囲が広くて網羅的であることは有益だという意見のほかに、学ぶべき分量が多くて大変だという意見もあります。第1回のAさんは「たとえ丸暗記になっても、用語やキーワードに一度触れることは有益」と語っていました。基礎知識は業務に直結しないので、実際に業務を行う際には追加で学ぶことが必要になります。しかし、一度目を通しておくことで「知識の地図」ができ、追加の学習の効率が上がるわけです。
試験範囲は得てして興味がない分野を含んでいます。第3回のはせがわさんのように「試験範囲が自分の興味範囲とミスマッチだから受けない」という意見もありますが、第5回の渋川さんのように「自分の興味がなかった分野まで網羅的に学べる、使わない分野も『面白いな』と思う」という意見もあります。
これは小崎さんが言われていた「点は後からつながることがあるから、一度目を通すことに意味がある」(カーネルハッカー・小崎資広(5))という考え方とも近いです。現時点では役に立たなそうに見える「つながらない点」であっても「将来つながるかもしれない」と考えて投資するわけです。
こうやって「将来役に立つ可能性」に対して時間を投資するわけですが、その投資額ははせがわさんの言葉を借りれば「他のものを犠牲にしない程度」と小さく留める意見が多いです。 その投資額について第3回のはせがわさんは「他のものを犠牲にしない程度」と小さく留める意見でした。これは第5回の渋川さんも同意見です。たとえ点がつながらくても気にならない程度にすることが大事なようです。基礎的な勉強はすぐに成果に直結しないですから、あまりに大きな投資をすると心が折れてしまってさらに勉強していこうというやる気を奪ってしまうのかもしれませんね。
基本情報処理技術者試験に関しては、特に他分野から来た人に基礎を固める目的でオススメする意見がありました。資格試験で勉強することは3つのメリットがあります。
- 習熟度が定量的に評価されフィードバックされる。
- アウトプットに明確な締め切りがある。
- 学ぶべき範囲が明確になっている。
の3つです。特に、締め切りが明確になっていることは重要ですね。小崎さんのお話でも「締め切りがないと、到達しないすごく遠いゴールに向かって走ってしまう」(カーネルハッカー・小崎資広(2))という指摘がありました。「カーネルハッカー・小崎資広(7)」でも継続することを目指すのではなく、アウトプットのマイルストーンが重要という話が出ました。
さて、みなさんの意見を踏まえて、まずは「自分が何を知らないか」に気づくために、過去問を解いてみると良いのではないかと考えました。易しい順に、ITパスポート、基本情報処理技術者試験、応用情報処理技術者試験、なので、まずはITパスポートを解いてみることにします。ITパスポートは「ITを利活用する社会人に求められる基礎知識」とのことで、エンジニアでなくても社会人なら解けて当たり前のレベルです。だから勉強せずに解いてもそれなりに点数が取れるはずです。
筆者が実際に解いてみたところ、やはり十分合格できる正解率(60%以上)にはなりました。そして、やはりいろいろと「自分が知らないこと」が明らかになりました。例えば「選択肢の中でどれが不正アクセスかだって? そういえば不正アクセス防止法で不正アクセスがどう定義されてるか、調べたことなかったな」「選択肢の3文字略語が全部分からない……CRM、ERP、SCM、SFA……あ、ERPはなんかリソース管理をするプログラムだっけ?」「MTTRとMTBFって故障のあれでしょ、えっと、どっちがどっちだっけな……」などなど。
また、解いてみて初めて知ったのですが、ストラテジ系、マネジメント系、テクノロジ系の3分野に分かれていて、IT系の資格試験として筆者がイメージしていたものよりかなり広い範囲を扱っていました。また、4択問題だったのでさくっと解けるかと思っていましたが、不慣れな分野で問題文を何度も読み返したり、計算問題があったりして、76分かかってしまいました。なので、一度に解くのが負担であれば、昼休みに30分ずつ解くとかが良いかもしれません。計算問題は暗算では辛いレベルなので、通勤時に立って解くのは難しいと思います。計算問題は飛ばして解いておいて、計算問題だけ机でじっくり解くのでも良いかもしれませんね。
さて、次は基本情報処理技術者試験午前の過去問を解いてみましょう。こちらは技術者向けの試験になり、より技術的な設問が増えます。テクノロジ系50問、マネジメント系10問、ストラテジ系20問でした。基本情報の難易度は意見が分かれます。「情報系の仕事してる人なら準備しなくても合格して当たり前、受からないと恥ずかしい」という意見もあれば「仕事ができてて『自分はできる』と思っている人が無勉強で受けると落ちる。基礎をしっかり確認するのに良い」という意見もあります。なのでこちらの過去問を解いてみて、自分が受かるのか受からないのか確認してみると良いでしょう。
これも実際に解いてみました。解きながら「見慣れない問題を見るとぎょっとするが、落ち着いて考えたら当たり前にこの選択肢だな、だって他のは全部ありえないもの」などと考えていました。知っている知識を総動員して、場合によっては消去法や「この選択肢が正しかったらこっちも正しくなって答えが2つになっちゃうから違うだろ」などの攻め方もしていて、応用力を駆使した感があります。
それでも解けない問題もいくつかあり、それは単語の定義を知らないことが主な原因でした。「以下の選択肢の中からSCMを説明したものを述べよ」と言われて、脳内に浮かぶSCMは「ソフトウェア構成管理」だったのですが、選択肢にそれらしきものは全然なく、「セールス?? カスタマー?? マネジメント??」などと考えて回答したものの正解は「サプライチェーンマネジメント」だったりとか。
紙面の都合上、筆者が間違えた問題をすべては紹介できませんが、過去問を解くことでこのように「自分が何を知らないか」「自分の知識や関心が何に偏っているか」が分かって面白いです。応用情報処理技術者試験の難易度は「無勉強では受からない」と言われているので、これも過去問を解いてみて、どこがボトルネックで落ちるか確認してみたいと思っています。
まずは過去問を解いてみましょう。多くても3時間程度の投資で、自分の知識の偏りを観察できます。実際に受験するのかどうかは、その後決めても良いのです。まずは自分の知らないこと、盲点に気づくことが、学びのための第一歩です。
次回は、「U理論──過去や偏見にとらわれず、本当に必要な「変化」を生み出す技術」の翻訳者である中土井 僚さんとの対談をお送りします。(つづく)
【参考リンク】
「これを知りたい!」や「これはどう思うか?」などのご質問、ご相談を受け付けています。筆者、または担当編集の風穴まで、お気軽にお寄せください。(編集部)
謝辞:
◎Web+DB Press編集部(技術評論社)のご厚意により、本連載のタイトルを「続・エンジニアの学び方」とさせていただきました。ありがとうございました。
SNSシェア