東京大学の修士大学生です
僕は、pythonを触り始めて9ヶ月ほどになります。今回は、最もpythonの勉強に役立ったAtCoderについて紹介したいと思います!
AtCoderってなに?

日本発の**"競プロ"**(競技プログラミング)サイトです!(世界的に見ても、有名!)
競技プロとは、プログラミング問題を解き、正解数や時間などを競い合うコンテストのこと。Web業界などでは、新卒の採用活動などに使われることもあります。Googleの入社面接でも聞かれます。
AtCoderの問題は全て日本語であり、比較的簡単な問題を出題することでも知られています。
なので、**「英語ムリすぎる..」という方や、「競プロに興味はあるけど、自信ない。難しそう...」**という方にもお勧めです!
どんな問題が出るの?
整数 A と B が与えられます。
そのとき、縦 A cm、横 B cmの長方形の面積を出力してください。
print(A * B) を出力する基本的なものから、
長方形の街で、途中の塀(#)を通らず、道(.)を通って、家(s)から学校(g)へたどり着けるか

深さ優先探索を使用するものから、1日考えても解けない問題まで、幅広い難易度の問題が出題されます!
AtCoderの楽しさ
1. 友達とも、世界の凄腕の人とも対戦できる
AtCoderの登録者数は4万人を超えています。毎週のコンテストでは、**5000人以上の参加者とリアルタイムで対戦ができます!**また、友達をお気に入り登録しておくと、友達との勝敗が大きなモチベーションに繋がります!
2. 成長が目に見える
AtCoderのコンテストに参加すると、成績に応じてレーティング(色)が変化します。
レーティングはコンテストでの平均的な成績、つまり、プログラミング問題を解く能力になります。
下の画像は自分のレーティングの変化です。レーティングの上昇と共に、自分の実力が上がっている感覚が可視化されるのが、楽しいポイントです!

レーティングに対しての、ざっくりとしたイメージです。最も強い人「レッドコーダー」 と呼ばれ、競プロ界の神様的ポジションになります。(Kaggleでいう、grandmaster的な?)
レーティング | 色 | 相対的な位置 | イメージ |
---|---|---|---|
0 - | 灰色 | 上位 100% | 初心者ですが伸びしろがたくさんある状態です。 |
400 - | 茶色 | 上位 40% | 茶色なら優秀。エンジニアとしてはちょっと物足りない。 |
800 - | 緑色 | 上位 24% | 大抵の企業でアルゴリズム力は十分。ソフトウェアエンジニアとして申し分ない実力です。 |
1200 - | 水色 | 上位 12% | 基礎的なアルゴリズム処理能力については疑いのないレベル。 |
1600 - | 青色 | 上位 6% | 一部上場のIT企業でも、一人もいないことが結構あるレベルになる。 |
2000 - | 黄色 | 上位 2.5% | 黄色からは、化け物。各大学のエース級選手です。世間的にはアルゴリズム特化のリサーチャーなど、エキスパートとして活躍できる実力です。 |
2400 - | 橙色 | 上位 0.9% | 各大学で数年に 1 人レベルのトップ選手です。 |
2800 - | 赤色 | 上位 0.3% | 世界レベルのトップ選手です。現在日本に 30人 前後しかいません。 |
※ イメージは、AtCoder 社長さんのブログ、AtCoderについてのqiita記事 がソースです。
3. 解説が丁寧
コンテストが終了する度に、Youtubeで解説動画が放送されます。その解説が非常に丁寧でわかりやすいです!
また、他人のコードが見放題なので、問題が解けるようになるだけでなく、pythonコードの綺麗な書き方を習得することができます!
僕は、こんな魅力でAtCoderにハマりました。pythonを本などで学習するよりも、実際に手を動かしてoutputを続ける方が、習得のスピードが早かったように感じます!
この記事を読んだ初心者の方が、AtCoderを始め、python習得に繋がれが、非常に嬉しいです。
具体的な始め方は、別の人が書かれたこちらの記事を参考にしてみてください😄