見出し画像

入社1か月の新人が競技プログラミングのバーチャルコンテストを企画するまで


はじめまして。2020年4月入社の仁木美来です。

新人研修期間にて、同期の佐藤、金子、菊地、戸田、本馬とともに、競技プログラミングのバーチャルコンテスト(通称:バチャコン)を企画しました。

元々競技プログラミングを行っていた私が思いついたアイデアに、同期からの良い反応と周囲の後押しがあり始まったバチャコン。最終的に新人研修期間を通して全7回を開催することができました!

私はOJT期間に入りましたが、新人研修は「とても楽しい」期間でした。すでに同期が恋しくなるくらいです(笑)同期は60人と多く、リモートでの研修ではじめはコミュニケーションに不安もありましたが、積極的な同期ばかりで、色々な企画を通じてお互いの距離がどんどん縮んでいきました。

新人期間中、またリモート研修という前例がない中で最初に立ち上がった企画がこの「バチャコン」です。今回は、私から開催に至った経緯や、会社の中での協力体制などについて話していきます。具体的な問題選択や解説方法等は経験者的な視点から佐藤さんがテックブログにTipsをまとめています。

===

1.競技プログラミングとは

パズルのような問題を時間内にどれだけプログラミングで解けるかを競うゲーム(競技)です。「AtCoder」や「Codeforces」というウェブサイトで、オンラインコンテスト形式の大会がほぼ毎週開催されています。

HACK TO THE FUTURE ※でも利用している「AtCoder」では、どれだけ難しい問題がどれだけ早く解けるか、によって8段階のランクがあり、上から赤、橙、黄、青、水、緑、茶、灰色の色で表されます。赤は世界レベルの選手、青は世間的にアルゴリズムスペシャリストとして活躍できる実力、緑はソフトウェアエンジニアとしては優秀なレベルと言われます。

今回のバチャコンでは「AtCoder Problems」を利用しました。これは AtCoder の過去問を集めて、ユーザごとの提出・解答状況の管理や難易度推定を行っているサードパーティーのサイトです。ここにバーチャルコンテスト開催機能があり、これを活用しています。

※「HACK TO THE FUTURE」はフューチャー主催の競技プログラミング大会で過去3回実施しています。(2020年7月現在)
参考:AtCoder(競技プログラミング)の色・ランクと実力評価、問題例

2. バチャコン開催までの経緯と流れ

フューチャーではAtCoder Jobsでの求人掲載やプログラミングテストが選考ステップに含まれるコード選考の実施など、プログラミング力に注目した採用をしています。私も競技プログラミングの経験があり、コード選考で入社したうちの一人です。

実際に入社してみると他にも競技プログラミング経験のある同期がたくさん!私の競技プログラミング成績は、というと学生時代から緑コーダーのまま1000前後でレートが止まり掛けている状況でした。

同期の中には、青や水色コーダーの方が多く、せっかく自分よりも上のレートの人がいるので、競ってみたいと思い、同じように初心者で興味を持っている人のきっかけになればと思い、開催したら面白そうという発想から企画を始めました。

画像5

とはいえ、私の競技プログラミングの経験は浅いと考え、同期で最もレートが高く、研修をトップクラスの成績で進めていた佐藤さんと二人で組んでバーチャルコンテストを企画していきました。

私が設定した時間の長さ、問題の難易度は参加者に対して適切かどうか等を佐藤さんが確認して、よりよくなるように修正してルールを確定しました。また、バチャコン当日は佐藤さんに技術的なサポートをお願いしました。

企画がまとまった後は、同期へルールを公開し、参加希望のアンケートを実施。結果は同期60名のうち、20名以上が参加したいという嬉しい反応を得ることができました!

画像1


最後に、研修チームへバチャコンを開催したい旨を提案。業務時間外に社内ツールを利用して実施可能かどうかの確認やセキュリティの観点からの注意点の確認も同時に行いました。その時に研修リーダーはどのように思っていたのか、感想をもらいました。

■研修リーダー 田中さん
「バチャコンをやりたいんです」と言われたときは、とにかく驚きました。ですが、すぐに快諾したのを覚えています。競プロ経験者だけでなく初心者でも同期のフォローを受けながら気軽に始めることができ、アルゴリズムや機械学習の真髄に触れることで、技術への興味・好奇心を大いに高められると感じました。

3.バチャコンの実施内容

2020年7月2日までに全7回のバーチャルコンテストを開催しました。最初は試行錯誤の連続で、アンケートを踏まえ改善を重ねていきました。この記事では試行錯誤の多かった第1回から第3回の実施内容と改善事項についてお話しします。

●第1回バーチャルコンテスト
1回目は新人のほかに同時期キャリア入社の方にも声をかけ、60名の新人のうち22名と、キャリア入社の方1名が参加しました。

【ルール】
[コンテスト]50分で問題7問を解けるだけ解く
[解説]テレビ会議上に集まり、各問題で解けた人を指名して解説をしてもらう

