Findy Engineer Lab

エンジニアの"ちょい先"を考えるメディア

<前編>【50代エンジニアのキャリアストーリー~将来のエンジニアライフを考える~】ウェビナーレポート #over50

2021年2月9日(火)ファインディが主催するエンジニア向けイベント「【50代エンジニアのキャリアストーリー~将来のエンジニアライフを考える~】」がオンライン上で開催されました。

「35歳定年説」と謳われるエンジニアのキャリア。「40歳を迎えてこれからもエンジニアを続けられるのか」「年齢的にマネジメントに進まないといけないのか」「周りに50歳以上のエンジニアがいない」といった内容の相談をファインディでも数多く受けてきました。本イベントでは、50代以上のエンジニアとして活躍されている方々をお呼びして、将来のエンジニアライフを考える上で、ヒントとなるお話をお伺いしました。

インターネット黎明期を知る、50代エンジニアのキャリアの変遷

ー本日はよろしくお願いします。まずはお三方がこれまでどのようなキャリアを歩まれてきたのか、お伺いしてもよろしいでしょうか。

渡辺さん:もうすぐで53歳になるのですが、20歳で専門学校を出て、そこからエンジニアとしてのキャリアがスタートしています。最初は独立系のソフトハウスで、ハードウェア寄りの電力会社や変電所のシステムを作っていました。

23~24歳頃にとある事業部が立ち上がり、お手伝いでWindowsやMacのアプリを作りはじめました。ちょうどその頃、インターネットの時代が到来してきて、LinuxやFreeBSDなどが登場してからサーバーを立てたりして遊んでいたんですよね。  90年代終盤からWebの仕事を始めたのですが、Perlが理解できなくて挫折しました(笑)。次に、CやC++のCGIでWebサービスをしばらく作っていて、徐々にPHPを使うようになりました。PHPを使ってバックエンドも書くのですが、TypeScriptでフロントのアプリを作ることもあります。実は今もバリバリ開発していて、先程までめっちゃコード書いてました(笑)。

塩谷さん:家庭用ゲームの開発の見習いとして、プログラマーになったのがキャリアのスタートでした。プレステやドリキャスが出始めた頃です。20代から30歳過ぎるまで家庭用ゲームに関わっていたのですが、うっかり結婚することになったのが転機になりました(笑)。

今でこそゲーム開発は、楽しいしそれなりにお給料がもらえるものだと思うのですが、当時のゲーム開発はお給料が安かったんです。このままでは結婚できないだろうということでで、一念発起して転職しました。

コードは書けるものの、家庭用ゲームの世界しか知らなかったので、実力にあまり自信を持てないままのスタートでした。携帯電話のショートメッセージを中継するモジュールのプロジェクトにSESとして入場すると、「あれ俺意外と書けるのでは?」と初めて自分のスキルを確かめるきっかけになりました。C++で書いていましたね。

SESの現場でWebを作っていた人が突然ばっくれてしまい、自分がJavaとPerlを使えたので、「やってみないか」と任せていただき、Strutsで初めてWebを作りました。時代的に売れ始めだったWebの流行に乗り遅れることなく、基本的な技術を身につけることができました。

Webに潤沢なお金が巡っていた当時、モバゲータウンが始まり、GREEさんがガラケーSNSをスタートさせたような時期でしたね。ガラケー向けのWeb周りのキャリアを経験し、その後いくつかの転職を経て、今に至ります。最近はWeb系の仕事をずっとやっています。

増田さん:私の社会人のスタートは、技術屋ではなく事務系の仕事からでした。生産管理の現場にいて、見積計算や原価生産、生産計画などを立てながら、PC上で自分たちの仕事のために色々とものを作っていました。

機械いじりは子どもの頃から好きで、自分で組み立てたり、アセンブラなどの機械語レベルで書いたりして、遊んでいた時代がありました。キャリアとしては、Unix上でC言語を使って、リレーチャットのようなコミュニケーションを長く作ってきました。今でいうSlackにイメージが近いですね。

オラクル社に転職してからは、データベースやPL/SQLをごりごり書いていました。オラクルを辞めた頃、Webアプリケーションが流行り始める時代が到来しました。それからJavaをやり始めて、25年くらいになります。

