「競技プログラミング」という言葉はだいぶ前から知っていた。こんなに簡単に参加できるようになっていたことは知らなかった。
私は大学生からプログラミングを学び始めたけど、学び始めた当初は、本当に何もわからなくて、高校からプログラミングをやっている人たちが得体のしれない言葉で会話していた記憶があります。C言語を初めて触った時はあまり感動がなくてホームページのレンタルスペースにHTMLとかJavaScriptで自分のHPを作るのが好きでした。大学卒業するくらいになると一通りの文法と基本情報レベルのアルゴリズムは書けるようになったけれど、競技プログラミングは、業界のトップクラスの人たちばっかりでどうやって申し込むかどうかもわかりませんでした。
つい最近このライブ配信を見たら、競技プログラミングが急に身近に感じて、申し込みをしました。
▼特別講演(1)
タイトル:学生エンジニアの生存戦略
講演者:Ruby開発者 まつもとゆきひろ(Matz) 氏▼特別講演(2)
タイトル:プログラミング楽しい! (Azure 入門)
講演者:Microsoft Cloud Developer Advocate 千代田まどか(ちょまど) 氏▼特別講演(3)
タイトル:プログラミングコンテストのすゝめ〜競プロはキャリアであり、趣味でもあり、学びである〜
講演者:AtCoder株式会社 代表取締役社長 高橋直大(chokudai)氏 【3/14オンライン配信】Matz氏 / ちょまど氏 / chokudai氏による「ぷち技育祭」【特別講演&パネルディスカッション】イベント概要新型コロナウイルスの影響で「延期」が発表された技育祭(ぎい…
サポーターズという就活サイトのイベントが新型コロナウイルスの影響でイベントが延期になった挙句、youtubeのオンライン配信になったものです。(#ぷち技育祭)
偶々時間があって2時間くらい見ていたのですが、この中で「高橋直大(chokudai)氏」は、日本最大級の競技プログラミングを主催する会社「AtCoder(株)」の取締役で本人もすごいコーダー。ライブデモを見て私もやってみたいと思ったんです。
競技プログラミングとは
wikipediaの情報とライブ配信をしていた(ツイッター)@chokudaiさんの資料をお借りすると次のような説明になります。
競技プログラミングでは、参加者全員に同一の課題が出題され、より早く与えられた要求を満足するプログラムを正確に記述することを競う。コンピュータサイエンスや数学の知識を必要とする問題が多く、新卒学生の採用活動などに使われることもある。多くのコンテストでオンラインジャッジが採用されている。
また、競技プログラミングに参加する人を「競技プログラマ」または「競プロer」と呼ぶことがある。 競技プログラミング - Wikipedia
#ぷち技育祭 競プロ人口の推移。学生さんが多いっぽい。 pic.twitter.com/zFR3i6G8ul
— しもたさん☆ (@yshimota) March 14, 2020
#ぷち技育祭
— しもたさん☆ (@yshimota) March 14, 2020
協プロの例 pic.twitter.com/u3Pmm5GJyu
#ぷち技育祭
— しもたさん☆ (@yshimota) March 14, 2020
情報学科でプログラムの勉強はしたいけど、何を作りたいかわからない。そういう時期あったわ pic.twitter.com/kofT9Bs8EM
競技プログラミングに参加してみた
ライブ配信で本日の21時からも競技プログラミングをやりますという情報を得て、時間も空いていたのでオンラインゲームのイベントに参加するノリで参加をしました。でもちょっと準備不足が否めない。
準備1:申し込み

このページにアクセスして、ユーザ登録と参加したい競技プログラミングに応募します。何だかよくわからない単語もありますが、エラーとかでなければそのまま突き進みます
準備2:環境の準備
競技プログラミングに参加するためには、自分のPCに開発環境が必要です。メモ帳でも良いですが、インテリジェンスがあったり、自分のマシンでコンパイルや実行ができる環境がないと戦い辛いです。
競技プログラミングは、C++で行われることがほとんどですが、私はJAVAのほうが書きやすいので、VSCode+JDK +VSCodePlugIn「Java Extension Pack」で環境を作りました。Java Extension Packを導入すると、コンパイルデバッグまでできるようになります。プロジェクトを作って「HelloWorld」を表示できるところまで行ければ、競技プログラミングに参加するには十分かなぁというところまで来ます。
準備3:事前練習
私は、環境の準備が整った時点で、開始10分前で過去問の研究や、実際の提出方法とかはライブ配信を見ただけだったんです。ちゃんと練習した方が良いです(笑)ちゃんと練習用のコンテンツあります。

競技プログラミング:本番
開始時間になると、アナウンスなしに申し込んだサイト上に問題が表示されるようになります。

結果はタイトルにある通り惨敗ですが、試験後も問題の閲覧と提出ができるようになっていました。(アカウントがある人のみ?)久しぶりに一生懸命プログラムを考えた感覚になったので、とても楽しかったです。
Atcoderさんの場合は、リアルタイムに結果がわかる点が他の競技プログラミングと比べて良い点のようです。
まとめ
初めての競技プログラミング参加した記録を書きました。AtCoder社のサイトを見ると、毎週開催しているようなので、また時間があったら参加したいです。
コメント