新人のITエンジニアほど考えておきたいキャリアパス

ITエンジニアと書いたのは,CADエンジニアとかCAEエンジニアとか機械工も含まれて厄介なのでITエンジニアにしました.特に断りがない限り,ITエンジニアをエンジニアで統一します.

はじめに

最近はエンジニアになんとなく憧れてなるような時代になりました.昔はケビン・ミトニックとかビル・ゲイツとか,マイナーではありますが岩田聡やナーシャ・ジベリあたりが憧れの対象でした.現代になってエンジニアリングが細分化されると,言語ごとにスターエンジニアが現れるようになりました.

昔は雑な括りでハッカーとか呼んでいましたが,いまハッカーとか言うのが恥ずかしいレベルです.巨視的に見ると,コミュニティごとにスターエンジニアが存在します.エンジニアと言えば何でもできる人たちだったのですが,現代はそのコミュニティにコミットし続ける人たちがスターエンジニアになりました.

たぶん,現代のエンジニアになりたい人たちの大半は何でも解決する人よりも,コミュニティのトップに立ちたいという意識が強いのではないでしょうか?

エンジニアの活動そのものは昔と比べて狭くなった部分と広くなった部分があります.例えば,昔はApacheを立ててサーバやCGIを運営する程度でしたが,現代になって分散処理だけでなくバックエンドの様々なツールを組み合わせて,やっと開発できると思ったら様々なフレームワークやライブラリを組み合わせるなどなど,開発よりもその前準備にコストがかかるようになりました.

例えば,ゲームエンジンのUnityが流行りはじめたのは2012年ごろです.それまではDirectXで全部自前のライブラリを作って開発していました.ずっと開発していることが多かったです.最近はツールの使い方を調べる時間が増えてきました.また,PHPやRubyなどのフレームワークをイケイケに使っている人たちは,そのような自前ライブラリやオレオレエンジンを嘲笑するような目で見るようになりました.

社会情勢としてエンジニア近辺の意識が変化するのは仕方のないことですが,現代と昔の違いはこうも儚いものなんですね.

では,キャリアパスを考えるときに果たして現代と昔を比較してどうこう言えるのかというと,現代も昔も変わっていないのが基礎教養は抑えておかないとヤバい,ということです.

基礎教養と言っても,雑に言ってしまうと基本情報と応用情報取っておけば困ることはないよ程度です.それだけ勉強しておけば時代の移り変わりに対してなかなか変化しない知識を付けられます.

オブジェクト指向とかも勉強する必要があるかと言うと私は微妙だと思います.というのも,フレームワークを使っているとオブジェクト指向を使う必要がなく,だいたい手続き型プログラミングで済むことが多くあります.オブジェクト指向をガンガン使うのはオレオレフレームワークを開発しているときだけです.

このように,社会情勢を振り返ったとき,シニア・エンジニアに求められる知識や技術がコロコロ移り変わっていると,ちょっとフレームワークが得意な人は山程いるので昇給に繋がりません.属人性の低い誰でもできる仕事よりも,属人性の高い誰にも解決できない仕事が求められるようになります.

何のためにエンジニアリングするか?

そもそもエンジニアになろうと思った動機はなんでしょうか? 私はハッカーになりたいと思ってプログラミングの勉強をはじめました.何のためにプログラミングを勉強したかと言うと,眼の前に存在する難しい課題を解決するためのツールとして勉強をはじめました.

人によっては誰々みたいになりたいと思う人もいると思います.別にケビン・ミトニックでもいいんです.草薙素子という変化球もいます.ここで重要なのが最初から憧れる対象を間違えると迷走することがあります.

例えば,コミュニティのエンジニアリングではなく,コミュニティのマネージャに対して憧れを持ったら,自分はそのようになりたいと強く願ってその人をコピーしようとします.ですが,そもそもエンジニアリングとマネージャは全く違う性質のものなので,エンジニアに対してマネージャのように振る舞っていたら間違いなく疎まれると思います.エンジニアのくせに管理職のふりしやがってうぜーって思います.

エンジニアになりたいのでしたら,管理職に憧れるのはやめましょう.エンジニアに求められるのは,いま困難な壁を技術力で突破する方法です.生産効率化やキャッシュフローでは解決できません.

もし,それでもマネージャ職に憧れるならエンジニアリングはただのマネージャになるための手段でしかありません.キャリアパスとしてエンジニアリング能力を身に着けた現場もわかるマネージャになります.だとすれば,身につけるべきはコミュニケーション能力や交渉能力であってエンジニアリングではありません.学生なら色々企画したり,バックヤードを切り盛りする活動を優先的にやりましょう.

