IQ120の口コミ

病院・鍼灸・整体等、八王子周辺のものをレビュー

paizaでCランクしか取れなかった俺の話

   

paizaというサイトで自分のプログラミング力が試せるらしいので、やってみた。

まずはDランクの問題から。
一番慣れた言語はAS3だけど、そんなものは選択肢にないから、数年ぶりのPHPで。
C#でもいいけど、こういうのはスクリプト言語の方が良さそうな気がするんだ。
で、1問目は当然のように100点。
Dランクは構文さえ分かってれば解けるレベルのようだ。
続いて、PHPを思い出すためにもう一問Dランクを解いたが、何故か70点。
間違いとされているであろう部分は分かるが、理由が分からない。
一応もう一問Dランクやって、今度は100点。

次はCランク。
問題自体は楽勝かと思いきや、標準入力から複数行のデータを取得する方法が分からずに想定時間切れ。
主にサイト作り用のPHPで、標準入力なんて使ったことないから、そんなもん知らねえよ。
とりあえずCは余裕っぽいので、Bに進もう。

標準入力の取得仕方を調べ、Bランクの問題で正解率が高く平均解答時間が短いのを選び、チャレンジ。
問題の難しさは先ほどのCランクとほぼ同じ。
これは余裕だと高を括りながらコーディングするも、やはり標準入力が取得できない。
コピペしたコードが間違っていたようだ。
これのせいで時間が無くなり解くのを断念。

そして次は、ちゃんと動作確認もした
$a;
while ('' != $line = trim(fgets(STDIN))) $a[]=$line;
のコードを準備し、別のBランク問題を解き始めてみた。
が、今度の問題、普通にむずい。
さっきと同じBランクの筈なのに、明らかに難易度が違う。
一度問題文を流し読みしただけでは、どんなコードを書けばいいのか、すぐには思いつかない。
制限時間40分の中、20分程考え、多分こんな感じだろうとコードにし、35分弱で書き終わり、提出。
テストケースを3つ失敗し70点。
これでCランクを獲得した。

最初のとの差があり過ぎてどっちが本当のBランクなんだろうと、後2つほど適当に同ランクの問題をやってみる。
どちらも問われてる内容は単純だけど、コードを書くのは少し手間がかかりそうって感じ。
そういうのはめんどいから解かずに放置。
どうやら、最初のが極端に簡単だっただけのようだ。
Bランクは読み解きに時間がかかるか、コードに時間がかかるかの両パターンがあるみたいだね。
どちらにしても、想定時間以内に終わらせるのは簡単ではなさそう。

さて、ここで、突然の自己紹介。
俺のプログラミング歴は5年(大学での授業を入れたら9年)。
肩こりの痛みで1日1時間くらいしかできないとはいえ、もう5年もやっているなら、プログラマーの上位40%を想定してるBランクくらいは取れなきゃ恥ずかしい。
じゃあ、Bランクを取るにはどうしたらいいか?
コードを提出できるのは一度きり。
俺の普段のプログラミングスタイルは、とりあえずさっと書いてデバッグしながら直していくというものだから、ノーミスで100点狙いは難しい。
ならばミスること前提でいこう。
2問目で70点でCランクだったんだから、Aランクの問題で70点取ればBランクが貰えるに違いない。
そしてもしも100点なら、一つ飛ばしてAランクじゃん。
Bランクが取れるまでBの問題をやるより、俺はAランクをやったるぜ。

Aランクの問題を2つ選んでみる。
どちらも問いそのものは難しくないが、コードにするとなると、結構複雑でかなり時間がかかりそうだ。
肩が痛いのに長いコードは書きたくないからパス。
3つ目、ぱっと見どうしたらいいのか分からない問題が来た。これをやろう。
解き始めて20分くらいで方向が見え、50分弱で提出前動作確認は合ってた。
想定解答時間は2時間あるけど、まあいいだろうと、提出。
そんで30点でCランク。
マジかぁ。
まあまあ自信あったんだけどな。
どこが違うのか20分ほど考えて、凡ミスに気付く。
上書きしちゃいけない変数が上書きされていた。
20秒でくらいで直して、再提出、90点。
これだったらAランクが取れたらしい。
100点じゃなくてもいいんだね。

ケアレスミスさえしなければAランクが取れるなら、もう1問Aランクをやってみよう。
今度のは大分簡単そう。
しかし、時間が40分しかない。
毎回ググって関数名を調べてるような俺では、当たり前のようにタイムオーバー。
制限時間いっぱいまで粘る気はないから、ここで終了。
10点でDランク。
ああ、糞っ。

先ほどと同様に考えたら、Sランクで30点取ればBランクが…。
いや、もうやめておこう。
これのせいで4日もHaxeを触れてない。
別に転職したいわけじゃないから、paizaでランクを取る必要は全くないんだ。
こんなことをしてる暇があるなら、自作ゲームのプログラミングをしなければ。
肩こりのせいで、プログラミングができる時間は限られているんだから、有効に使わないと。
と言うわけで、最終的にCランクしか取れなかった俺の感想。

Bランクは素早く正確なコードを書けないと取れないから、このレベルのプログラマーは確かに上位40%くらいなんだろう。
職業でプログラマーを名乗っていいのはここからかな。

Aランクの人は間違いなく優秀。
プログラマーとして相当熟練してるか、地頭が良い人じゃないと無理。
ブログや2ちゃんでAランクは取れて当然とか言う奴は、性格が悪いかハイレベルな集団にしか属したことないかのどっちか。

Sランクは、例題を見た限り解けなくはないけど、俺がやったら一発目は多分ミスるし、入力データが大きいと計算量で引っ掛かりそう。
取れたら凄いとは思う。
でも上位2%程少なくはないような。
IQとかと違って、プログラミングスキルは正規分布の形にならない気がする。
この問題(パイザとは無関係)が解ける位の頭で、ある程度プログラミングに慣れてたらいけるのではと。

とりあえず、パズルゲームとしてはpaizaはそこそこ楽しめた。
コードを考えるのは面白い。
でもコードを書いたり修正するのはだるい。
ブラウザ上のエディタは補完効かないし、デバッグ機能も無いからね。
正確性を求めるなら、テストケースも自分で作らないといけないし。

小学生にhuman resource machineをやらせて、クリアできた人は次にpaizaって流れにすれば、不足してるIT人材を増やすには良いのかもしれない。

adtes




 - プログラミング