解説では、どちらかというと時間いっぱいのぎりぎりで解けた人に問題を解説してもらい、補足したい人に補足してもらうことで、参加者の経験の有無によらず解き方を発言できる環境を心がけました。大変盛り上がり、開催後のアンケート結果では「楽しかった」、「2回目の開催も期待している」の声をいただいたので、定期的に開催することにしました。また、より楽しいものにしたいと思い、参加した人から一緒に運営してくれる人を募り、2名から6名に運営体制を強化しました。運営メンバーもアンケートと一緒に希望を聞いたので、アンケートを見る時はどんな反応だろうとドキドキでした。運営の手をあげてくれた人が予想よりも多く嬉しかったです。

ここからバチャコン運営チームとしての活動を開始し、コンテスト形式による競技プログラミングへのモチベーションアップ、初心者へ向けた競技プログラミングの知名度アップを目的として企画を進めていきました。

●第2回バーチャルコンテスト(アルゴリズム実技検定※過去問回)
運営チームメンバーで前回のコンテストにおける振り返りを行い、良かった点や改善点を出し合いました。その中で、役割分担を決め、今後の開催は週1回の頻度で行うことにしました。一番の改善ポイントは、解説を口頭だけでなく文章化するようにしたことです。一度解説を聞いただけでは理解しきれない人も、繰り返し解説を確認できるように、口頭で解説している人と別の人がGoogleスライドにその解説を記載するようにしました。

【改善ポイント】
・解説者が口頭で解説するのと並行して、別の人がGoogle スライドに解説を記載し可視化する

これらを踏まえ、第2回バチャコンではその週末に予定されていたアルゴリズム実技検定に向けて過去問を解くことにしました。新人の他に、競技プログラミング部の先輩社員、アルバイトの方々が参加し、合わせて20名程になりました。実施後アンケートでは今回のバチャコンを通じてアルゴリズム実技検定を知り、受けようと思ったという人も!
ただ、問題が複雑だったので、初心者にとっては難しい様子でした。運営で話し合い、次のコンテストより、回ごとに対象を変えようという方針になりました。

※アルゴリズム実技検定(PAST)はAtCoder社によるIT人材のプログラミングスキルを可視化を目的とした検定

●第3回バーチャルコンテスト(初心者向け)
第2回の振り返り結果から、初心者向けと経験者向けでコンテストを分けることを試してみました。初心者が継続的に競技プログラミングを楽しめるように、運営方法も以下の工夫を行いました。

【改善ポイント】
・解説の際は問題も読み上げる
・コンテスト中に初心者に向けたサポート環境を用意する(ヒントOKにする)

画像3

参加者側も慣れてきて、チャット上で質問と解答が活発になっていきました。最初は聞き役専門で参加していた人も、毎回参加するうちに慣れてきてマイクOnに。初心者も積極的に参加する雰囲気ができました。競技プログラマーであるアルバイト生3名も巻き込んで、解説に参加してもらうこともできました。

バチャコン開催は研修にもいい影響を与えていたと思います。その点についても研修リーダーに聞いてみました。

■研修リーダー田中さん 
実際に新人の多くがバチャコンに参加して、技術への興味・好奇心につなげていました。例年以上にアルゴリズムや機械学習の経験に長けた新人たちも多いと聞いていたので、純粋にどれほどの実力があるのだろうと楽しみな反面、技術格差というか、上位層と下位層でのスキルや学習機会に大きな隔たりができるのではないかと正直心配もありました。ですが、互いに高めあう関係を築き、バチャコンがリモート研修のスムーズな進捗や、新人というチーム全体のスキルの底上げに大いに貢献していたと感じます。

4.企画してみて思ったこと

フューチャーには新人・先輩関係なく手をあげて挑戦できる環境があります。私はフューチャーだからバチャコンが実現できたと感じます。

今回の企画は研修が始まって1か月ほど。イベントの開き方も分からない状態で、周りの協力が不可欠だったのは言うまでもありません。そんな中、新人間でバチャコンをやってみたいという思いから、研修チームへ企画の説明や相談をすると快諾。スムーズに開催できるように必要な確認も取ってもらいました。また、もっとよくしていきたいという想いからバチャコン運営チームという仲間ができました。参加者の反応が見れることが楽しく、運営時のやりがいになりました。

周囲の後押しと積極性で、結果的に7回のバチャコンが開催できたと感じています。バチャコンをやるために研修も「頑張らないと」という刺激にもなりました。そして一番は「このような機会はない」から逃さないぞ、ということがモチベーションの源泉でした。

新人研修ではバチャコンの他にも、自主的に技術や英語の勉強会や、ライトニングトークが企画されています。バチャコン開催により、研修の間でもさまざまな活動ができる雰囲気が生まれたことは運営して嬉しかったことの一つでした。さまざまなバックグラウンドを持った同期や手を挙げて挑戦できる環境は、私の行動範囲や視野を広げる良い刺激になっていると思います。

研修期間終了とともにバチャコン運営チームも一区切りとなりますが、今後は運営を社内有志活動の「競技プログラミング部」に引き継ぎ、更に発展させていく予定です!経験者による知識共有を行って切磋琢磨しつつ、多くの人に競技プログラミングへ興味を持ってチャレンジしてもらいたいと考えています。

フューチャーで働く人や環境に興味がある方はぜひ入社をご検討ください!

仁木



この記事が参加している募集

Twitterでも情報発信しています!