初めてのAtCoder 



東京大学の修士大学生です:smiley:

僕は、pythonを触り始めて9ヶ月ほどになります。今回は、最もpythonの勉強に役立った**AtCoder**について紹介したいと思います！

## [AtCoder](https://atcoder.jp/?lang=ja)ってなに？
<img width="427" alt="スクリーンショット 2020-03-06 10.56.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566497/6c8a7829-0fb6-48c4-45ff-5088cf46e7c4.png">


日本発の**"競プロ"**(競技プログラミング)サイトです！(世界的に見ても、有名！)

競技プロとは、プログラミング問題を解き、正解数や時間などを競い合うコンテストのこと。Web業界などでは、**新卒の採用活動**などに使われることもあります。**Googleの入社面接**でも聞かれます。

AtCoderの問題は全て日本語であり、比較的簡単な問題を出題することでも知られています。
なので、**「英語ムリすぎる..」**という方や、**「競プロに興味はあるけど、自信ない。難しそう...」**という方にもお勧めです！

## どんな問題が出るの？

>整数 A と B が与えられます。
そのとき、縦 A cm、横 B cmの長方形の面積を出力してください。

**print(A * B)** を出力する基本的なものから、

>長方形の街で、途中の塀(#)を通らず、道(.)を通って、家(s)から学校(g)へたどり着けるか
<img width="130" alt="スクリーンショット 2020-03-06 10.56.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566497/116990f1-5045-90bc-8ce5-86b5ee4c38d6.png">


**深さ優先探索**を使用するものから、**1日考えても解けない問題**まで、幅広い難易度の問題が出題されます！

## AtCoderの楽しさ

### 1. 友達とも、世界の凄腕の人とも対戦できる
AtCoderの登録者数は4万人を超えています。毎週のコンテストでは、**5000人以上の参加者とリアルタイムで対戦ができます！**また、友達をお気に入り登録しておくと、**友達との勝敗が大きなモチベーション**に繋がります！
<img width="632" alt="スクリーンショット 2020-03-06 10.57.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566497/704910a9-966a-bc03-a6cd-e7a722fa37b5.png">


### 2. 成長が目に見える 

AtCoderのコンテストに参加すると、成績に応じてレーティング(色)が変化します。
レーティングはコンテストでの平均的な成績、つまり、**プログラミング問題を解く能力**になります。

下の画像は自分のレーティングの変化です。レーティングの上昇と共に、**自分の実力が上がっている感覚が可視化される**のが、楽しいポイントです！

<img width="631" alt="スクリーンショット 2020-03-06 10.57.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/566497/a22d7072-878c-33e8-b641-191c6f81d8ad.png">


レーティングに対しての、ざっくりとしたイメージです。最も強い人「**<span style="color: #d61b09">レッドコーダー</span>**」　と呼ばれ、競プロ界の神様的ポジションになります。(Kaggleでいう、grandmaster的な?)


| **レーティング** | **色** | **相対的な位置** | **イメージ** |
| --- | --- | --- | --- |
|<font color="Gray">0 -</font> | <font color="Gray">灰色</font> | 上位 100% | 初心者ですが伸びしろがたくさんある状態です。 |
| <font color="Brown">400 -</font> | <font color="Brown">茶色</font> | 上位 40% |  茶色なら優秀。エンジニアとしてはちょっと物足りない。 |
| <font color="Green">800 -</font> | <font color="Green">緑色</font> | 上位 24% |  大抵の企業でアルゴリズム力は十分。ソフトウェアエンジニアとして申し分ない実力です。 |
| <font color="Skyblue">1200 -</font> | <font color="Skyblue">水色</font> |  上位 12% | 基礎的なアルゴリズム処理能力については疑いのないレベル。 |
| <font color="Blue">1600 -</font> | <font color="Blue">青色</font> | 上位 6% |  一部上場のIT企業でも、一人もいないことが結構あるレベルになる。 |
| <font color="Gold">2000 -</font> | <font color="Gold">黄色</font>  |  上位 2.5% | 黄色からは、化け物。各大学のエース級選手です。世間的にはアルゴリズム特化のリサーチャーなど、エキスパートとして活躍できる実力です。 |
| <font color="Orange">2400 -</font> | <font color="Orange">橙色</font> | 上位 0.9% |  各大学で数年に 1 人レベルのトップ選手です。 |
|<font color="Red">2800 -</font> | <font color="Red">赤色</font> |  上位 0.3% | 世界レベルのトップ選手です。現在日本に 3<span style="color: #8b939c"></span><span style="color: #8b939c"></span><span style="color: #9e8c08"></span><span style="color: #9e8c08"></span><span style="color: #9e8c08"></span>0人 前後しかいません。 |

※ イメージは、[AtCoder 社長さんのブログ](http://chokudai.hatenablog.com/entry/2019/02/11/155904)、[AtCoderについてのqiita記事](https://qiita.com/drken/items/8a6f139158cde8a61dce) がソースです。


### 3. 解説が丁寧

コンテストが終了する度に、Youtubeで解説動画が放送されます。その解説が非常に丁寧でわかりやすいです！

また、他人のコードが見放題なので、問題が解けるようになるだけでなく、**pythonコードの綺麗な書き方**を習得することができます！

- - -

僕は、こんな魅力でAtCoderにハマりました。pythonを本などで学習するよりも、実際に手を動かしてoutputを続ける方が、習得のスピードが早かったように感じます！

この記事を読んだ初心者の方が、AtCoderを始め、python習得に繋がれが、非常に嬉しいです。

具体的な始め方は、別の人が書かれた[こちらの記事](https://qiita.com/snaruse0608/items/9ef0f2f5b190f142cb80)を参考にしてみてください😄