ソフトウェアエンジニアとしてのキャリアを考える

Posted on Wednesday, April 1st, 2015 22:30:28

今日から Web 系ソフトウェア企業の正社員になりました。社長からの経営方針説明みたいなのがありました。その中で、「この会社がなくなっても、職に不安を覚えなくて済むようなエンジニアを育成する」というのがあったのですが、キャリアを積むにあたって良い環境だな、と感じました。

自分のエンジニアとしてのキャリアを考える上で、どんなエンジニアを目指すかは重要です。そんな中、たまに自身のキャリアを他人任せにしている人がいます。自社に任せているのは論外として(エンジニアならね)、他社に任せるのも、どうかなーと思います。

例えば、「Ruby on Rails のエキスパートになります!」みたいな感じ。こういうキャリア設定は危険です。技術は廃れるものだから、というのもありますが、平気で他所のテクノロジー1本に身を任せている、その思想が危険です。

情熱プログラマーの “自分の人生を他人任せにするな” に書かれている通りです。

いつの間にか僕らはマーケットリーダーを標準だと思い込んでいる。そのせいか、よその会社の製品を自分のアイデンティティの一部にすることに抵抗を覚えない人たちがいるようだ。

エキスパートになりなさい、とは聞きますが、「1つのテクノロジーにしか精通していない」ことを”エキスパート”と表現するのは間違いだと思うのです。私は1つのテクノロジーにしか精通していない優秀なプログラマーを1人として知りません。優秀なプログラマーは皆、幅広い知識を持っているものです。

言語やプラットフォームはツールの1つしかないわけだから、もっと普遍的なスキルを身に付けるように尽力した方が良いと思っています。そういう意味では、低レイヤーを学ぶことは良いアプローチかもしれません。自身の市場価値を守るにあたって、特定の会社やテクノロジーに依存しすぎるのは考えものなのです。

もう一度、情熱プログラマーから引用して終わりです。

実装の詳細がわかると、背景となる高度な概念のパターンが見えてくる。そして、Java を使おうが別の言語やプラットフォームを使おうが、分散エンタープライズアーキテクチャは分散エンタープライズアーキテクチャなのだと理解できるようになる。視野が広がれば頭も柔らかくなる。君の脳みそが分類して理解した概念やパターンは、特定のベンダのテクノロジよりもはるかに拡張性があるし普遍的だ。「ベンダなんかどこだろうと関係ない、僕はシステムの設計方法を知っているんだ!」

Share

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 0 follow us in feedly

Your Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です