LoginSignup
63
38

More than 5 years have passed since last update.

paizaでSランクをとって,優秀なプログラマってどうやって測るんだろうって思った話

Last updated at Posted at 2018-09-04

まとめ

「スプラトゥーンでS+とるぞ」って感覚で「paizaでSランクとるぞ」でpaizaやってたらすぐとれたって話。paizaのスキルチェックとは:thinking:ってなったけど、それって業務的なプログラムと関係なくねって思ったっていう話。
※paizaの批判記事ではありません。スキルチェックを楽しくやらせていただきました。ありがとうございました!!

本題はここから。

paizaとは

paizaとはググると以下のような感じ。

image.png

paizaはウェブサービスで、できることは以下の通り(たぶん)

  • プログラムの勉強ができる
  • 転職活動ができる
  • スキルチェックができる←今回は話す内容はコレ

スキルチェックはお題が出されてプログラムを書く感じ。
プログラムの採点はプログラム完成までの時間と、テストケースを何個通ったかで採点される。(100点満点)

お題には難易度があって、難しい問題を解いたりとかするとランクが上がる。ランクはDからSまで。

以下で練習問題ができるので、気になった人はどうぞ。
paizaプログラミングスキルチェック(練習問題)

Sランクまでの感想

一応以下のような感じ、Sランクまでいけた。スーパープログラマとか書かれてるけど、言い過ぎだと思う。
おそらくpaizaの年収は年齢とかも関係していると思われる。(不明)(多く問題を解くと上がるという噂を聞いた)(そもそも参考値)
image.png

やった問題は以下の通り。下の問題が初めにやった問題で、上の問題が後にやった問題。
全部の問題で実際にプログラムを書いている時間は合計2時間ぐらい。Sの問題は1つに30分以上かかっている。

凡例 (ランク)(問題番号):(問題タイトル)

  • S010:ひとりすごろく
  • S015:ABC文字列
  • C055:ログのフィルター
  • A009:ビームの反射
  • D029:サイコロの裏面
  • D055:ワインのキャッチコピー
  • B012:チェックディジット
  • C016:Leet文字列
  • C010:安息の地を求めて
  • D007:N倍の文字列

それぞれのランク帯の話

以下が公式の見解

image.png
出展 paizaプログラミングスキルチェック

以下が個人的な見解

ランク 個人的な感想 目安のコード量(Python) 目安の完成までの時間 スキルレベル
D if文とか知ってれば解ける。 2~5行 1~5分 プログラミング習い始め
C if文とか算術演算の仕方を知っていれば解ける。 10~20行 5~10分 プログラミング初心者
B ドットインストールの入門レベルを知っていれば解ける。 20~40行 10~40分 プログラミング初心者
A ちょいめんどい。配列をいい感じに使えると楽に解けたりする。 40~80行 30分~60分 プログラミング初心者に毛が生えた程度
S めんどい。めんどい。 60~120行 30分~90分 プログラミング初心者に毛が生えた程度

Sランクの問題はまぁめんどい。
でも、ある程度問題自体を理解できればわりと解ける。

Sランクの上位2%っていうのはなんともコメントできない。おそらく面倒くてみんな途中でやめてると推測できる。

競プロとかやったことないけど、たぶんpaizaは競プロの簡単版みたいな話だと思う。

優秀なプログラマって?:thinking:

ここからが本題。
paizaではSランクの人は「非常に高いスキル持っている」ことになっている。

それってどうよ

そもそもpaizaのスキルチェックの問題が解けたからといって業務で役に立つかといわれると、NOだと思う。

スキルチェックでの問題が業務で行うことはほぼまずないと考えられる。(アルゴリズム屋以外)
そんなことよりも、できてたほうがいいことってたくさんあるはず。でもそれってなに:thinking:

スキルチェックの問題が解けるレベルがあれば他のスキルレベルもある程度高いという意見は少しだけわかる←結論?

優秀なプログラマの条件ってなんだろう

  • 読みやすいコードを書く
  • バグをうまないコードが書ける
  • コーディングがはやい
  • ベストプラクティスをよく知っている
  • コードだけじゃなくてチーム開発とかも得意
  • コードだけじゃなく開発手法とかにも精通している
  • デザインパターンとか詳しい
  • OSSに貢献している
  • GitHubが大草原
  • なんか質問したらいい答えが返ってくる
  • 常に新しいなにかを探している
  • 言語仕様を把握している
  • 勉強会とかに行っている
  • 有名
  • お金を持っている
  • コーディングだけじゃなく運営もできる
  • 経営もできる
  • 人格者
  • 全知
  • 創設者なのにチョットデキルとか言っている
  • 優しい終身の独裁者

いろいろ挙げてみたけどあんまり納得いかない。煩雑すぎる。

優秀なプログラマってどうやって測るの

バグになりそうなコードを見つける機械学習を用いたシステムがあるらしい。
内部の実装的にはGitHub上にあるプロジェクトを教師として、変わっていきやすいコードを見つけるらしい。
そのシステムの応用として、コードに点数をつけることができたら面白そう。

以上の話はコードの測り方だが、プログラマのスキルの測り方ではない。
様々な要素が相まってその人(プログラマ)になるので、正しく人を見極めるスキルとは常人には到達できないのでは。

最後に:coffee:

いい感じにマサカリが飛んできそうな記事が書けました。
人事関係を行っている方、プログラマの方、教師の方、その他誰でも、ぜひコメントを下さい。よろしくお願いいたします。

63
38
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
38