エンジニアの方はご存知の方が多いと思いますが、競技プログラミングというものがあります。
多くの場合プログラミングでは、それ自体ではなくそれによって作られるものが目的ですが、
プログラミング自体の速さや解決能力、質を競うのが、競技プログラミングです。
僕としては、過去に遊びで何問かといたのと、企業への応募時にそれらしいものを解く機会があったかなあというくらいです。
エンジニアとしての基礎力を鍛える一つの方法として、明確な課題や評価方法がある競プロは面白そうだなあと思い、挑戦してみることにしました。
AtCoder
日本でもっとも有名な競プロのサービスの1つが、AtCoderかと思います。
AtCoderは定期的にコンテストを開催しているのですが、常設で練習問題などもあり、それらにチャレンジしていきたいと思っています。
ランク
AtCoderにはランクというものがあり、色で実力が表現されるそうです。
AtCoder(競技プログラミング)の色・ランクと実力評価、問題例 - chokudaiのブログ
緑色は、
エンジニアとしてもある程度の安心感がある。論理的に複雑な処理の実装に対応できない、なんてことはなさそう、くらいには思える。データ量が多い現場など、計算量の多い処理が要求される現場でなければ、このレート帯以上を求める必要はほぼない。
とのことなので、これを目指していきたいなあと思います。
言語
下記の記事を参考にしました。
言語のおすすめ一位はC++だそうです。というのも、パフォーマンスの観点でLL言語では厳しいのと、そのため解説等でもC++が多いからだとか。
僕としてはC++の経験が少ないのと、より楽しく書けるだろうという思いで、次点のPythonを採用する事にしました。同様の理由により過去の機会でもPythonを使っていました。
パフォーマンス的に辛くなってきたら、C++への移行も考えてみようかなと思っています。
AtCoder Beginners Selection
このコンテストは、「AtCoderに登録したけど何をしていいか分からない・・・!」という人に向けて作られた、初心者向け問題集です。
だそうです。
早速チャレンジしてみました。
https://github.com/nek0meshi/atcoder/tree/master/beginners-selection
内容や感想については、次回以降...。
まとめ
ランクづけがあったり過去問が見れるのが面白いなあとおもいますが、
決まった時間を空けないとコンテストに参加できないのは少し大変だなあと思います。
まずは過去問などで力をつけつつ、少しずつやっていこうと思います。