私にとってJavaは、Cの延長のような感じで使いやすかったですね。Java 0.89くらいのバージョンから愛用していて、日本語版が無かったことから使ってたんですよ(笑)。今でもJavaでアプリケーションプログラムを書くことを生業にしています。

「実益と趣味を兼ねているから」50代でもエンジニアを続けている

ー1時間ずつお三方のお話を聞いて、3時間これだけでお酒が飲めそうなくらい刺激的なご経歴ですね。皆さんがエンジニアとして働かれているのには、どんな理由があるのですか?

増田さん:色んな意味で自分の技術を試し、やりたいことをやりやすくなった。いい時代になりましたよね、色んな技術が出てきて面白い。クラウドやGitHubなんか出てきて、随分楽になりましたしね。

例えば、データベースのレプリケーション環境を作って、テストするなんて昔は夢物語だった。ハードウェアを揃えたりし始めると、億単位の投資をしないと到底できない。今はブラウザをちょっといじれば、簡単にできちゃうじゃないですか。

ソースコードの管理においても、昔はフロッピーでチェックイン・チェックアウトをしなきゃいけなくて。皆さん分からないですかね(笑)。お金稼ぐだけなら別の仕事でもいいと思うし、技術の面白さがエンジニアを続けている理由のすべてなんじゃないですか。

塩谷さん:前の会社で、若手向けに伝えたらウケた話をしますね(笑)。エンジニアって、コードを書いて、作ったプログラムを動かすのが主な仕事だと思うんですけど、これって趣味になり得る貴重な仕事だと思うんです。

もちろん職業に貴賎なしだと思います。朝家を出て、会社に来るまでに、きっとあらゆる職業の人とすれ違いますよね。では、その中で「趣味にしたい」と思うような職業、いくつありますか?と聞いてみると、「うーん」という反応で(笑)。

コードを書くことは趣味にできそうじゃない?と聞いてみると、若い子の半分以上は「うん」と言うんですよね。実益と趣味を兼ねてるのがエンジニアという仕事、「じゃあ頑張んなきゃ損じゃない」と思うんです。エンジニアリングするの楽しいですからね。

自分の作ったものが、町のどこかで動いているのを見かけたとか、ニュースで見たよとか言われると最高じゃないですか。昔馴染みの言語でも、新しい言語でも”Hello World”を書くのは楽しいですし、培ってきた経験で若手のサポートができるのも楽しい。色んなところに、実益と趣味を兼ねているところがあるように感じます。

ー僕も相談を受けたら、「実益と趣味を兼ねているエンジニアはいいと思うよ」と伝えようと思います(笑)。渡辺さんはいかがでしょうか?

渡辺さん:ソフトウェアの仕事したいな、と初めて思うようになったのは高校生の時。当時は奮発すればやっと個人でもPCが買えるようになり始めた時代で、購入できたのが嬉しくて、日々BASICでプログラムを書いたりしてました。

自分で書いたものが、動くのが楽しいんです。この楽しい感覚を、今でもずっと持っているので、別の仕事をしているイメージをしたことがないですね。もちろん辛いことも時にはありますが、概ね楽しいことばかりで、好きだから続けているんだと思います。

数々の苦労体験が、今の仕事に活きてくる

ーちなみに渡辺さんは、エンジニアとしてどんな苦労を経験してきましたか?

渡辺さん:オブジェクト指向は苦労しましたね。どう実装に落とし込めばいいのか、全然分からなかった。いわゆるGUIのアプリ、WindowsやMacのアプリを書くようになって、やっと理解できるようになりました。

最初にフロントエンドでReactを学ぼうとしたときは、進化が早いし選択肢は山ほどあるし、どれを選んだらいいのだろうと迷ったのはありますね。昨年、幸いなことに会社にフロントのスペシャリストがジョインしてくれて、彼のおかげでショートカットできるようになった気がします。

私は書籍を何回も読んで、じっくり理解するというよりは、作っては壊すことを繰り返して学ぶタイプで。彼から教えてもらう機会が頻繁にあるわけではないのですが、最短ルートで目的地に辿り着くために、すぐに相談できる相手がいる環境は助かりますね。

塩谷さん:技術面での苦労は、渡辺さんに共感ですね。エンジニアの性なので、書けたら動くし、動かなかったら自分の責任だと思えるのですが、そうでない理不尽な理由で苦労するのが辛かったですね。そこから抜けられるようになるまで、結構キャリア積まないといけなかったので。

