「求められるエンジニアとは?」LPI、サン、オラクルが結論はどうなのかなって感じです。ベンダーの囲い込み戦略のにおいがしますね。
私の意見としてはベンダー特有の知識は陳腐化しやすいと思います。ベンダー試験をうけるのであればまだ情報処理試験のほうがましだと思います。エンジニアはもっと基本的なことを知っておくべきでベンダー固有のものは仕事で覚えればいいんじゃないでしょうか。
ということで私が考えるITエンジニアに必要なスキルを考えてみました。
1 TCP/IP
TCP/IPがどのような仕組みで通信を行っているかは知っておくべきだと思います。プログラマーの方はAPI経由で通信を行うためこのあたりのことを理解していない人が多いと思います。しかしそれでは通信プログラム特有の障害をデバッグすることは難しいでしょう。例えば3-way ハンドシェイクやCSMA/CDのしくみなどTCP/IP,イーサネットの基本的な技術は知っておくべきだと思います。
詳解TCP/IP〈Vol.1〉プロトコル W.リチャード スティーヴンス W.Richard Stevens 橘 康雄 ピアソンエデュケーション 2000-12 売り上げランキング : 105,025 おすすめ平均 Amazonで詳しく見る by G-Tools |
2 2つ以上のプログラミング言語
Javaさえ知っていれば全て解決されるようなことが書かれていることが多いですが、開発する対象によって向き不向きがあります。特にリソースやパフォーマンスにクリティカルなシステムにはJavaは向いていません。やはりCやC++などのコンパイル言語もひとつ使いこなせるようになるべきだと思います。
開発言語は最低2つは使えるようにしたほうがいいのではないでしょうか。私はプロトタイプや使い捨てプログラムはRubyかPerl,通常のソフトウェアはJava,パフォーマンスが必要なシステムはCまたはC++を使います。(最近Macを買ったのでObjective-Cを勉強中です。)
プログラミング言語C ANSI規格準拠 B.W. カーニハン D.M. リッチー 石田 晴久 共立出版 1989-06 売り上げランキング : 5,924 おすすめ平均 Amazonで詳しく見る by G-Tools |
オブジェクト指向スクリプト言語 Ruby まつもと ゆきひろ 石塚 圭樹 アスキー 1999-10 売り上げランキング : おすすめ平均 Amazonで詳しく見る by G-Tools |
独習Java第3版 ジョゼフ・オニール 武藤 健志 トップスタジオ 翔泳社 2005-01-14 売り上げランキング : おすすめ平均 Amazonで詳しく見る by G-Tools |
3 RDB設計
システム開発の時には必ずDBが絡みます。SQLやDBMSについての知識も必要ですが、業務を理解してDB設計できるスキルが一番重要です。ER図を作ってテーブル設計できるようになれば仕事の幅も広がるのではないでしょうか。
グラス片手にデータベース設計~販売管理システム編 梅田 弘之 翔泳社 2003-11-19 売り上げランキング : 7,665 おすすめ平均 Amazonで詳しく見る by G-Tools |
4 英語
この業界では英語は必須です。最新の文献は英語のものが多く海外とのやりとりでメールで文章を書くこともあります。Googleで検索するときも英語の方が圧倒的に情報は豊富です。
英語は習うより慣れろが基本です。英語で書かれている興味のある本を読んだり海外のドラマをみたりとにかく多く英語に接するのが上達のこつです。
5 文章作成
どんな職業でも仕事をしているとなんらかの文章を書かなければいけません。しかしエンジニアの書く文章は読んでもらう人たちにやさしくないものが多いような気がします。(私も含めてなんですが。)読む人が読みやすいように論理的でわかりやすい文章を書く訓練をするべきだと思います。
考える技術・書く技術―問題解決力を伸ばすピラミッド原則 バーバラ ミント Barbara Minto 山崎 康司 ダイヤモンド社 1999-03 売り上げランキング : 2,614 おすすめ平均 Amazonで詳しく見る by G-Tools |
これらに加えてできれば知っていたほうがいいものは以下のものです。
1 セキュリティ
セキュリティは今や必須の技術となりました。SSLやVPN、ファイアーウォール、ウィルス防御技術などシステムを構築する上で知っておくべき知識ですね。
絶対わかる!新・ネットワークセキュリティ超入門 日経NETWORK 日経BP社 2005-04 売り上げランキング : おすすめ平均 Amazonで詳しく見る by G-Tools |
2 オブジェクト指向設計手法
これからのソフトウェア設計のキーワードはモジュール化と仕様変更に対する柔軟性でしょう。これからソフトウェアは規模が大きくなる一方変更しやすいシステムが求められます。そのためにはオブジェクト指向設計をマスターする必要があります。オブジェクト指向言語はもちろんデザインパターンやアナリシスパターンなどの知識も勉強しましょう。
憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門 Tucker 翔泳社 1998-05 売り上げランキング : おすすめ平均 Amazonで詳しく見る by G-Tools |
増補改訂版Java言語で学ぶデザインパターン入門 結城 浩 ソフトバンククリエイティブ 2004-06-19 売り上げランキング : 7,578 おすすめ平均 Amazonで詳しく見る by G-Tools |
3 会計
IT技術ではありませんが会計知識はこれからどんな職業の人でも必要になります。会計を勉強すると企業はどのように運営されているのか、さらには資本主義はどのようなものなのかということも理解できるようになります。結局企業は利益をあげないと存続できませんから、エンジニアもそのことを理解して仕事すべきだと思います。
実学入門 経営がみえる会計―目指せ!キャッシュフロー経営 田中 靖浩 日本経済新聞社 2004-06 売り上げランキング : 16,836 Amazonで詳しく見る by G-Tools |
もっというとコンピューターアーキテクチャーやアルゴリズムなどもありますが、本当は基本的なコンピューターサイエンスの勉強はすべきでしょうね。日本の大学がもう少しちゃんとしていればアメリカのエンジニアレベルにはなっていたと思うんですけどね。
最近のITエンジニアをみていてこれらの基本的な知識がなくて製品知識ばかりのエンジニアが多すぎるような気がします。マーケティングが先行しているベンダー主導の教育は限界があります。やはり基本をしっかり勉強して応用の効くエンジニアになるべきではないでしょうか。