PG BATTLE 2021「企業の部」4位に偶然にも同じチーム名で入賞された、Indeed Japan『4位』チームの皆様にインタビューを行いました!第1回目のPG BATTLE2018から4年連続で出場されており、なんと、2018、2019、2020、2021連続して4位に入賞されています。(補足:PG BATTLEで賞金が出るのは1位、2位、3位のみです)
そして今回、企業の部4位入賞チームには、Prizeスポンサーであるサイバージムジャパン様からのご厚意で「サイバージムトレーニング券(イスラエルのハッカーと対決する券)」の個別賞が贈呈されました。1人25万円相当で3人で75万円相当分という、優勝賞金の金額を遥かに上回るトレーニングとは一体どんなものだったのか?!サイバージムジャパンの田中様にもご参加いただき、PG BATTLEはもちろん、チーム名の由来、トレーニング当日の様子や興味深いお話をたっぷりお伺いしましたので、ぜひご覧ください!
●PG BATTLE 2021 ホームページ
https://products.sint.co.jp/pg_battle_2021
●PG BATTLE 2021 Twitter 結果発表会 まとめ
https://togetter.com/li/1800839
Indeed Japan『4位』チームのご紹介
(左)大橋駿介氏:かつおぶし担当
(中)三上和馬氏:せんべい担当
(右)中村謙弘氏:ましゅまろ担当
『4位』チームはPG BATTLE 2021「企業の部」最多197チームの中で、チーム名と同じ4位に入賞されました。合計点:235点/300点、タイム:184分5秒/270分、という好成績を残されています。(補足:PG BATTLE 2019からお三方のチームになられて連続して出場されています)
インタビュー:PG BATTLE 入賞までの道のり
PG BATTLE 2021の4位入賞、そして「イスラエルのハッカーと対決する券」の獲得おめでとうございます!参加の経緯と練習方法を教えてください。
(三上) 賞金が出て企業部門のあるコンテストは珍しいので参加しました。練習としてはAtCoderの問題を解いたりしました。
(大橋) 学生の部だと強い人が多いので敵わないのですが、企業の部だと賞金に手が届きそうだから出ようと思いました。4位だったから実際は届かなかったですが。(笑) 昔から競技プログラミング(以下:競プロ)のコンテストなどには出ていたので特別な練習はしていませんが、直前に準備運動としてAtCoderの問題を解きました。
(中村) メンバーから声をかけてもらったのがきっかけです。AtCoderのレーティングは僕が一番低かったので、一番簡単な「ましゅまろ」だろうと思っていました。間違えた時のダメージが大きいので、ミスをしないよう見直しをしっかりやりました。
(記者) 他のチームの皆さんも、見直しをどうするか?問題はあるようですからね。
(大橋) 例えば残り時間30分の段階で最後の1問を残している場合、それを解くのか、それとも解かないで見直すか?の判断があり、戦略的に時間の使い方を考える必要があります。そこがPG BATTLEの特徴的なところだと思います。
プログラミングをはじめたきっかけは?
(大橋) 父がパソコン好きで、小学生のころVisual Basic6と入門書が家にありました。自分が勝手にその本を読んでパソコンをいじって遊び始めたのがきっかけです。そして高校生のころには、自分用に英語の単語帳アプリを作りました。そういう経験があったので大学の志望は自然と情報系になりました。
(三上) 同じく、小さいころから家にパソコンがあったので、ホームページを作って無料スペースに公開していました。そのころプログラミングに詳しい小学生と知り合い、プログラミングを教えてもらい、自分用のアプリを作成したりしていました。
(中村) 中学生のころ家のお古のパソコンをもらって、いじっていたのが始まりです。その時はプログラミングにはハマりませんでした。当時は、あまり面白さを見いだせてなかったのと、プログラマーにはブラックな職業のイメージもあったので、なりたいとは思っていませんでした。ところが、大学院生のころにAtCoderに出会い、アルゴリズムや数学的なモノをやることが面白くなってきました。自分の代わりに問題を解くプログラムを作ることが面白く、競プロにハマりました。
(記者) 3人は理数系だそうですが、やはりプログラミングには理数系脳というのは有利なのでしょうか?
(大橋) プログラミングをやるようになって、数学が得意になったと思います。数学の問題を解く際にも、競プロの問題に変換して考えてみると、割とすぐに証明が書けた経験があります。アルゴリズムは数学に近いことをやっていると思うので、素養として理数系であると有利だと思います。
(三上) 競プロの難しい問題になると、数学の素養がないとロジックの正しさにもとづいたコードが書けないこともあります。やはりアルゴリズム的思考は大事だと思います。
(中村) 僕の高校時代は文系でした。大学入試のために数学を勉強したのですが、対策としては数学の問題と答えの組み合わせパターンを全部記憶して試験に挑む方法でした。むしろ、競プロを始めてから数学への根本的な理解が深まったといえます。
(三上) 分かる!僕も同じ経験があって、高校一年の時に競プロを始めた時は数学が一番苦手で・・・。二次方程式が解けなくて、解の公式を丸暗記してそこから因数分解していました。例えば「たすき掛け」とかは、何で人間がやるんだろう、解けないなって思っていたのですが、ある時、プログラミングを使えばコンピューターが自分の代わりに解いてくれる!ということに気づいたんです。僕のプログラミングでめっちゃ数学の問題解けるじゃん!と。そこでアルゴリズムに対するモチベーションが上がりました。そして自分の代わりに計算をしてくれ、しかも間違えないというアルゴリズムのパワフルさに魅了されました。
競プロを始めたきっかけは?
(大橋) 大学で「実践的プログラミング」という完全に競プロ布教用科目があって。(笑) 友達に誘われて授業を取ってみたら、会津大学の「AOJ(Aizu Online Judge)」の問題をひたすら埋めるというものでした。
(中村) リクルートの「CODE FESTIVAL」に参加したのが最初です。その時はプログラミングからだいぶ遠ざかっていたのですが、大学院の友達に誘われて参加したら繰り上げで本選に出ることができました。それが面白くてハマりました。
(三上) 僕は高専に入学したのですが、その学校が高校生向けのコンクール「パソコン甲子園」で以前優勝したことがあるというのを知りました。自分もここのプログラミング部に入ったらできるようになるかもと思い、まずは1人でプログラミングを再開し、スカイプ上で中高生のプログラミングコミュニティで相談しました。そこで、情報オリンピックの問題を解いたり、Topcoderをやったらいいとアドバイスをもらって参加したのが始まりです。
普段の勉強方法は?
(大橋) コンテストだと、“コンテストに出る、復習する、バーチャルコンテストを行う”の繰り返しです。できなかった問題はその解法を調べて、理解を深めています。競プロはスポーツの側面もあって、いい成績を取ろうとすると30分~1時間で解き切らないといけないのです。そのためには、同じような問題に関する解法を自分の中の引き出しにたくさん持っておくのが大事です。そして、その引き出しを増やすだけでなく、その引き出しを選んですぐ出せるようにする練習も行っています。
(三上) 就職してから練習はほぼしていません。学生のころに培った感覚を頼りに問題を解いています。学生のころを思い出すと、たくさんの問題を解き、個々の問題を解くために必要な要素を細かく分解して、そのテクニックを感覚として身につける努力をしました。解説を読まないと解けない問題は、他の問題を解きまくることでいつの間にか解けるようになっていきました。それでも解けない場合は、解説を頑張って読みました。その結果、中難易度までの問題は一瞬で解けてコンテストの時間が余るようにまで成長できました。
(中村) 大橋さんと同じで、練習して反復です。競プロが面白くて、大学院を辞めて競プロにハマった時期が1年ありました。(笑) 今は働きながらだから、あまり時間は取れていませんが、週に何日か問題は解いています。
PG BATTLE当日はどうでしたか?
(大橋) 3問目にてこずって4問目に取り組む時間が30分しかなかったので、問題文を読んですぐ分からなかったら止めようと思いました。案の定分からなかったので、すぐ諦めて見直して提出しました。PG BATTLEは見直しの時間も含めて評価対象になっているので出る側としては緊張しますが、競技性は高まると思っています。
(記者) 一発提出の恐怖はありますよね。
(大橋) 実際の仕事でも同じで、プログラムをリリースする際、会社で散々テストしても提出後にバグがあったら怒られるというのは構造としては近い。仕事の嫌な部分をPG BATTLEでまた味わうことになるんですが・・・(笑) でもそういうコンテストもあっていいと思います。
(三上) 例えば、AtCoderは正しいプログラムを作ることに本質をおいていて、一発勝負みたいなところは本質ではないんだと思います。僕は、運よく上位がとれたりするPG BATTLEも好きです。ただ、運要素で上位が左右されるのが嫌がる人もいるかとは思いますけれど。
(中村) 1年に1回しかないから、そういうお祭りみたいなコンテストもいいと思う。
(大橋) コンテストが終わったあとにSlackで何問解けたか報告しあって、解けなかった問題はみんなならどう解くか?について議論したり、感想戦をするのが面白いです。
PG BATTLEに参加してよかったことや反省点はありますか?
(大橋) 最後の問題が解けなったのが悔しいけど、実力だと思っています。実力は出し切れたと思っているので、反省点があるとしたら普段から練習しろということしかないです。
(記者) ストイックですね!
(大橋) よかったことは、最近はリモートで仕事していて、みんなと雑談する機会が減っていたので、PG BATTLEへの参加がコミュニケーションのきっかけなったこと。また、PG BATTLEは一発勝負なので刺激があるのがいいですね。
(中村) 学生と社会人の部門が分かれているので、社会人として出場しやすいです。年に1回久しぶりに、社会人たちが競プロに参加する感じになっているのがいいと思います。
(大橋) それまでは「Google Code Jam」しかなかったら、一つ増えたのは本当にいいことだと思います。学生には勝てないですからね。
(三上) 同窓会的な感じになれるのがいいです。賞金有りの年一のイベントでモチベーションになっているし、社会人が競プロをやるきっかけになっているのもいい。僕は簡単な問題を解き切るのが好きなので、PG BATTLEは自分が解ける範囲で手ごたえがあって、相性がよくて楽しいです。
競プロは実務にどのようなメリットがあると感じられますか?
(大橋) 競プロを通じて身につく能力は数学力、プログラミング力、アルゴリズムの設計力など目に見えないものなので、モチベーションを保つのが難しいこともあります。ですが、競プロで身についた素養が、採用試験や仕事中などで必要な場面もたくさんあると思います。競プロ経験がない人だと考えるのに時間がかかる問題があったとしても、自分は一瞬で解法を導きだせるので、残りの時間でさらに深い内容を考察する余裕が生まれるんです。
(三上) それは本当にそう思う。
(大橋) 競プロを通じて思考力が強化された人が集まっていると、議論も早くて効率的だし、思考プロセスなどが共通言語になっていると、本当に仕事が早く進みます。初心者だったら時間をかけて説明しないといけないところを、一言で済ませることができて、さらに深い思考に到達できるのが大きなメリットですね。
(記者) 実務にものすごく役立っているんですね。
(大橋) 例えば1万行のソースコードがあった場合、アルゴリズムを見直して計算量を改善しプロダクトがよりよいものになることはよくあります。見直すポイントを見つけるまでは大変だけど、見つけた後はまさしく競プロの世界。競プロは、培った経験や基礎体力によってメリットが得られることが多いと思います。
(三上) 僕も競プロで役に立っていることはたくさんあります。もちろんソフトウェア開発にはたくさんのスキルが必要で、その中の一つがアルゴリズムであると考えています。要件定義をすればどんな問題でもコードに落とせ、バグがなく計算量も妥当なものを選べるという状態に当たり前のように持っていけるスキル。これは競プロで培ったものだと思います。
(中村) 僕は、競プロを通してプログラミングを勉強しているので、自分のソフトウェアエンジニアとしての能力は、まさしく競プロ由来だと思っています。
チーム名『4位』の由来は?
(三上) ジンクスを断ち切ろうという気持ちで付けたのですが・・・。(笑)
(中村) 連続で4位とっていたのでチーム登録時に僕がいったん「4位」と付けたのですが、そのあと誰も変えなかったので・・・。でも、ほんとに4位になるとは思わなかった。(笑)
(大橋) Twitterでも「4位取りたかったから4位ってチーム名にしたのかな」というコメントがあったけど、「そんなわけないやろ」と思いました。(一同爆笑)
結果発表を見てどうでしたか?
(大橋) 10位から順々に発表されていくわけですが、最初は4位ではないにしても4位より下だろうと思っていました。そろそろ自分のチームが出てくるだろうと思って画面をみつめていたのになかなか名前が出てこない。「もしかしたらこれは賞金ゲットあるかな?!」と思いだしたところに4位でチーム名4位が出てきて、こんなことある?!ってなりました。(笑)
(三上) 3位取るよりも、実は承認欲求が満たされたかもしれないです。(一同爆笑)
●PG BATTLE 2021 結果発表会 企業の部
インタビュー:イスラエルのハッカーとの対決
サイバージムジャパン様からのご厚意で75万円相当分/チームの「イスラエルのハッカーと対決する券※」を獲得されましたが、ハッカーと対決すると知っていかがでしたか?
(大橋) イスラエルの現地に行って組手でもするのかと・・・(笑)。
(三上) 僕も何をするか全く想像がつかなかった。イスラエルの人が来るのかな?対決って何?って。
(サイバージムジャパン) そのまま言ってしまうとトレーニングなので、楽しそうな雰囲気がでるといいなと思って、このネーミングにしました。「何かすごそうだぞ」みたいに。
(※「イスラエルのハッカーと対決する券」とは、サイバージムジャパン様のトレーニングプログラム「Cyber-Threats and Defense Essentials」です。実際のサイバー攻撃を受け、複数の検出・監視ツールを駆使してサイバー攻撃を検出し、その分析を行うためのスキルを習得するのが目的。トレーニング期間は事前座学と当日実践の2日間。4位チームの皆さんは防御側のブルーチームとして、攻撃側のレッドチームのサイバー攻撃に立ち向かいました)
ハッカーとの対決当日の様子を教えてください。
(サイバージムジャパン) 皆さんはサイバーセキュリティに特化されているわけではなかったので、事前に座学の部分はオンラインで受けていただいたのですが、どうでしたか?
(大橋) 座学はすごく苦手だったので、正直面倒くさいなと思っていました。すみません。(一同笑) 座学では知っていることと知らないことが半々でした。でも、現地に行って実際に取り組んでみると、知っていることでも実は使いこなせるほどではないこともあることが分かりました。
(三上) 当日はすごく楽しかったです。
(中村) 当日は想像以上によかったですね。どういうイベントか分かってなかったのですが、実際のトレーニングを通して体験できるというのは面白かったです。
(三上) プログラムの脆弱性をリアルタイムに突いて攻撃してくるという実戦形式で、講師兼リーダーの方からこうした方がいい、ああした方がいいという指示を受けながら色々やるという体験はとても楽しかったし、意外と安全だと思っているところに脆弱性があったりするのには驚きましたね。
(大橋) そうそう、本当に予想外のところに脆弱性がありました。WEB開発者だと脆弱性に気をつけてはいますが、脆弱性があった時に実際何が起こるか?ということが体験しづらいんですよね。なので、一つの脆弱性から一点突破され、最終的にはネットワークを支配されることが明示されたことは、とても印象深かったです。
(三上) 一瞬の隙にここまで全て支配されちゃうんだっていう・・・。やらかしたのはワンクリックぐらいのミスだった気がするけど、脆弱性、こわっと思って。
(サイバージムジャパン) さらに、コーディングしたものに対してハッカーが攻撃してきて脆弱性があるかないか、あったらどうするかという「Secure Coding for Developers」というトレーニングもご用意できるようになりましたので、もしご興味があれば・・・。
(大橋) それすごく面白いかもしれないですね。自分が書いたコードであれば、開発者として迅速に対応できるので、そういうトレーニングはとても有用だと思います。
(三上) 僕もそう思います。またPG BATTLEでスポンサーされる際はそちらのトレーニングをぜひ・・・。(一同笑)
(大橋)賞品としてご用意いただければ、また我々が4位をとって賞をもらいます。(一同笑)
(サイバージムジャパン) 画面を通じて、ハッカーの存在は感じられましたか?
(大橋) ありありと存在を感じましたし、攻撃のスクリプトを見たらこうやるんだというのが分かって、勉強になりました。
(三上) 相手の手の内が分かる痕跡があったりして、あっちにも人間がいるんだっていう・・・。
(サイバージムジャパン) 弊社のトレーニングの一番の特徴は、あらかじめ組まれたマシーンで仕掛けるものではなく、各国にいるサイバージムのホワイトハッカーが攻撃を仕掛けてくることなのです。よって、皆さんの動きを見ながら対応するため毎回展開が変わるのです。
(大橋) 攻撃側がかなり準備しているというのを感じました。これができたらこうする、というステップが入念に組まれていて、やっぱり準備だなと。攻撃側も準備しているのだから、防御側も備えないといけないというのをすごく感じました。
(サイバージムジャパン) おっしゃるとおりで、ハッカーって結構地道なんですよね。
(大橋) 最後は怪しいハックされたっぽい画面が出てきて、イスラエルのハッカーにボコボコにされて終わりました。
(サイバージムジャパン) Tweetもしてくださっていましたね。最後は身代金要求されるところまでいってしまったってことですよね。
(大橋・中村・三上) そうです。
(サイバージムジャパン) 4位を取っていただいた事によって少し趣の違った体験をしていただくことができて、弊社としてもご提供させていただいて非常によかったなと感じました。直接お伺いできてとてもよかったです。ありがとうございました。
(大橋・中村・三上) こちらこそ、本当に良い体験でした。ありがとうございました!
これからPG BATTLEに参加しようと思っている人たちに向けて、一言お願いします!
(三上) PG BATTLE固有の戦略がいくつかあると思うので、そこを意識しながら参加するといいと思います。
(大橋) 1回は練習したほうがいいと思います。提出までの時間を最小化するために見直しをするか次に行くかを決めることも重要です。
(三上) 損切りっていう概念は普通のコンテストには絶対ないから・・・。
(中村) 確かに。年に1回のプログラミング要素もあるお祭り、くらいな気持ちで参加するといいと思います。普段やっているAtCoderのようなコンテストとは仕組みが違うので、割り切ってそういうコンテストだと思って出ることかな?
(三上) 1人でやっているのと比べ物にならないくらい最終成績で事故る確率が高いコンテストなので、うまく乗りこなしてください!
PG BATTLE 2022も開催予定です。参加していただけますか?
(記者) 中村さんと大橋さんはご退職予定だそうで・・・。チーム4位はどうしましょうか?!
(三上) お2人がIndeed Japanに戻るか、3人でペーパーカンパニー「株式会社4位」を立ち上げますか。(一同笑)
(記者) それ、いいですね!
(大橋) PG BATTLEに出るために登記したら、賞金取らないと。
(三上) それだと面白くなくなっちゃうから4位取らないと!あ、もしくは4位に賞金を・・・。やばい、冗談です。(笑)
(中村) 4位取れなくなったら倒産するから。(笑)
(記者) なんらかの形で参加してくださることを楽しみにしています!
(大橋・中村・三上) はい!
※本文中では敬称を省略させて頂きました。また記事内容は取材当時(2022年4月)のものです。
最後に
お忙しい中インタビューに参加して下さった『4位』チーム様、誠にありがとうございました。PG BATTLE第1回目の2018年から4年連続出場して下さっているIndeed Japan様。初参加時の4位のチームとはメンバーは違えども、2019年以降は同じメンバーで4位入賞を維持しておられるのは、大変素晴らしいことです!その熱量が今回の『サイバージムトレーニング券(イスラエルのハッカーと対決する券)』の獲得に繋がったのだと思います。お陰様で結果発表会も大いに盛り上がり、チームの皆様には感謝の気持ちでいっぱいです。「株式会社4位」の設立を楽しみにしております!(笑)
PG BATTLE 2021「企業の部」には全体で最多の197チーム(591名)の皆様にご参加いただき、誠にありがとうございました!参加チームが増えると飛び賞(スポンサー賞)のチャンスも増えますので、我こそは!と思われる方はぜひご参加をお待ちしております。
●PG BATTLE ホームページ
https://products.sint.co.jp/pg_battle
- カテゴリ:
- キーワード: