俺が考える最強のITエンジニアキャリア戦略

はてなブックマークにて [俺が考える最強のITエンジニアキャリア戦略
](https://qiita.com/papi_tokei/items/11877a857a60965a53fc) なる記事が流行っているのを見つけた。

様々なキャリア論があるが、ポエマーとしては心がくすぐられる。私のキャリア論を開帳してもよいだろう。

# はじめに

「ITエンジニア」と一言に言っても、WebアプリのプログラマからSuicaのシステムを支える基盤エンジニアまで、属する世界は多種多様だ。

> 例えば、JR東日本は線路網と同時に *回線網* をも保持している。つまり、TCP はおろか IP にすらとらわれないネットワーク・アプリケーションが（やるかどうかは別として、とはいえ信号システムはおそらくそのように）構築可能だ。

そのため、「統一的な最強のキャリア」など想定できるものではない。だが、ここでは新人に夢を見せるためにあえて「最強」のキャリアを考えてみることにする。

## 背景とターゲット

Qiita を見に来るのは、きっと若手の、Web系または近隣業界の "エンジニア" が多いと思われる。とはいえ、この業界はたかだか 20 年強の歴史しかない [^20th] 。
[^20th]:お察しの通り、本記事の著者は40代だ。

> インパク2000？イット革命？　何のことですか？　知らないワードですね……
> 第５世代コンピュータ計画？　ソフトウェアハウス？　何のことですか？　知らないワードですね…………

だから、参考にするのであれば、「ナナロク世代」と呼ばれたプログラマ陣か、それに憧れた「ハチロク世代」のプログラマ陣だろう。しかし、「ナナロク世代」の彼らですらまだ50代前後、定年まであと15年もあり、それぞれの人生は長い。

とはいえ、それだと話は進まないので、ここではいわゆる Web アプリケーションをターゲットとしたプログラマのキャリアについて書いていこうと思う。

# 結論

* 20で働き始めたとして、65歳まで45年もあります。全部が全部、順風満帆に行かないでしょう
* ゆっくり自由に、人生を楽しむのが良いと思います
* その上で、仕事が楽しければ良いのではないでしょうか？　プログラミングや技術は、好きな人には飽きがこず、ずっとやれる素敵な趣味です！

> そもそも何が幸せなのかは人によって違う。寝食を忘れて技術に打ち込むのが楽しい人もいれば、それ以外の人もいる。
> ライフイベントによっては他のことが楽しくなったり、また技術が楽しくなったりもするだろう。

# 初級ITエンジニア

身を置くべき環境と勉強内容の２つについて述べる。

## 初級エンジニアが身を置くべき環境

20代から30代、最初の10年は泥のように働いた方が良い。ただし、成長できる環境で、だ。

2008年くらいに、ある会社の偉い人が「10年は泥のように働け」と発言したことをきっかけに、通称 "泥カン" というものが開かれた。

当たり前だが、燃えた。

そりゃ、みんな泥のように働きたくはないし、昨今なら『やりがい搾取』みたいな概念もあるので避けられるだろう。

とはいえ、おじさんになった今、考えが変わった部分は確かにある。

キャリアはどこかで積み上げなきゃいけない。そして、それは早い方がいい。だから、若手のうちは『可能な限り成長できる現場で、可能な限り成長する』というのがオススメだ。

当時、有名だった先輩エンジニアの記事をリンクする。ぜひ読んでいただきたい。

https://higayasuo.hatenablog.com/entry/20080715/1216097541

しかしながら、20代の貴重な時間を仕事なんかに費やして良いのか？　これについては一考の余地がある。

当たり前だが価値観は人によって違うが、一つ言えるのは **『名を残したいなら、子供が産まれる前に実績を作っておいた方が可能性が高い』** ということだろう。

> 子供が産まれてから仕事頑張る？　無理無理。まーじ無理。子供が小学校高学年になるまで無理です。専業主婦いないならなお無理です。

そして、寝食忘れて仕事に打ち込める。そんな **気力** と体力がもつのは 20 代くらいなものだろう。だから、ぜひ良い環境で 20 代ないしは 30 代の前半を過ごしてほしい。

### 成長できる環境とは？

「成長できる環境」とは何か？ それは人によって異なるが、共通して以下の要素が挙げられる。

1. 挑戦できる機会があること: 失敗を恐れず、新しい技術やプロジェクトに関われる環境
2. 適切なフィードバックが得られること: 優れたメンターやチームメンバーからの助言があり、成長を促してくれる
3. 適正な労働環境: 過度な労働搾取がなく、学ぶ時間を確保できる

このような環境を選ぶことで、短期間でのスキルアップが可能になる。逆に、単なる「安定した職場」や「楽な仕事」を求めると、成長の機会は失われる可能性がある。また、労働者を搾取する環境は人生の壊れる可能性があるので避けた方がよい。

そのような環境はどこにあるのか？　もしも人生を許してくれるのであれば社員数が１桁未満の IT ベンチャーはお勧めだ。ただし、かなりギャンブルだ。　少なくとも良いメンターはいない。とはいえ、大企業に行けばいるのか？　と問われれば、そこもガチャでしかない。

社員数１桁のベンチャー企業では、あなたの選択が現実に返ってくる。そんな素敵な環境を著者は

> 人生かかってるんだ、おすすめは、できない。ただ、ひとつの方向性として選択肢に入れてもいいんじゃないかな？
> 著者の最初の会社は２年くらいで無くなりました。

## 何を勉強すれば良いのか？

「プログラミング」の勉強を一通り終えて、実際にサービス作りに携わり始めたあなたは、どのような勉強をしていけば良いのだろうか？

答えは https://roadmap.sh/ にある。

Fullstack や Backend, Frontend, DevOps など、それぞれの学習した方がいい内容が列挙されているので、参考にしつつ、そして目の前の業務をこなしつつ、勉強していくのが良い。

ただし、一つ一つの項目は奥が深い。「HTML」ひとつとっても、１年やそこらで全部理解するのは困難だ。だから、勉強は繰り返しになるので、ゆっくり、ゆっくりと関連する項目を勉強していくのが良いだろう。

当たり前だが目の前のタスクをこなすのが最優先だ、その中で、仕事をしながら勉強する。そんなスタイルを確立するのがベターだろう。

そして、勉強したことは発信しよう。誰に何と言われようと、仕事と、そしてそれ以外にもアウトプットをした方がよい。

> Qiita や Zenn を汚染するなみたいな声があるのは知ってるけど、だったらみんなソースコード読めばよいのでは？　読めよ。おれはたまに読んでる。

### どこまで勉強すれば初級卒業なのか？

では、どこまで学べば「初級」から卒業したと言えるのか？

一つの基準として、「XXなWebサービスを作りたいんだよね」と言われたときに、以下のような思考ができれば、初級は卒業したと考えてよいだろう。

* どのデータベースや認証システムを選ぶか？
* どの言語・フレームワークを使うか？
* どのインフラを利用し、どのようにホスティングするか？
* ログの管理やアラート設定はどうすればいいか？

例えば、「Qiitaみたいなサイトを作りたいんだよね」と言われたとき、

「Ruby on Rails でさっと作るか。AWS に載せるから、データベースは RDB で…あ、コンテナにしたいから ECS にしよう。CloudWatch の設定もして…フロントは React と Tailwind でいこう」

といった具合に、具体的な設計や技術スタックをすぐに想像でき、 **まぁ、(時間が無限にあれば) 作れるかな？** と思えるようになれば、一人前に近づいた証拠だ。

> この際、コスト意識までは持つ必要はないんじゃないかと思う。
> それにはビジネス上の要求の整理と要件の定義、そして予算感など、結構高度なスキルが問われる。

# 中級ITエンジニア

一通りの技術スタックを抑えたら、次に考えるのはスペシャリストになるのかゼネラリストになるのか、方向性を考えることだ。

これも、２択ではなく、いろんな中間層がある。例えば、 Ruby on Rails で一通りのサービスを組め、運用もできるとして、そこからは以下の様な選択肢があるだろう。

例えば、

* Ruby のコミッタを目指す
* Rails のメンテナを目指す
* 有用な gem の制作者を目指す

という、それぞれのドメインでのスペシャリストを目指しても良い。または、ゼネラリストになりたいのであれば、

* 多言語多フレームワークを積み重ねて、どんな現場でも対応できるようにする
* 非同期処理や動画ストリーム配信、リアルタイム通信、AI連携など関連技術を勉強してできることの幅を広げる
* チームを率いて、小さなピープルマネジメントやチームでの運用を体験する
* マーケティングや機能の企画、営業やユーザーサポートなど関連領域を勉強して、社会人としての器を広くする

など様々なことに挑戦し、自分の幅を広げるのを目指しても良いだろう

> どこまでいけば中級者卒業なのだろうか？
> さっぱりわからない。私もまだまだ中級者だ。いつ卒業できるのだろうか。
> キルアも「自称中級者が一番危ない」って言ったし……

# それ以降

人によって千差万別だし、それぞれの人生を送るのが良いのではないか？　はじめにも書いたが、この業界はたかだか 20 年しか歴史がない。

つまり、20年前に一世を風靡していたプログラマ陣ですら、まだまだ現役で、キャリアも道半ばだ。

いっぽう、キャリアは 65 歳まで、もしかしたら 70, 75 歳まであるかもしれない。つまり、 **キャリア戦略なんて、まだわからない**

それを前提として、先輩諸氏の現在を振り返ってみよう。

## ナナロク世代

はてなの近藤淳也氏や mixi の笠原健治氏、 gree 田中良和氏あたりはまだ経営者として一線で活躍しているだろうし、ペパボの家入一馬氏も CAMPFIRE や都知事選など精力的に活動しているように見える。

西村博之氏はメディアで大活躍しているし、宮川達彦氏あたりは楽しそうにポッドキャストをやっているように見える

higepon 氏とか、hak 氏とか、Rebuild.fm 聞いてる限りではお元気なんじゃないですかね？

## ハチロク世代

amachang とか yuyarin とか ukstudio とか syou6162 とか、今、どこで何してるんですかね？　ぼく、彼ら夢いな同世代に憧れてた、凡庸なハチロク世代なので、ふと思い出しては空に思いを馳せています

## 無名な人々

著名・有名になれなくても、別に良いのではないかと、やっと最近思えたのも事実。それぞれの会社で頑張っている人はいっぱいいるし、ライフイベントを重ねてそれぞれの幸せを勝ち取っている人もいっぱいいるだろう。

**と、いうか、それが大多数なんだから** 自分の人生を生きるしかあるまい。

反面教師としてリクルートを作った江副氏が良いのではないか。彼は天才であり、大起業家だ。しかしあまりにも波乱に塗れた人生で、果たして私生活まで充実していたのかはわからない。

また、ずっといい人生を送れた人なんて本当に一握りで、いいときもあれば悪い時もあるのが人生だろう。

フリーランスになって、稼いで引退する？　それもよいが、IOWN や Suica 2.0、Woven City の様な、巨大で頭のおかしなプランにのるのも素敵なのではないか？

> IOWN: 要はNGN2.0。APN と光プロセッサが紡ぐ訳の分からない構想。冷静に考えてくれ、これ、OS 層であつかうネットワークスタック変える必要あるんだぞ？　しゅごい
> Suica2.0: ウォークスルー改札ができるってことは、各種決済ももちろんできる。そう、俺たちはニューデイズから好きに商品を持って行って電車に乗って帰ることができるのだ。構想をしっていると JRE bank はその布石にしかみえない。しゅごい
> Woven City: 表層的に見ればかっこいい都市。だが、TOYOTA グループの歴史を考えると、むしろ恐怖すら感じる。佐吉が織機を、喜一郎が自動車を、そして章一郎が家を作り始め、これ、その進化系だろ？　次は何するんだ？　国でも作るんか？

# 結論

とっちらかっちゃったけど、人生いろいろあるから頑張って生きよ？