Check iOやってる

最近Check iOやってる
http://www.checkio.org/

研究室、Python使う人が多い。一部の人達がCheck iOやってる。Check iOはPython専用のプログラミングパズル?みたいなサイトで、ゲーム風になってる。

僕は話題になった時、5,6問くらい解いて放置してたんだけど、後輩に抜かされてぐぬぬってなって、ここ数日続けてる。昨日レベル9になった。

こういうのやってると、アルゴリズムの知識が不足してるなーっと感じる。以前は、アルゴリズムを勉強するのは「勉強のための勉強」のような気がして、興味なかった。アルゴリズム、奥深すぎるし、世界中の天才が作ってくれたライブラリとか利用してればいいやって思ってた。

これまで、プログラミングとは「アプリを作ること」だと思ってた。でも、Check iOとか単純な問題でも凄い苦労したりしてショックだった。「問題を解決する」プログラムには、アルゴリズムの勉強が必要なんだなーって思い始めた。 (土曜日にやってたAtCoderの奴、途中から参加したけど、1問しか解けなかった)

研究、謎アルゴリズムとか謎手法を思いつく力必要で、みんな凄いなーって感想だった。もしかしたら、アルゴリズムを勉強すると思いつき力が身に付くのかもしれない。学部でもアルゴリズムみたいな授業あったけど、その時はまだ何もアプリ作れない人生で、「そんなことよりなんかアプリ作り方教えてくれ」って思ってて、あんまり勉強しなかった。

図書館で「珠玉のプログラミング」ぱらっと読んだ。名著扱いされてる割に最近本屋でみないけど、あっさり読めてよかった。もっかい読みたい。

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

あと、以下のどっちか買って読もうと思ってる。

最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド

最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド

ところで、Python(特に3系)、怠惰な感じがあまりないので、最近はRubyの方が好きになってきた。Python、NumpyとScipy、matplotlibが使えないCheck iOみたいな環境だとあんまり良さ感じない。