最近話題のAtCoderがどんなものなのか、できるだけ簡単に書いてみました。
この記事には、以下の内容が含まれています。
- AtCoder・競技プログラミングの簡単な説明
- AtCoderで遊ぶメリット(私個人の意見)
次のような方を対象に書きました。
- AtCoderにちょっと興味がある人
- AtCoderをやる気はないけど、何なのか知りたい人
なお、筆者のうにだよは競プロ歴8ヶ月・AtCoderレート1500ちょっと(水コーダー)で、解いた問題は1100問くらいの、ただのハマっている人です。実力的にすごいわけではありません。(2020年10月現在)
AtCoderとは?
競技プログラミングってなに?
『競技プログラミング』(競プロ)は、プログラミングでパズル的な問題を解いて競うゲームです。
競プロでは、こんな問題が出ます。
A×Bを求めてください。
この問題は「A×Bを計算して表示するコード」が正解になります。たとえば、「Aが3、Bが4なら12を表示する」コードを書けばいいです。
もう少し難しい問題だと、こんな感じの問題があります。
- 迷路のスタートからゴールまでの最短経路を答えてください。
- リュックの容量と、たくさんの品物の価値・重さが与えられます。最大でいくら分品物をリュックに詰められるか答えてください。
- ゲームのルールと初期状態が与えられます。先攻と後攻がどちらも最善の選択をしたとき、どちらが勝つか答えてください。
AtCoderってなに?
『AtCoder』は競プロの『コンテスト』を開いている会社・サービスです。
AtCoderのコンテストって何?
↑コンテストの順位表
AtCoderは、競プロのコンテストをほぼ毎週末の夜9時から開催しています。コンテストでは、こんな感じのことをして順位を競います。
- 競プロの問題が何問か出される(だいたい6問)
- 時間内にたくさん正解することを目指す(1時間半くらい)
- 正解数・かかった時間で順位を競う
多いときは、国内外から合計1万人以上の人がコンテストに参加するほどにぎわっています。コンテストといってもお堅いものではなく、だれでも気軽に参加できます。
- コードを書けるPCさえあれば、どこからでも参加できる
- 参加に必要なのは簡単なユーザー登録だけ
- もちろん参加費はない
- ふだんのコンテストに賞金はかかっていない
このように、ネットゲームを遊ぶくらいの気持ちで参加できます。たとえば、私はよくお酒を飲んでYouTubeやラジオを聴きながら遊んでいます。
『レート』で自分の実力が見える
↑私のレートのグラフです。マイページを開けばいつでも見られます。
AtCoderは1回のコンテストの順位を競って終わりではなく、コンテストの結果に応じて『競プロ力』を数値化した『レート』という数字が上下します。
レートは400ごとに色がついています。灰・茶・緑・水・青・黄・橙・赤の順に色がつきます。多くの参加者が、色を実力の区切りとして認識しています。
中でも一番上の赤コーダー(2800~)は大変高い実力を持っていて、世界に140人ほどしかいません。(2020年11月現在)
1色上になるのは物凄く大変ですが、『色変』するととても大きな達成感を得られます。たくさんのプレイヤーが、レート・色を上げることを目指して、日々競プロにはげんでいます。
AtCoderの特徴その他
ここまで書いてきた以外の、AtCoderのいいところを簡単に書きます。
- 『本当のプログラミング初心者』にもやさしい問題が用意されている
- かなり多くのプログラミング言語に対応している
- 過去問にいつでも挑戦できて、コンテストがないときも楽しめる
AtCoderで遊ぶメリットは?
次は、AtCoderで遊ぶメリットを書いてみます。あくまで私個人の意見ですが、この4つをメリットと考えている人が多いです。
- 問題を解くこと自体がパズル的で楽しい
- プログラミングの基本の練習になる
- 効率的なプログラムを書く練習になる
- 就活の役に立つ可能性がある
問題を解くこと自体がパズル的で楽しい
『問題を解くこと自体がパズル的で楽しい』のが、多くの人にとって最大の理由だと思います。競プロに少しでも興味を持ったあなたは、きっと楽しいと感じるはずです。
プログラミングの基本の練習になる
プログラミングの入門本に書いてあるレベルの内容は、AtCoderを通して完璧にすることができます。逆に、入門本で勉強した人は、少しの慣れでAtCoderの簡単な問題を解けます。
いくらAtCoderだけをやってもアプリやゲームを作ることはできませんが、基本的なことは何をするにしても役に立ちます。
効率的なプログラムを書く練習になる
基本的なことからレベルが上がると、効率的なプログラムを書く練習にもなります。AtCoderは、決められた時間内に計算が終わらなければ不正解になるからです。1時間や1年かけて答えが出るプログラムではだめです。
効率的なプログラムを書く能力は『アルゴリズム力』などと呼ばれていて、競プロの本質の1つといっても過言ではないかもしれません。
一般的な開発では『コードの速さ』よりも『コードの読みやすさ』などが優先されることが多いですが、効率的なコードを書くべき場面は必ず存在します。
就活の役に立つ可能性がある
楽しかったり勉強になったりするだけではなく、AtCoderは就活の役に立つ可能性もあります。
- 就活のコーディング試験の練習になる
- AtCoderJobsという、レートを使った公式の就活サイトがある
- レート自体を大きく評価する会社もある(主にコンテストのスポンサーをしている会社)
AtCoderのレートが評価されるのは、『アルゴリズム力』を評価する企業があるからです。
現時点ではAtCoderのレートだけで決定的に就職が有利になるわけではありませんが、実力やアピールの仕方によっては役立てることもできます。(とくに学生の方の場合)
まとめ
AtCoderについて簡単に説明しました。まだ書いている途中ですが、下の記事も投稿予定です。
- AtCoderコンテスト参加の流れ
- 初心者向け(たぶん緑まで)攻略