ふとしたきっかけで会社で競技プログラミングの本を見せて貰う機会があり、
内容が面白かったので自分でも購入して読んだり、
解いているうちにズブズブとハマって行ってしまいました。
せっかくなので読者の方にもおすすめしてみたいと思います。
競技プログラミングって何?
プログラミングを使って、出題された問題を解いていく競技です!
上級者の方でもうなるような問題もありますが、
プログラミング自体の初心者でも気軽に解いていける問題もたくさんあります!
例えば、こんな問題もあります。
119という文字列が入力されたときに991が出力されるように、9と1を置き換えてください。
このくらいなら解けそうだと感じませんか?
何が楽しいの?
これは一度触ってみてもらったほうがわかりやすいと思うんですが、
競技プログラミングの問題を解くのは、パズルを解くような楽しさがあります。
解き方を考えて、答えが出たときの楽しさが好きな人には特におすすめですね。
また、コンテストに参加したりすると、順位がついたり、レートがついたり...
自分の技量を客観的に見られること、数値で競い合っていけることも楽しいポイントです。
目標とする人や、ライバルなんかを見つけられるともっと楽しいですね。
なにか役に立つの?
いくつか役に立つと思っているポイントはあるんですけど、
1つ目は「プログラミング学習として始めやすい」ことです。
アプリを作ったり、Webシステムを作ったり…そういうのって結構他の技術や知識が求められて、
純粋にプログラミング初心者の場合なんかは戸惑いやすいです。
競技プログラミングといっても、ifやforみたいな基礎的な部分だけ知っていれば解ける問題があります!
また、実力やスコアが数値として目に見えてくるので、目標も立てやすいです。
2つ目は、「就職の役に立つ」ことです。
最近は、企業の採用活動で競技プログラミングを利用することも多いようです。
私自身、Hacker Rankというサイトの問題を解くというようなWebテストを受けたこともありました。
下記のようなサイトもあるので、これからより注目が高まってくるのでは?
- コーディングテストの結果で企業に応募できるPaiza
ITエンジニア・プログラマ向けの転職・就活・学習サービス【paiza(パイザ)】 - コンテストのレーティングで企業に応募できるAtCoder Jobs
AtCoderJobs
なにから始めればいいの?
おすすめは過去問をいくつかを解いてみることです!
AtCoder は日本語のサイトで、これまでのコンテストの問題が公開されていてとっつきやすいです。
初心者向けの問題集として AtCoder Beginners Selection - AtCoder もあるので、
試してみてはいかがでしょうか?
また、AtCoderではほぼ毎週土曜日、初心者でも気軽に参加できる
「AtCoder Beginner Contest(通称ABC)」も開催しています!
私も用事がないときはなるべく参加して勉強しています。
もし本で勉強を始めたいと思う人は、これらの本が有名なのでおすすめです。
・説明が充実しており、章立ても初心者向けでわかりやすい
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
- 作者: 渡部有隆,Ozy(協力),秋葉拓哉(協力)
- 出版社/メーカー: マイナビ
- 発売日: 2015/01/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド
- 作者: 高橋直大
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2013/08/14
- メディア: Kindle版
- この商品を含むブログを見る
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 473回
- この商品を含むブログ (36件) を見る
AtCoderを利用する際の便利ツールなど
AtCoder Problems
AtCoderの問題の解答状況を一覧できます。
他のユーザーとの比較もできるので、モチベーションアップに利用しよう!
AtCoder ProblemsAtCoder Scores
AtCoderの問題を点数順に並べて解答状況を確認できるサイト。
AtCoder ScoresComfortable Atcoder
AtCoderを使いやすくするChrome拡張。入れておくと地味に便利なのでおすすめ。
Comfortable Atcoder - Chrome Web Store
さいごに
一人でも仲間を増やして一緒に楽しんでいけたらいいなと思って、いろいろ書いてみました。
だいぶ駆け足で書いてしまったので、分かりづらい部分多々あると思いますが、
少しでも興味を持ったらぜひこの世界に足を踏み入れてください!
一緒にスキルアップしましょう!
わからないことがあればコメントやTwitterなど、気軽にご連絡いただければお答えします。