随分前の話ですが、初めて日本がワールドカップに出場した時の出来事でした。確かぼろ負けしてしまった試合だったと思うのですが、深夜ホテルに缶詰になって観戦していたんですね。

SESの会社にいて、自分の会社の社長とお客様とで、がっつり詰め込みになった。その日中に検証環境を立てないとだめです、ということで。とはいえ、お客様も社長もワールドカップ観たいので、私が作業している隣でテレビをご覧になっていて(笑)。

ーそんな苦労が...。客席からのご質問ですが、過去の時代と比べて、キャッチアップにおいて今の時代だからこその難しさはありますか?

塩谷さん:先程増田さんが仰ったみたいに、IDE(統合開発環境)は賢くなったし、インフラの調達はボタンをポチポチするだけでできるようになったし、楽になった側面はたくさんあります。昔と今とで、という変化はあまりなくて、歳を取ったからキャッチアップができなくなる、ということはないですね。

もし時間がかかる要素があるとすれば、例えば他で抱える仕事が多くなったり、ライフステージが変わって家庭に割く時間が多くなったり。そんな要素でしかないと思います。

ーマネジメントの仕事をされている塩谷さんは、現在もコードを書くことはあるのでしょうか?

塩谷さん:今はほとんど書いていないですね。というのも、私が見ないとどうにもならない課題があり、インフラチームのマネージャ―をしているので。コードを書くというよりも、インフラチームのマネジメントをしながら、実際に運用支援をしてDatadogを見たり、AWSの利用費を見たりしています。

データを見て、「これやばいね、解決に動こうか」と判断したり、大丈夫そうであれば「アラートキャッチする必要なさそうだよ」と指示を出したりしています。コードは書いていませんが、技術周りには常に関わっています。

ー増田さんは、技術周りを含めて何か苦労された経験はありますか?

増田さん:年を取るほど体が錆びついちゃうので、準備運動やストレッチはよくするようになりましたね。一方で脳のスタックに関しては、浅くなるよりむしろ深くなっている感じがします。年を重ねて、むしろ視野は広がったのではないでしょうか。

若いときは、複数のことをあれもこれも同時に考えることが、結構辛かったんです。一つのことに集中しているのに、他のことに意識を移すのが大変で。年を取ると、行ったり来たりがしやすくなりましたね。経験値が増えただけかもしれませんけど。

最近新しい言語もたくさん出てきましたが、基本的にはあまり変わらなくて、斬新な言語はないと思っています。例えば、Cと比べてGoってだいぶ違いますけど、元々Cでちゃんと書くべきだったものを、Goだと言語仕様でカバーしてくれているのかなと捉えています。

私自身が昔も今も苦労しているのは、やはり仕事ですかね。面白くて、誰かの役に立てて、かつ対価もいただける仕事を見つけるのはなかなか大変。

お金のことだけを考えると、面白くもない仕事をやる羽目に陥りがちだし、面白い仕事だけやっていれば、それで食っていけるのかというと別問題ですし。エンジニアとしてのこれまでを振り返ると、ここが1番苦労してきた気がしますね。

この業界って、たまに化け物みたいな人いますよね(笑)。本やブログからの学びではなくて、この人の近くで関われて「すげー勉強になった」という体験を持てる、一緒に仕事ができる機会を持てることは、エンジニアとしての幅を広げてくれると思います。

ーそのようなご経験、渡辺さんや塩谷さんはお持ちですか?

渡辺さん:そうですね、仕事柄受託開発やスポットでコンサルでのサポートなどを行っているのですが、とあるお客様のCTOが半端なかったんです(笑)。その人と一緒にできたことは、めちゃめちゃ勉強になりました。

私自身が全然分からなかったAI周りの知識をその方は持っていて、触りだけですが初めて理解できるようになりました。巡回セールスマン問題とか、今まで意識したことなかったのですが、これを機に本読んで勉強してみようと思えるきっかけになりました。

塩谷さん:お二人の話を聞いて思うのは、やはり一番いいのは好きな仕事がお金になることですよね。技術面のキャッチアップを、Reactからオンプレのインフラレベルまで網羅することは難しいですし、楽しくてもその技術に価値があるかという視点は大事。

例えば新卒採用をしていると、「僕D言語が好きです」と言う若い子の話をたくさん耳にするんです。「でもD言語の仕事はあまりないよな」というのが実情ですよね。好きはモチベーションになるけど、何がお金になるのかというバランス感覚はあった方がいい。

