- デリバリーマネージャー
- Webアプリエンジニア
- オープンポジション(全職種)
- Other occupations (3)
- Development
- Business
- Other
こんにちは!オプティマインドの採用チームです!
今日は社外のエンジニアのみなさんにも興味を持っていただけることの多い弊社の部活、「競プロ部」について、活動内容や面白さを参加メンバーに聞いてみました!
《そもそも「競プロ」ってなに?》
競プロとは「競技プログラミング」の略称で、与えられた問題の答えを制限時間内に出力できるプログラムを作成する速度を競う形式のプログラミングです。趣味の一環として競プロに取り組んでいる方もいらっしゃいますし、AtCoderJobsという競プロerのための就職・転職サービスであったりと就活などの文脈でも競プロが活きる場面が増えてきているような印象を受けます。
実際に株式会社オプティマインドにもAtCoderJobs経由で入社したメンバーもいます!!
部員メンバーである伊豆原(いずはら)さんにインタビュー
ーまず、競プロ部のメンバーについて教えてください!
伊豆原
活発に活動しているメンバーが3名います。
私と最適化チームの小島さん・GIチームの婦木さんです。
加えて、関係するイベントなどでは、SA前処理チームの川口さんにも参加いただいたり、過去にはSA配送分析チームの津守さんとSA計画実行チームの長井さんなどにも参加いただいています。
CTOの柏原さんにも参加されていたこともあります!
ー私もよく、競プロのSlackチャンネルを覗いています!改めてなんですけど、競プロ部というのはどんな活動をされているんですか?
伊豆原
競技プログラミングに関するアクティビティをやっておりまして、具体的には、まず隔週で バーチャルコンテストという形で、模擬的なコンテストをしています。
これは時間を区切って、公式のコンテストの過去問等を使って、 時間内で回答を競い合うという会です。
ーなるほど、よく競プロSlackチャンネルで「バチャコン」と言われているのは、「バーチャルコンテスト」のことなんですね
隔週でバチャコンの参加を募っています
伊豆原
そうです。
また、そのバチャコン(バーチャルコンテスト)とは別に、隔週で行っているのが、勉強会のような形式です。
ここでは、みんなで一緒に何かの問題に取り組んだりとか、最近あったコンテストの振り返りをしたり、1時間程度話し合っています。
ーそもそものこの興味、競技プログラミングの面白さみたいなところを改めて伺ってもよいでしょうか?
伊豆原
素朴なところだと、まずアルゴリズムを知ることができることが一番です。
また、コンテストの中には大きくわけるとアルゴリズム部門的なところと、 ヒューリスティック部門という2種類あります。
アルゴリズム部門では、限られた時間内に解けるかどうかで、時間制限のある中、頭を使う機会を味わうことができるという、いわば挑戦する面白さです。
ー時間制限のあるクイズ・謎解きのような面白さですね!
伊豆原
一方ヒューリスティックだと、1週間ぐらいのコンテストもあります。
こちらだと瞬発的に問題を解くというより、粘り強く取り組めば、結構成績が上がるものもあります。
こちらはアルゴリズム力だけではなくて、その時の発想力と観察力等が問われたりするので、別の面白みもあります。
ーちなみに伊豆原さんはどちらのタイプがお好きですか?
伊豆原
最近はこちらの長い方ばっかりやってますね!ヒューリスティックって呼ばれてる方です。
ーこうしたコンテスト問題について、部活として「みんなで取り組む」というのは、一人でやるのとはやはり違うのでしょうか?
伊豆原
そうですね、こうした問題についての回答の方法は一つではないんです。
なので、お互いにどういうアルゴリズムで解いたとか話ができるというのが一番ですね!
ヒューリスティックが特に顕著ですね。
1週間分の問題ですので、結構それぞれ手法がバラバラだったりするんで、お互いに「どういう風に解きました?」とか、「週間どうやって取り組んできました?」とか共有できたら、それが知見にもなって、自分たちのメリットになってるかなっていう形です。
みんなで感想を話し合ってみたり…
ーちなみに、出てくる課題って、素人の私が聞いたらチンプンカンプンな感じのものなんでしょうか?
伊豆原
いや、そんなこともないですね。結構問題自体は割とどなたでも理解できるものが多いかなと思います。
ーそうなんですね!機会があれば、問題だけでも見てみたいなと思います。部の活動の目的は、こうした隔週ごとのイベントを楽しんでくということですか?
伊豆原
そうですね。一応レートという形のランキングを上げることは目標にはしているんですが、基本的にはそうやって全体で知識を共有しながら楽しむことが目的という形です。
ー今後の活動の目標みたいなものはありますか?
伊豆原
明確には定めていませんが、団体戦に出たみたいね!と話しています。
ー団体戦もあるんですね!
伊豆原
今年は出られていませんが、去年、一昨年と3人ぐらいのチームで、アルゴリズムの問題を担当を分けて、どれぐらい解けましたかっていうコンテストに出てたりします。
ーでは、今後部員はもっと増やしたいですね!
伊豆原
そう思っています!
やっぱりバーチャルコンテストにしても人数が多い方が盛り上がります。
ヒューリスティックにしても、人数が多いといろんな意見を聞くことができますし。
今後メンバーは増えてほしいなと思いますし、ぜひ積極的にコンテストに出てほしいなと想います!
ーちなみに、伊豆原さんは弊社の「最適化チーム」にいらっしゃいますが、競プロの活動が日常業務に活きているなと思うことはありますか?
伊豆原
それは結構活きているなぁと思っています!
ヒューリスティックだと、やっぱり結構なソース量になるんで、ゼロデブだと1000行とか2000行とかある程度設計とかをちゃんとしないと、結局自分の中でもアイデアを膨らませられないんです。
アイデアがあってもそれを実装しきれないとか、そういうことに陥ってしまいますので、ある程度、デザインとかをして綺麗にしていかないといけない。それはもう業務とまさしく同じ視点になると思います。
もちろん単純にアルゴリズムについて詳しくなるというだけでも。業務上の問題に対する視野が広がるというのは非常に感じておりますので、実際かなり影響は受けてると思っています。
ーそれはなんか伊豆原さんが最適化チームだからでしょうか。
伊豆原
私の個人的な意見としては、他のチームでも十分に役立つ部分があると思いますね。
どんなプロダクトもやっぱ り問題に対していろんな変数を用意して、それを駆使して解くことがあると思います。そうすると、「どういう風にその変数を管理したら楽か」とか「後から見てわかりやすいか」とかを意識する必要がありますよね。
そういう面ではかなり、役に立つんじゃないかなと。
ーなるほど!確かにそういった思考を整理する週間だけでも、十分仕事に活きてきそうですね!
本日はありがとうございました!
《最後に》
このインタビューのすぐあと、伊豆原さんはAtCoderのHeuristic部門で黄色ランクになったそうです!
また、伊豆原さんは競プロ活動に関連した記事の投稿などもされています!
ダブリングによる接尾辞配列(Suffix Array)構成 in PyPy3 - Qiitaこの記事はOptimind Advent Calendar 2023の23日目の記事となります。こんにちは。株式会社オプテqiita.comオセロで試すMiniMax法とかAlphaBeta法とか - Qiitaこんにちは。株式会社オプティマインドの伊豆原と申します。最適化チームに所属しており、また社内部活として競プロ部にも所属してqiita.com
弊社のポジションはもちろん、「競プロ部に興味があるな〜」「競プロ部の人と話してみたいな」という人はぜひ、カジュアル面談でお話ししましょう!!