競技プログラミングという呪縛

競技プログラミングを通じて自分のプログラミング技術を疑ったけれど、結局どうでも良くなったという話。

 

競技プログラミング(以下、競プロ)っていうのがあるんスね。問題が与えられて、条件に応じて正しく出力するプログラムを書いて、その時間や正確さを競う、大会みたいなモノです。

で、その競プロを体験できるサービスの中でも、たぶん日本で一番有名な AtCoder っていうサイトがあるンですが、このサイトで俺も何度か試験を受けてみたんスね。趣味とは言え、少しはプログラムを触ってきた身としては、ある程度実力があるンじゃないかなァと思って。

 

ところが、何度か試してみた感じでは、思ったよりも低い結果となりました。

これに対して、自分はプログラミングがあまりできてないンじゃないか、と少しショックに思うところがあったんスけど、最近ようやくその呪縛から解き放たれました。

 

そもそも、こういった競プロの問題では「処理する量が極端に多い」「数学的知識が必要」といったアルゴリズム(≒計算処理のやり方)が問われるような内容が多かったんスね。

今まで簡単で小さなゲームやサービスを中心に作成してきた自分にとっては、そういったプログラムはほぼ不要であまり出会って来なかったので、対策できてなくて解けないのは当然でした。

 

これって得意不得意の話だと思うんスね。

つまり、競プロができないからと言ってプログラム全般を作成するのが苦手という訳ではなく、逆に競プロでそれなりに良い成績を収めても何らかのプログラム作成ができない人もいる、ということは大いにあり得るなァと。

完全に自分の事を棚に上げているみたいですが。

 

まぁ、仮に俺が今から競プロだけをやり続けても、俺が作りたいゲームやサービスは一生完成しないワケじゃないですか。

例えば「サイン波でウネウネした動きが作れる」とか「キャラの移動では一次関数より二次以上の関数を使う方が、気持ちの良い動きである事の方が多い」みたいな知識を覚えた方が、ゲーム制作ではかなり有用ですが、競プロにはほぼ不要ですし。

もちろん、競プロの問題として頻出な、高速な並び替え(ソート)を問うようなプログラムみたいに、ゲーム制作にも生きる知識もあるンで、競プロのための勉強も完全には無駄にはならないと思いますが。

 

みたいな事を、自分の昔書いたプログラムを見ながら考えていたんスけど、これで競プロでいい成績が出なかったことに対しても全く気後れしなくなりました。

俺がやりたいのは競プロで良い成績を残すことじゃないンで。遅くても良いので、正しく、楽しく動くようなゲームやサービスの完成を目指す方が、優先度は高いのではないでしょうか?

 

とは言いながらも、所謂中途半端に開発が止まっている作品が大量にあるので、少しずつ形にして行きたいと考えております、

なんだかなぁ?、

 

というわけで、もし、この記事を読んでいる人の中に「競プロ全然いい成績出ないからプログラム向いてないのかな」と心配されている人がいたら、安心して下さい。そんな事は全く無いです。

競プロは、プログラム行為の中のイチ競技に過ぎず、言ってしまえばサッカーのリフティング大会みたいなモノです。

リフティングがあまり得意でなくともサッカーはできるし、リフティング王者がサッカーで一番活躍できるわけでも無いです。

 

リフティングはあくまでも取っ掛かりとか、一種のチャレンジ程度に考えておくのが自然じゃないスかね。

やりたい事あるなら、そっちやった方が良いですよ。

タイトルとURLをコピーしました