尊敬している和田卓人さんというエンジニアが、よく「枯れた技術」と例えます。RDBMSとかセキュリティは枯れた技術で、絶対に当分なくならない。一方で、たとえばフロントエンドの尖ったツールだけの一本で勝負しようとすると、こけた時にやばくて。主流から外れちゃったツールにフルベットしてた人は、今頃大変な思いしているのではないでしょうか。

どうやって判断するのかって、アンテナを張り続けるしかなくて。世の中や業界の動きをよく見ておく、周りの人と関わって話をする価値は、こういうところにもあると思います。

20~40代でやっててよかった!息の長いエンジニア生命を支えてくれたもの

ーお三方のこれまでの20代~40代の頃を振り返っていただいて、当時のエピソードや、こういうことやっておいてよかった、などのお話をお伺いできますでしょうか。

塩谷さん:20代の頃は、家庭用ゲームをずっと作っていました。それまではベーマガという雑誌を買って、BASICでゲームを作っていた日々。しばらくするとWindows 95が登場する、辺りの時代です。

この会社に落ち着くまでは、長い間プログラミングから離れていて、20代の初めは環境を転々としていました。インターネットが繋がるようになり、ゲーム会社の人と接点ができると、「手伝ってみないか?」とお誘いを受けて、ゲーム作りを始めたのがきっかけです。

始めた当初は、「塩谷さんの書くコードは信用ならないから」ということで、当時の会社の社長から全部見られる経験をしました。企画から雑用まで、ゲームを作る工程のほぼ全てに関わったので、会社に住み込みみたいな状況。月の残業300時間とか普通でした(笑)。机の下に布団敷いて、近くの銭湯に通う生活は、今となってはいい思い出です。

ーそこまでの残業は、最近聞かなくなりましたね...。

塩谷さん:自己認識のアップダウンが激しかったのが30代。結婚することになって、転職していくつかの会社をうろうろしていたのですが、会社の外に出たら、無敵レベルでよくできた。一方で、Web会社に行って、コミュニティの中に入ると周りはすごい人ばかり。

上がって下がってを繰り返したので過度な自信が無くなり、自分の実力をちゃんと理解した上で転職ができたので、変な卑屈さが出なくなりましたね。

40代になると、色々なことをやり始めました。40代になってすぐにエンジニアの採用担当に指名されて、やってみたら意外と楽しかったんです。エンジニアとしての腕は並なのですが、思ったよりも自分は人と話ができることを知って。

並のエンジニアの腕の人が、採用担当もできるということでレアリティが出ました。コードを書くだけでない仕事もさせてもらえるので、採用の仕事もしながらの方が性に合っていました。40代で新しいチャレンジができたから、今こうして幅広い仕事ができているんだと思います。

ー渡辺さんはいかがですか?

渡辺さん:欲張りすぎないように気を付けながら、何か物事をやる際に1個チャレンジを入れることは心がけてきました。出てきた話に対してとりあえず手を上げたり、頼まれたことは何でも安請け合いしたりですね。

たまたまあるコミュニティのメーリングリストで、本の企画の話が出たんですね。それまで1度も本を書いたこともなければ、文章を書くこと自体得意ではなかったんですが、「書きたいです」と手を上げました。結果、本を書くきっかけにまで繋がり、この機会がなければ今こうして話すこともなかったかもしれないです。

増田さん:個人的には、20代・30代の若いうちに、基本的な仕組みを理解しておくことをオススメします。下から上までの全部の段階を積み重ねる必要はないですが、基本的な部分は単純な原理であることが多いんですよ。

例えばビット演算を触る際に、機械語のアセンブラが使えると、メモリ管理の仕組みがどれだけ複雑になっても、メモリとはどういうものなのかという原理を理解できているだけで、習得効率は全然違う。

私はUnixのシステムコールを使った、ミドルウェアを作るような仕事を多く経験したのですが、Unixのプロセス管理の仕組みを理解するために一生懸命格闘したんですね。そんな基礎を習得していると、Dockerとかコンテナを見た時に「これはプロセスの発展型だ」と繋がりがあることに気づく。

最初はDockerを見た時によく分からなかったのですが、Dockerにpsコマンドがあるのを見つけた瞬間に「あーなるほど、プロセスステートなのね」と理解できたり。

