ソフトウェア開発の世界で若い人から「何を勉強すればいいですか」と聞かれた時には、わりと情報処理技術者試験を薦めている。自分の意見の簡単なまとめ。
情報処理技術者試験で良いと思っているところ
情報処理技術者試験がおすすめの勉強手法であると思っているのは、だいたい以下のような理由だ。
- 受験コストがあまりかからない
- 試験費用が安い
- 学習コストが安い。安価な書籍が多数販売されているし、古書でも入手容易である。
- 国内ソフトウェア産業の状況に合わせてカスタマイズされている
- エンジニアの質という問題に対して、分析研究した結果として構成されている(はず)
- 比較的ベンダフリーである
なお「勉強をする」という点が重要であって、資格の取得はあまり重視していない。ただ、せっかく勉強したのだから達成度合いを測るためにも資格取得までいったほうがより良いだろうと思っている(持っておいて悪いことはない)。
よくあるアンチ派の意見
こういう事を言うとよく反対意見として出るのが次のようなものである。
- 資格を取ったからといって、仕事ができるわけではない。資格の勉強はムダだ
- 内容が古い。最新のソフトウェア開発の問題には関係がない
- 資格は持っていないけれども同等のことはできる
情報処理技術者試験を資格制度だと考えると、たしかにその通りだという点もあるのだけれども、「学習の手段」として考えればちょっと見方も変わってくるのではないかと思っている。
- まず技術者として大切なのは「継続的な学習姿勢」だと考えている
- 「継続的な学習姿勢」の基礎を形作るために安価で活用できる手段の一つが情報処理技術者試験だと思っている
- ソフトウェア開発で学ぶべき事項は広範囲である。この試験制度は(深さは別にして)広くカバーしている
- もちろん流行の技術を中心に学んでいくということもひとつの選択肢だとは思うのだけれども、バランスというか偏りがあるような気がしてならない
- 技術やコードや製品を中心に学んでいってしまうと、トレンドの影響を大きく受けるのもリスクである
別に情報処理技術者試験だけを勉強すれば良いというものではない。わりとひろい範囲について効率的に触れることができるので学習のきっかけとして良いと考えているのだ。
また、そもそも社会に出たあとに、なかなか「勉強して試験を受ける」という機会は減ってくる。長時間机に座り、問題に関して考えるということも思考訓練として重要ではないかと思うのだ。また、今の世の中つい何事も「ググッて解決」してしまうことが多い。オフラインの環境で自分の知識と知能で問題を解くということも訓練すべきではないかと思っている(別に暗記することに価値があるとは思っていないけれども)。ソフトウェア開発でトラブル・緊急事態の類いに直面した時に、こういったことが生かされることもあるのではないだろうか。
午後の問題の興味深さ
情報処理試験は午後の問題が、高度な区分になると筆記問題や論述問題となってくる。筆記問題はけっこうヒネってあるので試験を解くのも意外と楽しいものだ。PMPなどのCBT試験には無い味わいでもある。
例えば現在公開されている過去問題を眺めると、こんな感じ。
- 平成25年度春の過去問題より(午後Ⅰ)
- 応用情報処理
- プロジェクトマネージャ
ソフトウェア開発の仕事をやっていると、どうしても1~2年くらい同じプロジェクトを継続することになってしまう。同じ地域でスライムを狩ってばかりいても、得られる経験値は下がっていく。ときどきこういった機会を利用して、見たこともない敵に相対するのも良いのではないか、と考えてる。