キャプチャ13

新入生に競プロを勧める理由

競技プログラミング(略して競プロ)にはいろんな形態があります.AIを作るコンテスト,アプリを開発するコンテスト,時間内にプログラミングの問題を解くコンテストなどなど.今回はその中でも時間内にプログラミングの問題を解くコンテストのメリットを紹介します.

どんな大会?

例として問題をいくつか紹介します.AtCoderで出題されたものです.

はじめてのあっとこーだー


XXOR

このように簡単な問題から少し工夫しないと解けない問題まで様々な問題が出題されます.これらはAtCoder Beginner Contestで出題されたもので,レベルの高いコンテストではもっと難易度の高い問題も出題されます.
このような問題を提供している代表的なサイトにはAtCoderyukicoderCODEFORCEStopcoderなどがあります.

競プロをするメリット

・アルゴリズム力が身につく
・論理的思考力が身につく
・プログラムに慣れることができる
・モチベーションアップになる
・就職に使える

アルゴリズム力が身につく

競プロを通してかなり高度なアルゴリズム力を身に着けることができます.例えば大阪大学で使用されているアルゴリズムとデータ構造の教科書では最後の章で動的計画法が出てきますが,競プロの代表的な教科書「蟻本」では初級編で動的計画法が説明されています.
大学で学ぶアルゴリズムとデータ構造が当然のように身につくのです.

論理的思考力が身につく

競プロの問題は論理的思考力を試されます.この能力はあらゆる問題を解決する能力や理解力と直結します.
問題を解くためにはその問題を簡単なものに言い換えたり,部分的な問題に分割して考える力が必要になります.また,どんな順番で解いていけば問題を解けるかを考える力も必要になります.
これらの能力は問題の本質を見抜く力,効率的な手順を考える力といえます.
本質を見抜く力,効率的に解決する力はプログラミング以外の問題に対しても絶大な力を発揮することは言うまでもないでしょう.

プログラミングになれることができる

競プロので必要になるプログラミングの知識はほんの一部だけです(トップレベルになると話は違ってくる).ですが,競プロをすることによってデバッグする力,コードを読む力,プログラミングする習慣を身につけることができます.また,ネットで検索して実装する力も身につきます.
実は,これだけのスキルがあればたいていのプログラムは書くことができます.作りたいものがあればまず検索してコードを読み,自分が作りたいのもに合わせて修正し,エラーが出たらデバッグすることでGoogle 検索で出てくる内容は実装することができるのです.つまり,既存のコードはほぼすべて実装できるといっても過言ではありません.(過言)
プログラムをで大事なことは文法を覚えることよりも検索したコードを読んで適切に書き換える力とデバッグする力なのです.そしてこれらの能力は競プロで身に着けられます.またエラーにめげない精神力も身につけることができます.

モチベーションアップになる

競プロのコンテストは毎週開催されています.このため,いつでもすぐそこに目標がある状態が作れます.また,自分の能力がレートとして見える化されることもモチベーションにつながります.
また,競プロをしている人は普段からクリエイティブな生活をしている人が多いです.競プロつながりのTwitterアカウントのタイムラインでは競プロの勉強していたり,Webサイトを書いていたり,ゲームを作ったりなどクリエイティブな内容が多く流れてくるため,あらゆるプログラミングに対するモチベーションアップになります.

就職に使える

AtCoderのレートはプログラミング力の証明として就職に使えます.履歴書に書くことができる他,AtCoder JobsというサービスではAtCoderのレートに応じた求人があります.
また,AtCoderで黄色になると,Twitterで「お金欲しい」ってつぶやくだけで企業から「うちでバイトしない」って連絡が来るそうです.あとインターンも倍率8倍とかでも通るそうです.
レート別の強さはこちら

まとめ

競プロはプログラミング能力だけでなくあらゆる問題を解決する能力を身に着けられる.頻繁にコンテストがあるおかげでやる気が持続しやすい.そして何より楽しい.
新入生でプログラミング勉強したいなって思ってる人はとりあえず競プロしよう!

この記事が気に入ったらサポートをしてみませんか?