基本をきちんと理解していると、新しい技術にチャレンジした際にうまく繋がっていく。技術の習熟効率はどんどん上がると思うので、基本理解はやる価値あると思いますよ。逆に表面的な流行りのものを、次から次へと追いかけていくのは効率が良くない。賞味期限が短すぎますからね。

ー新しい技術に取り組むと習得した気になりますが、それ1年後に使ってるか?と言われると、意外に使えていなかったみたいな話よくありますよね...。ありがとうございます。皆さんが今後見据えていることや展望などお伺いできますでしょうか?

増田さん:これからもプログラムは書き続けたいと思っていますし、色々なことを経験しているからこそできるような、難しい設計にチャレンジしたいですね。早くサクッと作れちゃうものは、若い人にどんどんやってもらえたらと思いますので。

残念だけど、いい設計してもお金にならないんですよね。でもお金だけもらえて、雑な設計を任せられるような仕事は絶対にやらないですし、「もっといい設計のために」こだわれる仕事がモチベーション。自営で仕事をしていますから定年もないですし、仕事があり、楽しめているうちは続けていきたいと考えています。

塩谷さん:増田さんが超かっこいいこと言ってくれた後で恥ずかしいのですが、楽したいです(笑)。プログラマーの三大美徳「怠惰・短気・傲慢」ってあるじゃないですか。そういう意味でも楽したいですし、仕事をして生きていく上で、早く一番質の高いものを作れるようになりたい。

面倒なことや辛いことを排除するために今までの経験を活かしたいですし、エンジニアや採用担当をしてきた経験は、すごく大きな武器になっています。仕事を早く完遂させるために、若いエンジニアをまとめる必要があれば、道を整えていくようなフォローもしていきたいですね。

渡辺さん:これからもエンジニアを続けていくと思います。今の会社に入ってこの4月で3年になりますが、それまでは仲間と会社を作ったり、自分で会社を作ったりしたこともありました。

それらを辞めて今の会社に入ったのは、技術のことだけを集中してやりたいと思ったからなんです。役員や社長をやると、純粋に開発のことだけを考えてられないじゃないですか。50歳を迎えて、「あと何年コードを書けるかな」と考えた時に、なるべく技術のことだけを考えて過ごしたいという結論が出て、今に至ります。

立ち上げて間もない事業部なので、まだ管理業務をすることもありますが、なるべく開発に振り切って仕事ができるように社内で動いています。定年になっても、仕事さえあれば続けていけるといいなと思っています。

ーお三方の、素敵な抱負の数々をありがとうございます。ちなみに、渡辺さんはコンスタントに勉強を続けられているのでしょうか?

渡辺さん:昔は全然早起きできなかったのですが、年を取ると朝早く起きれるようになりました(笑)。コロナ禍になって外に酒を飲みに行かないようになってから、毎朝5時前後には起床する。朝ごはんができる7時までに、立て込んでいる仕事をこなしたり、「何かチャレンジする時間にする!」と決めて勉強に取り組むこともありますね。

先程も触れましたが、なるべく手を動かして実践しないと身につかないタイプなので、新しい技術に取り組もうとリファクタリングしたり、プロダクションに近いコードを書いてみたり、チャレンジを進めています。

ー最後に、お三方から一言ずつメッセージをお願いします。

渡辺さん:とりあえず手を上げようとか、安請け合いをしようという話をしたのですが、それらに加えて執念とか、諦めない気持ちも大事だと思います。諦めなければ、何をしても失敗にならないですし、継続できるとウリになると思います。皆さん頑張りましょう!

塩谷さん:40~50歳だからって、気おくれせずにやりたいことをとことんやって楽しんでほしいですね。私は50歳が見えても、まだ大人になった実感がありません(笑)。年齢を重ねた分だけの経験はあるはずなので、うまく活用できると若い頃よりも、ラクして楽しくやりがいのある仕事ができるのではないかと思います。

増田さん:40歳、50歳になったからって、大きく変わったことなんでなくて、連続してるだけだなという実感があります。例えば今、技術を学ぶことが億劫になってきていたら、それは危険信号かもしれない。興味があるなら、50になっても60になっても、続けていけると思いますよ。

ーありがとうございます!引き続き、Q&Aに移っていきたいと思います。

後編へ続く

findy-code.io