CheckiOをやってみた(現在Lv10)
checkiOってサービスをやってみた。
web上でpythonのプログラミング問題を解いていくサービスなんだけど、
なんと問題を解かないとユーザー登録すらできない(笑)
結構楽しくて、問題を解くごとにLvが上がるんだけど、
初めて一週間で20問ぐらい解いてLv10になった。
▼これがステータス画面
問題はいくつかのステージでグループ分けされていて、
一つのステージをある程度クリアすると次のステージにいけるようになってる。
とりあえず私は一番最初の場所のHOMEとLIBRARY2.0を全部解いて、
今はELECTRONIC STATIONを進めているところ。
だんだん問題が難しくなってきていて苦戦中。。。
問題はweb上のエディタでプログラミングして、「Run&check」ボタンを押すと自動でテストケースが実行されるので、全部のテストケースを満たせばクリア。
問題を解くと他の人の答えが見れて、レビューしたり、「いいね」とか付けれる。
▼問題を解いたところ。左側がエディタ。
▼私の解答一覧。自分の解答に「いいね」がつくとやっぱり嬉しい。
問題は英語で出題されるけど、テストケースが示されるので、
英語ができなくてもなんとなくで解答できる(笑)
テストファーストの良い例。
▼これはリストから1つしかない要素を取り除く問題。
checkiOは、英語と、美しいプログラミングが学べるよいツールだと思う。
ちなみに一番気に入った問題は「Transposed Matrix」
行列を反転させたリストを返す問題で、自分の解答は10行ぐらいだったけど、
clear部門の一位の人の解答は1行だった(笑)
pythonのシンプルさとか美しさを感じたね。
checkiOは、本で勉強したり、大学とか専門学校とかで座学受けるより実践的でずっといいと思う。
きっとこれからこーゆーイケてるプログラミング教育サービスがいっぱいできて、
世界中の若い子はどんどんプログラミングを学ぶんだろーなーと思った。
pythonの設計思想の話だと、PEP 20 -- The Zen of Pythonが好き。
> The Zen of Python
> Beautiful is better than ugly.
> (汚いよりも美しい方が良い)
> Simple is better than complex.
> (複雑よりもシンプルな方が良い)
> If the implementation is hard to explain, it's a bad idea.
> (説明が難しいのなら、その実装は良くない)
> If the implementation is easy to explain, it may be a good idea.
> (説明がカンタンなら、その実装は良いかもね)