勉強になる、楽しい競技プログラミングはじめに以前、プログラミング初学者向けに、プログラミング問題やってみると良いよ~という記事を書きました。blog.tatehitolog.com「効率的にプログラミングを学ぶには何かを作ること!」とよく言われますが、いきなりアプリやWebサービスを作り始めるのではなく、まずはこういったプログラミング問題に取り組んでみるのも良いのではないでしょうか。このときはソニックガーデンのプログラマである伊藤さんが紹介してくださった問題に取り組みましたが、今回は競技プログラミングサイト『AtCoder』の初心者向け問題を解いてみました。結論から言うと、プログラミング問題はやっぱり勉強になるし楽しいです。新たな言語を学ぶのに良さそうです。AtCoderとは?AtCoderは競技プログラミング(プログラミングコンテスト)のサイトです。atcoder.jp定期開催されるコンテストにリアルタイムで参加するだけでなく、過去のコンテストで出題された問題に取り組むこともできます。このような問題が出題されます。円にする方法は何通りありますか。通りの硬貨の選び方は、ある種類の硬貨についてその硬貨を選ぶ枚数が異なるとき区別されます。使用する言語は自分で選択することができ、メジャーな言語はほとんど網羅されています。対応言語はこちらで確認できます。最新バージョンでない可能性があるので注意です。ちなみにAtCoderにおけるRubyのバージョンは「2.3.3」で、最新バージョンではありませんでした。Selection」という初心者向け問題集が用意されています。僕もこの問題集から取り組んでみました。atcoder.jpAtCoderの何が良いの?まだコンテストには出場していないのですが、初心者向け問題を解いてみた感想としては「勉強になる!楽しい!」です。他の人の回答が見れるの2点が「言語の勉強」の教材として優れてるな~と感じました。過去に出題された問題にいつでも取り組むことができます。その数、約2000問。これだけあれば問題に困ることはないでしょう。Problems」が便利です。こんな感じで、自分のIDを入力すると、過去問の進捗度が数値化・グラフで可視化されます。ゲーム感覚で進められるので楽しいです。※画像はAtCoder社長の高橋さんのデータを拝借しました。(僕はまだ初心者向け問題を終えたばかりで見てもつまらないデータなので......。)他の人の回答が見れるAtCoderでは自分だけでなく、他の人が提出した回答も閲覧できるようになっています。これがすばらしくて、他の人のコードと自分のコードを比べることで、ものすごく勉強になります!自分では気づけなかったアルゴリズムを使っていたり、知らなかった標準ライブラリを使っていたりと、気づきを多く得られます。問題に取り組む際は、「正解した!さあ次の問題~!」ではなく他の人の回答を見ると勉強になるのでおすすめです。あとがきちまたでは「競技プログラミングは業務には活かせない」という意見もあったりします。たしかに、高橋さんのブログにもある通り、競プロを突き詰めると一般の企業では力を持て余すようになるみたいですね。最初に書いた通り「経験のない言語の学習」においてはうってつけの教材ではないかな~と感じました。今後はリアルタイムでコンテストに参加してみたいと思います。ジョン...2018-10-03プログラミング学習サイト「Progate」はプログラミング初心者におすすめこんにちは、たてひとです。プログラミングのオンライン学習サ...2018-09-25プログラミングの勉強は挫折しても問題ないよ【挫折こそ継続するコツ】プログラミングの勉強は挫折しやすいです。