身も蓋もありませんが,ディレクターになりたいという人もたまにいますが,ディレクターはエンジニアにとってSAN値をガンガン削る役職です.私もディレクターとか監督になりたいと思ったことはありますが,いくつか体験してやっぱキツいから誰か他の人がやってと思います.

それでもエンジニアになりたい

今はITの時代だからエンジニアになるぞって人は,目的が曖昧なので本を読んでモチベーションを上げてください.エンジニアに関する伝記は山ほどあります.スティーブ・ジョブズは微妙に違うので注意してください.

まず,憧れる対象がいないと長続きしません.めっちゃしんどいと思います.エンジニアになるということは,この先何十年もプログラミングし続けるということです.なんとなくエンジニアになるということは,東京でべこ飼うのと変わらないぐらい田舎者の発想です.八王子市や奥多摩町なら飼えなくないですが,ほかで飼ってもいいでしょうに.この先40年50年と,ずっとプログラミングし続けて鬱にならない自信がありますか? 中には途中でなんとか管理職に逃げ切れる人もいますが,そもそもエンジニアリングの勉強が苦手なのに会社は給料を払い続ける義理はあるのでしょうか?

一生を賭するにはエンジニアはリスクの高い職業になります.時代の移り変わりは速いですし,勉強を辞めると老害化します.老害化したエンジニアは非常に不便です.Node.js使える人たちにとっては,生JSしか書けない人がいたらそれだけで技術のボトルネックになります.生JSしか書けない人にNode.jsを強制するのは技術的なハラスメントとして告発される恐れがあります.さっさにクビにできない法律になっていrので現場は最も技術力の低い人に合わせるしかありません.職場から疎んじられると鬱まっしぐらで周りを巻き込んでしまいます.

もう一度書きますが,エンジニアになるなら最低でもこういうスターエンジニアになりたいという理想像を作ってください.その中にマネージャ職を含めないでください.マネージャ職はそれはそれで別のキャリアプランが必要になります.

シニア・エンジニアになる

人間って年を取るので否が応でもシニア・エンジニアになります.シニア・エンジニアに求められるのは,高度な技術力その一点だけです.

シニア・エンジニアは技術力がありますよ,とアピールするだけでは転職できません.口先だけの可能性があるので人事もそうですし,エンジニアの人も口先だけの人は望んでいません.では,どのように客観視していくか,という話になります.

早い話が,オープンソースにコミットするとか,オープンソースでプログラムを書くとか,何か作品を作るだとか,そういう方向性になります.オープンソースで何かをしていれば,単にGitHubのアカウントを教えてもらうだけで実力判定ができますし,何か作品を作っていればそのソースコードを読んだり動かしたりすれば,だいたい何をやっているのかわかります.

技術力は可視化しづらいものがあるので,ソースコードや作品という形で残っていれば評価されます.例え,技術があっても初対面でそれを推し量るにはコミュニケーションコストが高すぎます.なので,ソースコードを遺しましょう.

特に,GitHubでソースコードを公開してスターを貰うことは重要です.100スター付いているリポジトリは,全体から見て1,000個もないらしいです.100個ぐらいスターが付くようにがんばりましょう.

(どうでもいいですが,一番多いスター数のリポジトリで236個あります.そこまで育てるのに5~6年ぐらいかかっています.気づいたらシニアに差し掛かっているので,継続的にリポジトリを保守したりするのが重要ですね)

おわりに

シニア・エンジニアに差し掛かると,否応なく実力でしか評価されません.実力が見合わないと給料は自動的に安くなります.

自分はずっと趣味でエンジニアリングをやっていたい,という人はなるべくコードを書く時間を確保してください.会社の仕事をサクッと終わらせて,こっそり自分の趣味をやれるぐらいのゆとりが欲しいですね.

会社の仕事が山積みになるようなところだと,シニア・エンジニアになるのに必要な課外活動を確保できません.スクエニでなになにに関わった,という情報は役に立たないし,実はその片隅でお茶くみをやっていただけだったりすることもあります.DocomoやNTT出身の人は口をそろえてi-modeは自分が作ったと言うぐらいなので,~は自分が作ったという情報は極めて役に立たないです.それならば,課外活動で客観的に評価されるような場所を作らないと転職が厳しいです.

もしやるなら時間をかけて自分のプロダクトを作ってみましょう.

普段は研究していて生活が厳しいのでサポートしてくれる方がいるととても嬉しいです.生活的な余裕が出ると神が僕の脳に落書きを残してくれるようになります.