見出し画像

秘密計算エンジニアになるために「競プロ」は必要?ーー競プロ上位3%の「黄色コーダー」の中田涼介さんに聞く!

秘密計算の会社で働く人とはどういう人なのだろうかーー。
Acompany編集部では、Acompanyで働く”ひと”を紹介する連載企画「What are the people at Acompany like?」を連載している。第2回目は、今Acompanyが秘密計算エンジニアの採用において重要視している「あること」について注目した。
あることーー。それは、競技プログラミング(競プロ)の「水色コーダー」以上を採用軸の一つに置いていることだ。水色コーダーとは、上位15%に位置する「超優秀なプログラマー」だ。秘密計算エンジンの開発と、競プロのランクが直接結びつくということではないが、ある指標を持っている証拠となる。

💡 競技プログラミング(競プロ)とは
プログラミング技術を競う、プログラミングコンテスト。出題の要求を満足させるプログラムを正確に記述することを競うもの。国内では[AtCoder](https://atcoder.jp/)が提供するサービスが有名。AtCoderの場合、毎週コンテストが開催され、成績に応じてランクが決定する仕組み。ランクは灰色、茶色、緑色、水色、青色、黄色、橙色、赤色。赤色は上位0.3%しかいない。
参考:https://chokudai.hatenablog.com/entry/2019/02/11/155904

そこで今回は、水色よりさらに上の、上位3%しかいないと言われる「黄色コーダー」の中田涼介さんに、なぜ競プロを極めたのか、実際に競プロで培ったことが秘密計算エンジンの開発に役立っているのかどうか話を聞いた。

画像1

中田涼介
1996年北海道札幌市生まれ。大学院卒業まで北海道内で生活していたが、2021年6月にAcompanyへ入社。現在はテックリードとしてエンジン部分やクライアント部分を担当中。

※こちらの記事は2021年12月3日に公開しており、記載されている情報が異なる場合がございます。

「競技プログラミング」との出会いは。

同じ研究室の友人がきっかけです。学部4年生の時、国際大学対抗プログラミングコンテスト(ICPC)へ参加して、運良く予選を通過してしまったんです。そこから本気で勉強し始めました。

競プロって極め続けると玄人の世界になってくるんですよね。情報系学部の中でも、極めている人は3割くらいのイメージです。本当にプログラミングが好きで、自分の力を試そうと思った人しかいないですね。

そんな競プロを好きになった理由は、答えがすぐにわかるからです。中・高時代に数学が好きだったことも同じで、すぐに正か誤かがわかる。すぐにフィードバックがもらえる点が自分にマッチしていたのかなと思います。
一方で、研究の場合はなかなか答えが出ない。研究が嫌いというわけでは決してないですし、競プロを始めた以降も研究に力を入れたタイミングはありましたが、結局続けたのは競プロでしたね(笑)。

画像2

一方で研究にも打ち込んだとか。どのような研究をしていましたか。

最適化です。その中でも「多目的最適化」という分野を研究していました。最適化というと目的関数が1つのみの単目的が一般的で、多目的最適化はあまり主流ではないです。
なぜこの多目的最適化を選択したのかというと、学部1年生の時の研究室見学が大きいです。複数の事象から最適な目的を見つける多目的最適化と出会って、純粋に「面白そうだな」という感想を抱きました。複数のことをよくしないと最適化したい目的がよくならないという部分に興味を惹かれたんだと思います。
競プロにどハマりしつつも、多目的最適化の研究も面白くて、両方をなんとか両立させながら大学院まで卒業しました。

💡 最適化とは
制約条件がある中、複数の選択肢を組み合わせることで何らかの成果を出すとき、求める成果を最小または最大にすること。

💡 目的関数とは
最適化問題において,最大化あるいは最小化したい関数のこと。

 今では上位3%の「黄色コーダー」です。どれくらいの頻度で競プロに取り組んでいますか。

継続的にできていたかと言われれば怪しいですが、週に最低でも1問は解く生活を3年は続けています。週末にコンテストがあるので、どんなに忙しくてもこれだけは毎週欠かさず参加しています。
この成果かはわからないですが、修士2年の時に競プロ上位3%にあたる黄色コーダーになることができました。今は黄色と、その下の青色を行ったり来たりしている感じです。近い目標で、黄色を安定させたいなと思っています。

秘密計算エンジンを開発していく上で、競プロで培った技術や能力を活かすことはできますか。

競プロで培った論理的思考力を最大限に生かすことができます。
競プロを極めれば極めるほど、論理的思考力を自然と身につけることができます。そのため上位のランクであれば、この論理的思考力が身についているという証拠にもなります。
秘密計算のエンジンを開発する上で、この論理的思考力はとても重要なんですよね。
とはいえ、競プロで身につけた技術が直接、秘密計算エンジンの開発に結びつくかと言われればそうではないです。ただこの論理的思考が備わっていないと、秘密計算エンジニアとして働くことは難しいです。
例えば、Acompanyが採用しているMPC(マルチパーティ計算)の場合、従来の計算式の中に別の概念を組み込まなければ実装できません。これはなかなか複雑で、物事を体系的に筋道を立てて整理していく必要があります。ここで論理的思考力がないと厳しいですね。

画像4

 競プロ以外の趣味は。

ウイスキーですね。大学生の時から結構飲んでいて、スコッチとかバーボンとか。前、ハイボールグラスを購入して楽しんでいたんですが割ってしまって…。今は次なるグラスを探しています。

あとはゲームが好きですね。モンスターハンターとかファイアーエムブレムをけっこうプレイしていました。今は、社内でも流行っているポケットモンスターのダイヤモンド・パールのリメイク『ポケットモンスター ブリリアントダイヤモンド・シャイニングパール』をやっています。他にはドラゴンクエストとかいろいろやりましたね。

どんな人と一緒に仕事をしたいですか?

人として面白い人ですね。開発の場合、競プロプレイヤーが多いため、技術的な点では一定以上が保証されています。その中でも、人として一緒に働いていて、そして見ていても面白い人は最高ですね(笑)。

あとは、能動的に動けて知識習得に抵抗がない人。やはりスタートアップなので。社員であってもインターンであっても、こちらからいろいろと提案できないと進んでいかない。能動的に動くためにも、知識習得は必須です。特に秘密計算は次世代暗号技術と呼ばれるもの。日々の学びは必須です!

画像3

採用情報

Acompanyでは絶賛、フルタイムのC++エンジニアを求めています!社会人の方だけではなく、休学中の学生も活躍中です。興味のある方はぜひご応募ください!

もし興味のある方はこちらからカジュアル面談へご応募ください!

カジュアル面談も受け付けております!お気軽にどうぞ!


編集後記

12月21日(火)に開催予定、Acompany公式の競プロ大会「Acompany Programming Contest(APC) #1」の問題を作成した張本人。Acompanyにはたくさんの競プロ勢が揃っていますが、その中で「黄色コーダー」として尊敬されているのだとか。(はまだ)

優勝商品はApple Watchです!オフライン参加の場合は焼肉会にご招待!▼


この記事が気に入ったらサポートをしてみませんか?