私が競プロerと働きたい理由

競プロerとは

この記事で「競プロer」といえば、AtCoderとかCodeforcesとかのような、1~2時間で4~6問題に取り組む形式のコンテストに頻繁に参加しているプログラマのこととします。

競技プログラミングには、ゲームAI(CodingGame)とか最適化(TopcoderのMM)の分野もありますし、それらが得意な人とも働きたいですが、この記事ではスコープ外とします。

競プロerを特徴づける要素と業務にどう役に立つか

競プロerにもすごく強い人から初級者まで幅広い人がいるので、特徴を獲得するランクと特徴をまとめました。 競プロerに馴染みの深い色で言うと、SS=橙、S=黄色、A=青、B=水色です。

ランク 競プロerの特徴 業務上の役立ちポイント
S 難しい問題が解ける ほとんどの人が解決できない問題を、短時間で解決できる
S データ構造を適切に選択できる 計算リソースを大幅に削減することができる
A~S どう制約を変化させれば高速化できるか考えられる 現実の問題を考えるときに重要
A~S 高速化の勘所を把握している ロジックの高速化を短時間で行う事ができる
A アルゴリズムを適切に選択できる 闇雲に調べるより、圧倒的に時間短縮になる
B~A 時間をかければアルゴリズムのボトルネックが特定できる アルゴリズムの改善を始められる
B~A 日本語で書ける任意のロジックをC++で実装できる どう書けばいいか分からなくて悩むことがない
B 肌感覚で計算量の見積もりを行える 無限に終わらないクエリを投げなくて済む
B 短時間で実現したい処理を実装できる 高速に仮説検証を回せる
B 趣味としてプログラミングをしている 今後も成長が期待できる

Bまではどこの会社でも嬉しい特徴で、A以上は会社によってはオーバースペックでしょうか。

AtCoder Jobsを見てみる

AtCoderJobsの中途採用で要求ランクA以上の求人について、業務内容を見てみましょう。

要求 会社名 業務内容
S 株式会社科学計算総合研究所 数値計算、形状処理および機械学習
A 株式会社フィックスターズ 自動運転を実現するためのソフトウェア開発
A 株式会社フィックスターズ 機械学習アルゴリズムを利用したソフトウェア及びソリューションの開発
A 株式会社フィックスターズ マルチコアプロセッサの性能を最大限に引き出すソフトウェアの開発
A アスプローバ株式会社 スケジューリングアルゴリズムの改善
A フォルシア株式会社 膨大で複雑なデータを対象とする検索システムの構築
A 600株式会社 無人コンビニ『600』の開発
A SoundHound Inc. 音声認識プラットフォームの日本語対応

それぞれの求人ごとに特徴はありますが、実装難度の高い課題に取り組んでいますね。 高速化・高度なアルゴリズムだけではなく、純粋にC++を使いこなせるという部分も評価が高いようです。

要求B以下は、ゲームAIや最適化といった能力に秀でたプログラマを採用したい企業が多めでしょうか。

やはり、AtCoderJobsに求人を出している企業は競プロerを採用したいようですね!

つまり?

仕事できる同僚とワクワクする課題に向き合って働けるの最高やん?

宣伝

21卒向けサマーインターンを募集しています。今週末が募集締め切りです。

FORCIA Summer Internship 2019:フォルシア株式会社