長らく更新できていなかったので、この三連休で時間があったので久々の投稿です。 今年に100本ブログ書くと言っていたのに全然かけていないので、ぼちぼち再開していきたいです。
今回は、エンジニア転職サイトのpaizaのスキルチェックで遊んでみた感想です。
paizaとは
エンジニア向けの転職マッチングサイトで、コーディング問題を説いて己のスキルが判定され、 そのスキルが高ければおいオファーが来るというのが売り、のサービス(と解釈しています)。
採用する側にとっては、求職者がどういうコードを書いているのかが分かるので、それをもとに判断できる、 というメリットを推しています。
問題の性質、レベル感
問題に関しては、お題が与えられてコードを提出し、そのコードを提出先のサーバで実行して テストケースを全て通過すれば合格という仕様で、 AtCoder などで開催される競技プログラミングの仕様と似ています。
実際に解いてみたら、Sランク問題を2問やって1問はテストはパスできたけど時間制限超過で100点ならず、2問目はめでたく時間内に正解できました。
問題の難易度としてはAtCoderで出題される問題よりもかなり優しく、ものすごくざっくり言うと、paizaのSランク問題が AtCoderのRegular Contestの2問目よりもちょっとやさしい、ぐらいの印象です。
求人にどう活きるのか
さてこのスキルチェックを経て、募集する側が求職者のスキルを判定する上で、どのような情報が得られるのでしょうか。 例えば求職者がpaizaのSランクやAランクになっていたら、何ができると判断できるのでしょうか。
判断できそうなことと, できなさそうなことを挙げてみます。
ある程度(最低限)確認できそうスキル
問題分(仕様)を読んでそれなりのスピードでなんとなく把握できる
制限時間内にコードを書くために、問題分を読んで仕様をすぐに理解しないといけません。コーディング問題と現実の仕様は複雑度が全然違いますが、まあ小難しい文章から仕様(文意)をつかむことはできると思っても良さそうです。
実装したいロジックがどのような手段であれそれなりのスピードでなんとなく実装できる。手が動く。
制限時間にそれほど余裕ないため、実装したい処理が思いついても、それを早く実装しないと制限時間内に完了できません。なのでコードの品質、可読性はともかく、やりたい処理をある程度の速度で書くことができると思って良さそうです。
この問題を解いたからといって判断できないスキル
- コードの品質、可読性
短時間でテストを通過すればよいコードを書くだけなので、リーダブルコードにあるようなきれいなコードは提出されませんし、その心構えがあるかどうかも判断できません。
- 設計に関する考え方
単一の問題を解くだけなので、ある程度の規模のコードをどうやって抽象化して設計するか, その考え方などは判断できません。
- 問題を解くためのアルゴリズム選択能力
残念ながら競技プログラミングほどの難度も問題ではないので、アルゴリズム選択に関する能力は計れません。
- コーディングに付随するのりしろ的な関連能力
開発に絡んでくるデータベース、ネットワーク、セキュリティに関する理解、バージョン管理ツールやコマンドの操作はどれぐらいの経験があるのかなどは当然わかりません。
- テストに関する考え方
テストなんてないので判断できません。
- 人となり、社風にあうか
当然わかりません。
..などど書き出すと枚挙に暇がありませんが、要するになんとなく把握できるで上げたところ以外は結局のところ会ってみるしか判断でき無いと思いました。 実際提出したコードベースに会話できるのが売りと言っていましたが、提出するコードは動けばいいだけの汚いコードなので、これだと会話しづらいかなと思いました。
私も採用の面接をする側になることもあるのですが、聞きたいのは、判断できないスキルの方に書いてあることだったりします。
色々不足点を書いてしまいましたが、コーディングスキルを判定するという発想はとてもおもしろいので、この問題の方式以外で客観的にスキルを判定できる方法があれば、 もっと良いなと思った次第です。