ぐるっとぐりっど

日曜プログラマがいろいろ試してみたことを、後の自分のためにまとめておく場所

PaizaでSランクになったけど残念な気持ちになった

paizaという、プログラマ向けの転職サイトがある。はてブにもときどき開発ブログがホッテントリになってる*1から、見たことある人も多いと思う。そこで何ができるかというと、難易度別の問題があって、自分のコーディングスキルを測定し、それを元にスキルに見合った転職ができるよ!ということだ。今のところ転職する気はないけど、転職の気がない人も気軽に受けてみて、と書いてあったので、試してみた。

で、Sランクまで上がったけど、問題があまりにも簡単すぎてこれでSランクとは、これじゃあ全然差が出ないじゃん、と残念な感じだった。


以下蛇足です。

これ書いてる人の素性

google code jamにここ3年くらい参加して、予選は突破するけど、1回戦を勝ち抜けないヘボいプログラマ。贔屓目に見ても中の下ぐらいの実力だと思う(このブログの他のエントリを見ればお察し)。

paizaの問題について

一応、公称としては、下記のレベルになっている。

初級(Cランクまでの問題)
if,for,while,foreach,変数、配列、連想配列、文字列操作、ソートを使って指示通りのプログラムを書けるか。回答スピード、正確性が問われる。


中級(Bランクまでの問題)
指示通りにロジックを組むだけでなく、自分で効率的なロジックを考えだせるか。またツリー構造、探索等を使いアルゴリズムを組めるか。


上級(Sランクまでの問題)
O(n²)⇒O(n)の様な計算量、メモリの削減を意識した高度なアルゴリズムが組めるか。問題によっては数学的(確率計算)問題についても問う。

https://paiza.jp/guide/guide

これはすばらしい問題たちである!こんなん無料でスキルチェックできるなんて、なんてすばらしいサービスなんでしょう!!!

ちなみに、同ページに載っている情報では、Sランクが上位2%、Aランクで上位8%らしい。

実際やってみた

ということで、各ランクの問題をひとつずつやってみた。問題内容は書いちゃダメよと書いてあったので、それは律儀に守ることにする。

Dランクの問題 → for文が書ければOKだった

Cランクの問題 → if文とfor文が書ければOKだった


うんうん、確かに初級はこの辺が求められるらしい。B問題からはもっと難しくなるんだろう。


Bランクの問題 → if文とfor文が書ければOKだった

Aランクの問題 → if文とfor文が書ければOKだった

Sランクの問題 → if文とfor文が書ければOKだった

どういうこと!?


結果として、ifとforと配列しか書いてない。

一応単に解けるだけではだめで、効率性が求められることにはなっている(省メモリとか、計算時間とか)。
でも、そんなん一度たりとも引っかからず。。。(Google code jamとか、at coderとかだと、結構この辺の効率化がキモになってきて、よくそこでつまるのだけども。。)

問題文自体は、レベルが上がると何とかややこしくなってくるけど、それは日本語的にややこしいだけで、アルゴリズム的には、その辺の入門書よりよっぽど簡単なことしか求められてない。これで上位2%って言われてもむしろ困ってしまうね。これがSの問題です、と出されてもあまり、Aとの差を感じないというか。

一応実際paiza経由で面接する場合は、書いたソースコードが企業側に送られるので、解ければ良しの糞コードでは、その後の円満な展開には期待できないことにはなってるっぽい。

感想

コードを実際に書いて、それを元に転職活動できるって考えは面白いと思うけど、正直なところ現状の問題では、Sランクですって言うのって、TOEIC600点ですって言うのと変わらないのでは、って程度に感じる*2。CodeIQのように、コーディング以外の問題も出てくるなら良いけど、コーディング一本であれば、簡単な問題(というかレベル差が出ない問題)だけでは厳しいのでは。さすがに世間で求められる水準のマックスがこの程度、ということであれば寂しいことこの上無しだし。もっと正解率5%未満とかそういった問題をバンバンだしていって欲しい。ということで今後に期待してます。

蛇足に継ぐ蛇足

調べてみると、なんかBランクぐらいから難しくて解けないって言ってる人もいるにはいるっぽいんだよなぁ

*1:過剰なまでのSIerディスりだったり、突っ込み所満載だったり

*2:900点なら自慢できるし、積極的にアピールしていきたいけど、アピールにならないし、むしろ逆効果になる場合すら