競技プログラミングをやっていると「競技プログラミングは実務で役に立たないですよね」という会話に定期的に遭遇します。
ネット上を見ても「実務では役に立たない」「頭良い人の遊び」といった意見が目立ちます。
この記事では、実際に競技プログラミングを趣味にしている人が競技プログラミングは役に立たないのかを書きます。
競技プログラミングとは
競技プログラミングは、アルゴリズムの問題をプログラミングをしてコードで解答する形式のプログラミングのコンテストです。
国際大会やGoogleなどの企業が開催するコンテストも開催されていて、最近では日本でも企業の採用試験などで使われることもあります。
日本ではAtCoderがほぼ毎週コンテストを開催していて、日本の競技プログラミング人口も増加しています。
AtCoder
日本最大級の競技プログラミングコンテストを開催する企業です。
代表は世界的な競技プログラマーの高橋直大さんです。
AtCoderでは初級レベルから上級レベルまで幅広い難易度の問題出題されているので、初心者でも競技プログラミングを楽しめる仕組みになっています。
-
AtCoder:競技プログラミングコンテストを開催する国内最大のサイト
atcoder.jp
競技プログラミングのメリット
競技プログラミングをやっていて感じるメリットを挙げてみます。
プログラミングができるようになる
競技プログラミングは、アルゴリズム問題をプログラミングをしてコードで解答します。
解答するためにはプログラムがかけなければならないので、プログラミングができるようになります。
コーディングが速く正確になる
標準ライブラリに詳しくなる
アルゴリズムを学べる
就職で有利になることがある
日本でも競技プログラミングの認知度が高くなってきていて、プログラマーの採用試験で競技プログラミングの問題を出題する企業も増えてきています。
AtCoderもAtCoderJobsというサービスを提供していますし、企業協賛のコンテストも定期的に開催しています。
日本の企業が少しずつ競技プログラミングを認知するようになったので、競プロで成果を出している人は就職や試験で有利になることが増えてきています。
競プロが役に立たない理由
ではなぜ競技プログラミングは「役に立たない」と言われるのでしょうか?
触れる知識が限定的
役に立たないといわれる一番大きな理由がこれだと思います。
競技プログラミングに限らず、プログラミングの世界は必要とされる知識が膨大です。
その中から業務に必要な知識を学びながら仕事をします。
競技プログラミングだけでは仕事はできない
競技プログラミングで成果を出せば実務の仕事ができるか?
と聞かれたら答えは「NO」です。
競技プログラミングで習得できる知識は限定的なので、実務をするためにはその都度必要な知識を勉強しなければ無理です。
競技プログラミングだけ勉強しても実務ができないという意見は間違っていません。
競プロだけで仕事ができるか?
- 競技プログラミングだけ勉強しても仕事はできない
競技プログラマーは仕事ができる
矛盾するようですが、競技プログラマーは仕事ができる人が多いです。
競技プログラマーは仕事では(ほとんど)使わないアルゴリズムの知識を習得している変人です。
知識を得ることに対する好奇心が普通の人よりすごいので、実務で使う知識でも普通の人より理解度が高い傾向にあります。
上場企業に勤める私の会社でも競技プログラミングで良い成績の社員ははほとんどが各部署のエース級の社員です。
競技プログラミングだけできても実務ができないのは間違いないですが、競技プログラミングができる人は実務もできる傾向が高いです。
競技プログラマーは仕事ができるか?
- 競技プログラマーは仕事ができる傾向がある
競技プログラミンやらない方がいい人
私は競技プログラミングの面白さは「仕事に役に立つか」ではないと思っています。
仕事のために競技プログラミングをするならやめた方が良いと私は思います。
「業務に必要か?」と考えるなら競技プログラミングより、他の知識を勉強した方がいいと思います。