どんなライフステージでも動ける技術力を! 潮流の激しいIT業界から考える私たちのキャリアプラン

vaaaaanquish at office

はじめまして、河合俊典(ばんくし、@vaaaaanquishと申します。
普段はヤフー株式会社にて、検索やレコメンド、異常検知などの機械学習システム関連業務に携わる、いわゆる「機械学習エンジニア」と呼ばれる仕事をしています。

私は、技術研鑽(けんさん)の傍ら、はてなブログやテックイベントなどで、自分が持っている技術やキャリアについて、たびたび発信しています。本記事では、技術やキャリアに対する私自身の考え方と、それらを発信する先に理想としている世界観を、皆さんに伝えることができればと思っています。

若輩者ではありますが、何卒よろしくお願いします。

ライフステージの変化に対応するため「今やる」人であり続ける

はじめに、私自身のキャリアやライフステージ、技術に対する考え方を書いていきます。私のキャリアや経験についてある程度ご理解いただいた上で、その先に考える世界観について伝えられればと思います。

ギリギリで対応するライフステージの変化

恥ずかしながら、私のキャリアやライフステージへの対応は、いつもギリギリです。

私は昨年、転職しました。転職時にもブログを書いていますが、この転職理由の大きなポイントは「妻が体調を崩し、金銭面も含めて余裕が必要になったから」でした。

今の日本のソフトウェア市場はまだ発展途上で、転職で2倍・3倍の給与が提示されるような需要があるエンジニアでも、社内で給与を上げていくことはとても難しくなっています。もちろん「給与」とは評価と報酬の形の一つでしかないので、各社それぞれの事情もありますし、全体として今後改善していくだろうと予想されますが、当時私が打てた手立ては、転職によって年収を上げることでした。

前職では、1人暮らしを仮定すれば不満のない報酬をいただいていましたし、技術的な不満も少なく、裁量があり、非常に優秀なメンバーと共に開発できる環境が整っていました。しかし、ライフステージの面で妻が仕事を辞め、共働きでなくなったことをきっかけに、急遽転職活動をすることになったのです。

いくつかの会社を受ける中で、「将来的にどういうキャリアを歩みたいか?」という質問をよく受けました。「今はとにかく、現状の維持を優先したいです」と答えるしかありませんでしたが、それでも縁があってかヤフーで働くことになりました。これまで技術研鑽を行ってきた自負はいくらかありますが、それによって企業を選択できる立場にもなれると感じた転職活動でした。

マネージメント職への転身も技術知識の収集が支える

転職後はいくたびかの配転により、現在はサイエンス部のマネージャー職も担っています。

多くの企業ではエンジニア職においても、能力を評価され、経験と知識が蓄積されると、それらを生かし、より若い社員に伝えるため、他社員のマネージングを任されることがあります。広く複数の社員に知見を届け、高い価値を生み出すことから、多くの場合、評価・報酬も高くなる傾向にあるでしょう。

技術的な作業と研鑽が好きで仕方ない「エンジニア脳」とも呼べる人たちにとって、技術向上の時間を他人のマネージメントに取られることは、ある種の苦痛となることもあります。そういったことから、ヤフーでは、技術一筋のプロフェッショナルであってもマネージメント職と同等の評価・報酬を得られるような、また自分に合わないと感じたらそれぞれを行き来できるような人事制度が整っています。

私自身は、転職時に技術的な面で評価があったと認識しており、マネージメント職には大きな興味を持っていませんでした。興味がなかったこともあり、制度の整っているヤフーにいても、キャリアの一部として認識していなかったのだろうと思います。

実際にマネージメントを始めたときも、覚えないといけないことが大きく変わり、苦労しました。マネージメントにおいては、機械学習モデルや実用事例を深く知っているだけでなく、サービス全体や、その背景、開発者の心情までを広く知っている必要があり、今でも試行錯誤を繰り返す日々です。

そんな中でも、収集し、学んできた技術知識は、私を大きく支えています。Webサービスにおける機械学習モデリングでは、間違った統計量の利用がKPIに大きく響くことに繋がりますし、近年では信仰・信条・ジェンダーなどのバイアスを、機械学習モデルからうまく取り除くことも重要とされています。

こういった知識を集め、周囲に伝え、プロジェクトを進められる楽しみもまた、エンジニアとして一興でもあると今では感じています。

ギリギリでも乗り越えられるように技術を蓄える

私は、キャリアへの対応こそギリギリですが、キャリアについてまったく頓着しないわけではありません。対外的な変化に応じて自分がキャリアをコントロールできるよう、常日頃から「ソフトウェア技術」という武器を磨くことに重きを置いています。

エンジニアという職は、一般的な言い方をすれば「手に職を持った仕事」の一つです。しかし、それは反面として、手に持った技術の需要がなくなったときに職がなくなる仕事だということを示しています。中でもソフトウェアエンジニアは近年、流行の遷移スピードが加速しており、2〜3年でライブラリや言語の需要が変化しています。

私が専門とする機械学習も、特に流れが速い分野の一つです。Deep Learningのフレームワークは月単位で変化しますし、論文は毎日のように新しいものが出てきます。ここ数年はPythonが牛耳っていますが、Pythonの速度や記法などの課題は分野内でも常に指摘されており、よりフィットした言語が出てくれば数年で移り変わることでしょう。

実際、最も著名な機械学習の国際学会であるNIPSにおいて、2017年には3,240本もの論文が出ています。私自身、細分化した上で、興味ある論文を読むのに手一杯という状態です。「この世界のスピードについていけるだろうか?」そんな不安を私も日々抱いています。

そういったこともあり、ある特定のライブラリ・言語を扱うことができ、ものが作れるとしても、その先5年のキャリアは保証されないと私は考えています。

それに対して、「キャリアが大きく変化したとしても、モノの調べ方、考え方、論文の読み方、数学、英語などは、どのステージでも役に立つ」ということは、読者の皆さんも直感的に理解できるのではないでしょうか。

基盤となる知識をさまざまな分野から何度でも学んで深める

そういった「基盤となる知識」は、単一の技術から深く得られるものではありませんし、作っただけ・読んだだけ・聞いただけで身に付くようなものでもありません。そのため、私は気になったすべての技術について、触る・やってみる・行ってみる・公開してみる・登壇してみることを常に心掛けています。

それは、機械学習以外についても同様です。Webの技術を学ぶためなら、新旧かかわらずフレームワークでものを作って公開もしますし、フレームワークを作ることもあります。IoT機器についても、はんだ付けからソフト制作まで行って、結果を持ってIoT勉強会などで登壇していますし、家のIoT化は非常に好きな分野です。セキュリティ技術についても、過去に経験のない言語についても、ハードウェアもソフトウェアも同じです。知人に「あれは面白いよ」と言われるたびに、はてなブックマークでホットエントリになるたびに、私は初学者にも再学習者にもなります。

基盤となる知識は、広く何度でも学ぶことで、さまざまな視点から深まっていきます。ハードウェアについての知識があるソフトウェアエンジニアは、考え方一つとっても、ものを作る上での考えられる範囲が大きく違います。インフラの物理的な特性についてソフトウェアエンジニアが考慮しないでよい世界は非常に幸せですが、さまざまな分野を橋渡しできるエンジニアも同時に必要になるものです。

また、一般に「古い技術」「遅れた技術」と呼ばれるものは学ばなくて良いかと問われれば、そうではありません。それらは最新の技術に至る過程であり、背景や潮流を知ることで次の技術を理解する手立てとなるでしょう。実業務においても、すべてがモダンな技術で作られている環境はそれほどなく、レガシーな技術に支えられている場面も数多く存在しています。

自分にどんなキャリアが舞い込んでくるか、どこで失脚するか、私には到底見当がつきません。変化の早いIT業界において、私は「キャリアの先を見据える」のではなく「キャリアの幅を常に広げ続ける」ために、さまざまな分野から技術を蓄えるようにしています。

やらない人より「今やる」人であり続ける

技術を蓄えるために最も大事にしているのは、「今やる」ことです。

エンジニアの知人に「これ面白いですよ」と技術を直接紹介したとしても、実際に触ってくれる人の割合はとてもとても低いと感じています。未経験の言語やフレームワークの話を聞いて、その場でインストールを始められる人が何人いるでしょうか? 大多数は、無意識にやらない言い訳を探します。

しかし、極端なことを言えば未経験の物事は、今やらなければ、切羽詰まった環境にでもならない限り、一生やらないままでしょう。

私は昨年、あるshellを仕事中に同僚から勧められました。そのとき「面白い」と感じた私は、その場で目の前のパソコンにインストールし、今ではコントリビュータとして活動しています。

そのshellを開発する中でも、さまざまな開発技法やツール、英語でのコミュニケーションなど、とても多くのことを学んでいます。それまではshellというソフトウェアに対して大きな関心を持っていませんでしたが、今では他のshellについて調査することも多く、その知識は他業務における自動化作業で非常に役立っています。

もちろん「今やった」結果に、理解できないこと・なじめないことの方が多いのは事実です。初めて見て触ることの難しさも私は知っています。しかし、それらは「何が難しいかを知れた」ことと同義です。その技術の難しい点を理解しておくことで、タスクのマネージメントや技術選定など、利用できる場面がたくさんあります。

「今はまだ」「いつかやろう」ではなく、常に「今やろう」という気持ちでいるためには、そこに意識を向け続けるしかありません。それは、目標とするキャリアに向けて計画し勉強するというよりは、冒頭に書いたような対外的な変化にいつでも対応できるよう技術面での研鑽を続けるということで、それこそが身を助けると考えているからです。

気になっているにもかかわらず、手を付けないまま引きずっている技術があるなら、まず目の前の電子端末を利用して調査するところからでも、今すぐ始めてみましょう。それが自らのキャリアにつながっていくと、私は考えています。

vaaaaanquish at home
自宅でも趣味の開発に勤(いそ)しむ様子

エンジニア全体と自分が幸せになる社会のため情報を発信し続ける

私は、自分のキャリアやライフステージで起きたことや、その考え方、それらを支える技術について、よくブログやイベントで発信しています。

それはひとえに「自分のため」です。発信へのフィードバックが成長の糧になるということもありますが、最終的に目指している世界観は「エンジニア全体が幸せになり、自分自身も幸せになる」というものです。

「社会全体のため」であり「自分のため」にもなるサイクルを自覚する

まず、私にはソフトウェアエンジニアリング、もとい各技術分野の発展が私自身を豊かにするという意識が根底にあります。

もちろん技術のすべてが価値を生み出し、人類の豊かさに貢献するとは限りませんし、一生の中で私を直接的に幸せにしてくれることはないかもしれません。しかし、社会の間接的なネットワークを通じて、自分や家庭が幸せになる確率は高くなるでしょう。例えば、私が知らない技術を利用したスマートフォンアプリを妻が使って、良い体験をし、それが家庭の居心地の良さに繋がるかもしれません。

そういった機会を失わないため、私自身の技術も研鑽していますし、社会全体を盛り上げる活動もしています。最近ではpixivFANBOXPatreonで個人を支援したり、OSSにも積極的にコミットしたりしています。それは、エンジニアとして私ができる、社会のサイクルを潤滑に回す手段の一つだからです。

研鑽によって私自身が豊かになれば、さらに技術分野や若い人に投資できるようになります。若く新しいアイデアを持った人々が活躍し、技術分野に発展をもたらすことで、社会全体がまたいっそう面白く、便利になっていくでしょう。

もちろん、私が他人から享受することもあります。私たちエンジニアと呼ばれる職業は、そのサイクルの一部にいることを自覚し、貢献していかなければなりません。

ブログや技術発信から刺激を受けて挑戦してもらえるように

私が技術的な貢献だけでなく技術情報の発信にも力を入れているのは、私自身の技術ポートフォリオという一面も少なからずありますが、根底には、見た人にも技術発展のサイクルの一部に入ってほしいという思いが強くあります。

エンジニア業界の面白さや複雑さを伝え、刺激を受けた人が一人でも多く業界に入ってくれることを期待して、思想について発信することもあります。まだまだ若輩で辛辣(しんらつ)なフィードバックを受けることもありますが、先人の失敗こそ偉大な成果となるこの業界ですから、フィードバックも合わせて伝われば良いと、反省した後に、考えます。

ともあれ、自分が今やっていることに対して「作った」で終わらず、同じように挑戦し、開発を続けてくれる仲間を集めることも、エンジニアとして大事な仕事の一つだと、私は考えています。

エンジニアのロールモデルがたくさん見つけられる世界

私が理想としているのは、「技術・キャリア・ライフステージそれぞれの情報が分野を限らずたくさん発信され、検索によってあらゆるロールモデルが見つけられる」といった世界観です。

既にソフトウェア開発の分野においては、知見・ノウハウが当たり前のようにWebで発信されています。近年では技術書典などのイベントを経由して、知見がさまざまな分野で見つかるようになりつつあります。

技術的な情報ももちろん大切ですが、エンジニアとして成長するにはその技術を身に付けることが必要不可欠であるという前提に立つなら、そのための「環境」が必要です。周囲のエンジニアの技術レベルはもちろん、家庭・金銭面・健康状態……さまざまなライフステージの要因が技術の研鑽に影響することは、私自身の経験からも否定できません。

そのため、技術だけではなく、キャリアやライフステージに関する情報ももっと発信され、見つけられるのが理想の世界と言えます。

プログラミングはこれから義務教育でも必修化され、論理的な捉え方を学んだ若い人たちが続々と出てくるでしょう。エンジニアという職は、分野を問わず、より盛り上がるであろうと私は考えています。

これからを担う若いエンジニアが、自分に似たロールモデルを見つけ、それに沿って行動し、差分を見いだし、差別化し、一気に成長できる。そして、成長したエンジニアが、前述のような社会全体への貢献に繋がるものづくりや活動を行ってくれる。それを強く望んでいます。

おわりに

私の思想について長々と書かせていただきましたが、いかがでしたでしょうか。

私は、ソフトウェアエンジニアリングに触れてきた期間こそ長いものの、まだまだ若輩者で、キャリアに対するこの考え方では将来的にこういう場合に立ち行かなくなるだろうとか、技術のこういう面も見るべきといった意見もあるかと思います。

そういった先輩諸氏のフィードバックも合わせて若いエンジニアに伝え、より良い形に昇華させていければと思っております。ぜひとも、御指導御鞭撻(べんたつ)のほど、よろしくお願いします。

ご一読いただきありがとうございました。

河合 俊典(かわい・しゅんすけ) vaaaaanquish / vaaaaanquish

vaaaaanquish profile icon

高専より大学編入を経て、大学院まで機械学習の理論研究を行う。現在はヤフー株式会社にて機械学習モデリングチームのリーダーとして日々開発に従事。業務の傍ら、機械学習勉強会の主催や登壇を行い、機械学習関連技術の研鑽と発信に努める。Kaggle Expert。
Webサイト:vaaaaanquish