この連載「継続は力なり─大器晩成エンジニアを目指して」は,今回で最終回を迎える。この連載では,エンジニアとして長くやっていくために有用だと思うトピックを紹介してきた。ちなみに本連載が掲載されているWEB+DB PRESS誌上での山の挿絵は,エンジニアの人生の長い道のりを表している。
WEB+DB PRESS誌上での「継続は力なり」ページ内
のイラスト(第1回からのタイトル挿絵として)

絵:岩井栄子
さて,この山登りの最後には何が待っているのだろうか。筆者にはわからない。われわれはロールモデルが少ない世代だからだ。上の世代のエンジニアが成功して,引退して悠々自適な生活をしている。そのような特殊な事例はWebのインタビューで見つかる。しかし,ごく平均的だったエンジニアがどうなったかはわからない。われわれの上の世代は,Web以前の人々なのだ。ブログを書いたり,Twitterで技術的なことにコメントしたりする人は少ない。だから現在ちょうど引退を迎えるような年齢のエンジニアが,何を思い,どのように生きてきたかを知ることは難しい。そういったわけで,筆者には終着点の様子はわからない。
しかし,途中に待ち受けているものならば,いくつかならば筆者は経験済みである。最終回では,若いエンジニアに向けて,その後の人生のプレビューを提供してみようと思う。年齢を重ねたエンジニアが何をして,何を考えているのか。それを紹介することで,読者のみなさんがキャリアを考える助けになればと思う。
訪れる生活スタイルの変化
20代のころと比べて生活スタイルが大きく変化する人が多くなる。パートナーを見つけて同居,結婚する。自分だけのために使える時間が減っていく。その傾向はしばらく続く。子どもを作ることを選んだ場合,10年以上子育てにコミットすることになる。生活の中心が「自分」から「自分も含めた家族」になっていく。
子育ての初期はまるでデスマーチだ。永遠とも思える睡眠不足が続く。それが落ち着くと,一定時間ごとにエネルギーを使うイベントが発生する。入園,卒園,入学,授業参観,運動会,受験などなど。
これらのイベントは,ただエネルギーを使うだけではない。知的好奇心や達成感などの刺激をあなたにもたらす。得られる喜びは,自己のみによる達成よりも大きいことがほとんどだ。サービスのリリースやアプリの開発よりも,家族による達成のほうが喜びになっていく。自分の子どもが幼稚園のお遊戯で上手にダンスできた場面を想像してほしい。自分が直接何かを達成しなくても達成感があるのだ。これは一時的にあなたの創造力を弱める可能性があるので気を付けよう。
ミッドライフクライシス
ミッドライフクライシスという言葉がある。これはもともとアメリカで知られた言葉だ。中年になって起きる心理的危機のことである。急に順調だった仕事への意欲をなくす。今までやってきたことをすべて捨て去りたくなるような衝動が起きる。高いスポーツカーを買う。無理に若さを取り戻そうとする。愛人など異性関係に走ってしまう。人生の選択を大きく後悔する。このようないくつもの症状がある。アメリカではよく知られた症状のようだ。
知っていればごくありふれた症状であることがわかるので事例を調べて対処できる。しかし知らないと自分1人で悩んでしまうので,覚えておくと良いかもしれない。
蒸留される自分
やりたいことを片っ端からやってみる20代。たくさんのことに何度もチャレンジする。そこから徐々に自分の好みがわかってくる。あまり合わなかったもの,そもそも好みに合わないものが出てくる。
一方でやりたいこと,好きなこと,得意なことは自然と継続できるだろう。おかげで専門性が出てくる。ますます楽しくなり,強くなる。どんどん蒸留されて形作られていく。しなやかで強靭なあなたの「独自のコア」ができあがっていくことに気付くだろう。
知識の貯金
20代のころに夢中でやったことの貯金が活かせる場合もある。しかしながら,この業界の移り変わりは激しいので,知識の陳腐化の速度のほうがはるかに早い。例を挙げればきりがない。Windowsプログラミング,初期のWeb開発,モダンWeb開発,モバイルアプリ,機械学習,ブロックチェーン。主戦場はどんどん変わる。新しいテクノロジを勉強する習慣がない人は,メインストリームで働くのが難しくなっていく。
技術知識に関しては若者に対するアドバンテージはあまりない。唯一の救いは,1つ上のレイヤが応用可能なことだ。いわゆるメタ知識のことである。時を経てもずっと役に立つ場合が多い。知らない技術を効率良く勉強する方法,次に投資する技術を見極める方法などを駆使して,若者との差別化を図る。
飽き
仕事でもプライベートでもプログラミングをやる。文字どおり朝から晩までプログラミングである。それを15年以上続けると,さすがに飽きる。仕事でプログラミングを続けつつも,新しい分野に挑戦する人も多い。
新しい分野を選ぶポイントは,「適度な難易度」かつ「プログラミングで培った何かを応用できる」ことである。筆者が知っているだけでも,釣り,マラソン,ボルダリング,ポッドキャスト,料理,Pokémon GO,お受験,そば打ち,ピアノ,お芝居,ゲーム,教育などに,多くの時間を使い始める人たちを見てきた。その中の1人は,ボルダリングがいかにプログラミングに似ているか,頭を使うのかを筆者に熱弁してくれたことがある。また,ここで言及するのは迷ったが,マネジメントの奥深さに気付いて,マネージャー方向にキャリアチェンジする人たちもここのカテゴリに入るかもしれない。
こだわりの減少
これはおそらく老化の一つだと思うが,細かいこだわりが減少する。たとえばプログラミング言語にこだわらなくなる。若いころであれば,「プログラミング言語X最高。それ以外は認めない」というスタンスであった筆者。今になってみれば,プログラミング言語はだいたい良いものばかりだ。どの言語でもやりたいことは実現できる。そこまで大した違いはない。
もちろん自分のユースケースにぴったり合ったベストなものとは限らない。それでもよい。以前だったらRubyしか使いたくないなどと手段が目的化していたが,今では目的のほうに自然とフォーカスするようになった。もしかしたら手段の目的化に飽きただけかもしれないが。
運動
歳をとっていくと,運動にのめり込む人が増える。これには2つの理由がある。
1つ目は健康・体型の維持のためである。歳をとると今まで安定稼働していた自分の体が,故障したり,うまく動かなくなってくる。自分の体の生産性が下がっていくのだ。そのためのメンテナンスとして運動を始めるわけである。
そうやって始めた運動に,2つ目の理由でのめり込んでいく。それは「目に見える成果」だ。歳を取るにつれ仕事では立場が上になり,大きな目に見える成果を出しづらくなる。「僕はこれを作りました!」のような成果は減り,「チームを助けました」「チーム全体が動きやすいように整備しました」などのように自分の成果として実感しづらいものが多くなる。一方で運動は,短期間で明らかに体に変化を感じる。体が軽くなった,痩せた,筋肉が付いたなど,すぐに自分自身による目に見える成果が出る。これが中毒性のあるフィードバックループになる。仕事では得られなくなった達成感による気持ち良さが,運動を続けさせるのだ。
迫りくる世代交代
僕たちの世代と比べると大きく異なるバックグラウンドで育ってきた世代が迫ってきている。最初に使った携帯電話がiPhone。学校でしかPCを使ったことがない。体育の授業でダンスを習う。プログラミングの必修化を目前にして,習いごとでプログラミングをしてきた。子どものころハマった遊びはマインクラフト。
そういう世代がもうすぐ,僕らと同じ仕事をするようになる。われわれは彼らの上司や先輩となり,彼らに的外れな言説を繰り返すかもしれない。
残された時間
残された時間を意識するようになる。たとえば,行きたくもない飲み会にはもう参加しなくなる。スタバに行って誰にも邪魔されず1時間集中できるのであれば,喜んでコーヒー代を払う。休みの日にやることに何か選択肢がある場合,たとえば子どもと遊ぶ,勉強,家族で出かける。死ぬ前に後悔しない選択肢はどれだろうかという軸で決断する。
ただ過ぎていく時間に,何も頓着せず生きていた若いころはたいへん贅沢だったと思う。だからといってそれを後悔しているわけではないが,残された時間が短いのも事実である。
まとめ
とりとめもなくエンジニア人生のプレビューを並べてみた。挙げてきたことは,あなたにも起こるかもしれないし,起こらないかもしれない。ただの一例である。筆者もこの先自分がどこに向かうか見当も付かない。これがきっかけで歳上のエンジニアたちが,人生プレビューを公開してくれたらおもしろいと思う。
全盛期
筆者は20代のころ,尊敬する30代のスーパーエンジニアの方に思い切って質問したことがある。「あなたは今,自分が能力のピークだと思いますか」と。今思えば失礼な質問だが,嫌な顔をせず答えてくれた。そのときの彼の答えは「わからない」だったと思う。
もし同じ質問をされたら,筆者も「わからない」と答えるだろう。瞬発力や持久力は下がっているのは間違いない。スループットは上がっているかもしれない。総合力はどうだろうか。特定の分野なら勝っているかもしれない。
以前友人がこんなことを言っていた。「自分は去年と比べてあまり成長していない。スキルを維持する1年だった」と感じる場合は,能力が落ちているということだと。毎年新しいことを学んで能力が上がったと感じている状態を続けて,ようやく現状維持を実現できていると考えれば良いのだよと。これを肝に銘じて全盛期を迎えたいところだ。
- 特集1
[低コスト,安定稼働,自動スケール]
実践サーバレス
AWS Lambdaによる開発/運用のポイント
- 特集2
Firebase大活用
モバイルアプリのバックエンドはお任せ!
- 特集3
はじめてのスマートスピーカー
Google Home,Amazon Echo,IFTTTで音声アプリ開発!