CodeIQが好きなのでもうちょっとこうなってほしいという要望

CodeIQというサービスがありまして、簡単に言うとエンジニアがプログラミングして出された問題を楽しく解くというようなものなんですね。

codeiq.jp

自分の中で波があって、数年前からだと思うのですが飛び飛びに参加しています。一年くらい前に何問か連続で解いて、しばらくノーチェックになってて、また2016年の年末からやる気になって10問ほど解きました。問題を解くというのはなかなか楽しい娯楽でして、CodeIQは好きだし今後も良い問題を出して欲しいと期待しているわけです。

期待しているだけに、問題を解くときに、もうちょっとこうなって欲しいなーと思うこともあるわけで、良い点(KPTで言えばKeep)と要望(KPTで言えばProblem)を思いつくままに書かせていただきます。

[Keep]複数の言語から使う言語を選ぶことができる

「複数言語選択可能」というタグが付いている問題は自分な好きな言語を選んで使うことができます。でも、大体は「複数言語選択可能」なので安心です。問題自体は言語とは関係ないものが多いので、言語を選べるのは嬉しいです。

私はRを練習をかねて使うことが多いです。Rで都合が悪いこともたまにあって、そういう時はJavaScriptだったりRubyだったり。言語によってバッジがもらえたりするのでたまに違う言語を使おうというモチベーションにもなります。

f:id:Akiyah:20170104013142p:plainf:id:Akiyah:20170104013143p:plain

[Keep]自動採点で正解かどうかすぐにわかる

「自動採点」タグが付いている問題は、解答したらすぐにサーバー上でテストケースが実行されて、問題ごとに正解/不正解がわかります。間違えた場合のインプットの値もわかるので、改善のヒントにもなります。

問題文のページには書かれていなかった隠れた条件(たとえば実行時間が1秒以内であること、というようなもの)もあったりするので、この自動採点機能は仕様を表現する役割としてもとても良いと思います。

f:id:Akiyah:20170104013949p:plain 

[Problem]答えをテキストでしか送れない

ここから要望です。

ソースコードを書いて自動採点を通って正解したとして、他人(問題作成者とか)がそのソースコードを見ただけでは、私がどう考えたのかわからないだろうなーと思うことは多々あります。でも、送信できるのはテキストだけなので、画像ファイルとかエクセルの表は送れないのです。

f:id:Akiyah:20170104022947p:plain

じゃあブログにでも書こうかとも考えるのですが、問題を解くというサービスであるので、ネタバレは禁止なのです。解答期間が終わるまで公開を待たなければならないのですね。ブログのネタをそんなに寝かせておけないぞと思うのですよね。忘れちゃうし。

というわけで、せめて画像ファイルを送れるようにしてもらって、問題作成者へ自分の考えを伝えたいのです。あとでCodeIQ MAGAZINEで使ってもらっても構わないので。

[Problem]実行環境のバージョンがよくわからない

これは、裏で動いているIdeoneのせいだと思うのですが、言語ごとの実行環境のバージョンがよくわからないのです。

ideone.com

実はバージョンは表示されるのです。提出するときに。たとえばRだとR-3.2.2と書かれています。で、実行してみると、paste0がエラーになるのですよ。

f:id:Akiyah:20170104020133p:plain

paste0って2012年のR-2.15.0あたりで入っていると思うのだけど。。。

あと、JavaScriptで書こうと思ってSpiderMonkeyを選択したら2014年12月頃のバージョン24で、いろいろ使えなかったり。。。サーバーサイドに実行環境を用意してくれているから最新のバージョンで遊べるぜ!!と思ったら期待はずれだったという感じです。 

[Problem]実行環境でライブラリが使えない

これまたIdeoneの制約だと思うし、やむを得ないのですが、言語の標準で入っているライブラリ以外は使えないので、ローカルで動いても提出しようとしたらエラーになる、なんてことが頻発します。任意精度整数を使おうとしてRでRmpfrとかGMPとかローカルで入れて問題を解いて、いざ提出しようとしたらダメで、うんざりしながら別言語で書きなおしたりして。。。

ある程度の有名ライブラリは入れた状態の環境を用意していてくれると嬉しいなーと思います。

[Problem]想定時間がやけに短い

想定時間の設定の選択肢が10分、20分、30分しかないのかな?

f:id:Akiyah:20170104021811p:plain

普通に手応えある難問でも、「想定時間 30分」になってて、ビビります(なれたけど)。30分と書かれていても5時間くらいかかっておかしくないです。といいながら自分だけだったら恥ずかしいけど。

難問を解くときには、問題分を読んでから、電車などの隙間時間にぼんやり考えて、時間が取れたらプログラミングして実際に解いてみるというやり方が私は多いです。だから正味の時間と、実際にかかった時間はだいぶずれてしまうのですが、それでも30分じゃ解けないよ、と思います。

いろいろ要望書いたけど期待しています

利用者として楽しいサービスなので、今後も期待しています。結城さんの問題もそろそろ新作出ますかね!?