はじめに
ソフメの皆さん、こんにちは!
1回生P班のきーとーくんです。今回、私は競プロというものを布教するためにこの記事を書きました。この記事を読んで一人でも競プロを始めてくれる人がいたらいいなーと思ってます。
布教するためなので、この記事では具体的な詳しい話はせずに競プロの面白さやいいところを語っていきたいと思います。
競プロとは
競プロとは競技プログラミングの略です。どんな競技かというと、アルゴリズム力や数学的思考力を鍛えてプログラミングコンテスト(通称プロコン) 1に参加して問題を解くという競技です。 競う部分は解くのにかかった時間だったり、より良いゲームAIを開発することだったり、コンテストによって様々です。
こう書かれるとすごく難しそうに見えるんですけど、実際はそんなことないです。 問題の内容も簡単なものだと「xと y という値が与えられたとき、それらの和を表示しなさい」みたいな感じでif文とかfor文さえわかればできます2。
ほんとに簡単なのでみんなも競プロやろうね(暗黒微笑)。
1: 日本では AtCoderというサイトほぼ毎週開催されています。
2: 実際の問題
競プロはネトゲだった……?
みなさん、ネトゲってやったことありますか?艦これだったりwowsだったり、パズドラもネトゲに入ると思います。ソフメの皆さんなら誰しも一度はやったことあるのではないでしょうか。そんなネトゲに必ずと言っていいほどあるもの。それはランキングです。 ネトゲのおもしろいところって色々あると思うんですけど、一番面白いのって「顔も名前も知らない人と競える」ってとこだと思うんですよね。それを実現する方法の一つがランキングなんだと思います。
「いや、お前それ競プロと関係ないだろ」
今、この記事を読んでいる人は大体こう考えているでしょう。安心してください。これから書いていきます。
競プロでは、コンテストに参加して問題を解くと、解くのにかかった時間(コンテストごとに違いますが)によって参加したコンテストのランキングに載ります。 プロコンが終わった後もコンテストの成績からレートという値が算出されて世界ランキング 3にも載ります。
ランキングが競プロにもあるんです。ネトゲと競プロって似てるんです。 前の文の”プロコン”を”イベント”に、”問題を解く”を”敵を倒す”に置き換えて読んでみてください。 ネトゲと競プロには似てる部分があるということが分かってもらえるはずです。
競プロの面白さは、アルゴリズムだとか数学だとかよりもむしろこのゲーム性にあると思います。もし、競プロが問題を解くだけでランキング要素のない競技(競ってないですが)だったなら、私は始めなかったでしょう。他人と競うのは楽しいです。順位やレートが上がると嬉しいし、自信にもつながります。また、今はいないですが実力の近い競プロerのリア友がいればもっと楽しめるようになるのかなとも思ってます。
3: 実際のランキング
競プロとネトゲの違うところ
競プロとネトゲ。ランキングという点では似ているんですけど、すべてがそっくりというわけではありません。ネトゲは娯楽に特化しているので、やっててためになるみたいなことはあまりないと思います(軍艦についてやたら詳しくなるみたいなことはあるかもですけど)。でも、競プロは違います。プログラミングをするので結構役に立つことがあります。具体的にどんなことがあるのかあげてみます。
- アルゴリズム力や数学力がつく。
- それをプログラムで作る力(実装力)がつく。
- 実行速度やメモリ使用量に気を遣うようになる。
- 就職に役立つかも?
一つずつ説明していきますね。
まず、アルゴリズム力や数学力について。言わずもがな、競プロはこれを使って問題を解くのでやっていくうちにこういう力がつきます。数学の力がつくのに伴って論理的思考力もつくらしいです。
次に、実装力です。アルゴリズム力や数学力を持っていたとしても、その処理をプログラムで実現する力がなければプロコンでは勝てません。なので、競プロをやっていると実装力がつきます。もしかすると、ゲーム開発にも役立つかもしれないですね。
次は実行速度やメモリ使用量についてです。プロコンでは問題ごとに”実行時間1秒以内、メモリ制限1024MB”のような制約がかけられています。 これをオーバーしてしまうと答えはあっていても不正解になってしまうので、プロコンでは実行速度に気を付けたりメモリを無駄遣いしないプログラムを書くようになります。 そうなると、プロコンとは関係ないところでも実行速度やメモリの無駄遣いに気を遣ったコードを書くようになるらしいです。
最後に就職に役立つかも?ですね。競プロで就職することもできるらしいです。最近、競プロ就活サービスの AtCoder jobsというサイトもできました。企業が開催したコンテストで優秀な成績を収めると1時面接や筆記試験をパスできたりします。ただ、IT系のすべての職種で就職の役に立つという訳ではないみたいです(”?”をつけた理由です)。というのも、競プロではソフトウェア開発をするわけではないのでライブラリに詳しくなったり、プログラム設計がうまくなったり、オブジェクト指向プログラミングができるようになったりすることはありません。なので、競プロの性質上仕方がないことですが、ある特定の職種にしか役立たないそうです。競プロでの就職は「ネトゲしてたら就職に役立った」みたいなスタンスで趣味の副産物だと思ったほうがいいかもです。競プロ就職について詳しく知りたい場合はAtCoderの社長が書いた このブログを読んでみてください。
競プロとネトゲの違いについてつらつらと書いてきましたが、競プロの楽しいということ以外の良さについてもわかっていただけたでしょうか?競プロは楽しいだけではなくて自分自身の力も付くのでためになります。やっていて「時間無駄にしたな」と思うことがないです。趣味としては、無料ですしコスパがものすごくいいんじゃないかと思います。
最後に
競プロについてネトゲと似ているだとか、就職に役立つかもだとか、まとまりのないことを書いてきましたが、私が言いたいのはこれだけです。
「みなさん、競プロ始めませんか?」
競プロは楽しいです。楽しいだけでなく自分の力にもなります。なのに、千葉工大で競プロをやっている人が少ないんです(悲痛な声)。布教しても何回かコンテストに参加してフェードアウトなんてことが多いです。いつになるかはわかりませんが、千葉工大生競プロerのコミュニティが作られるなんてことがあったらいいなと思っています。本当に、少しでもこの記事を読んで競プロに興味を持って頂けたなら、もう既にやってるよという人がいるなら、一回生のきーとーくんに話しかけてください。twitter4でもいいです。メールでもいいです。
「競プロ・・・一緒にやりませんか・・・・・・?」
4: 私のアカウントは@chihakarakです。
コメント