今年の三月頃に Aidemy なるWeb学習サービスをやってみて、これはかなり社会貢献度が高いと思った事があったが、それよりももっと求職と教育が結びついたサービスがあった。paiza だ。
入門者向けに声優をつかったビデオ教材のようなものなどが大量に揃えてあり、いきなりン十万要求してくるAidemy よりも敷居が低い。まぁもちろん敷居が低いのは広く浅く初歩の初歩からできるからというのもある。Aidemy は jupyter notebook をユーザー向けに公開している形だった。paiza の教育系サービスは使ってないのでよくわからない。とりあえずスキルチェックなるものがあってそれをやってみたら、これは競技プログラミングの形式をとりいれているようだ。まずお題があり、それを処理するプログラムを書き、複数のテストケースを通せるか否かで点数が付くという形式。提出時間の配点もある。スキルチェックのレベルは低い方から D C B A S と各ランクある。自分の課題としていまだに Python2 から 3 へ移行できていないというのがあるので、Python3 に慣れるのにちょうどいいと、とりあえず順番にやっていったところ、六つ目でSランクに到達してしまった。まぁスキルチェックといっても S とか A のあたりは頓知力あるいはアルゴリズムの知識の有無を問うようなものかもしれない。たまたま相性のいいの(S010)にあたって一番上のSランクに到達したのでいい気になって他のSランクの問題をやってみると次は50点(S015)。なんだ簡単だなと計算量を甘くみたせいだ。評価に関係ないが再挑戦はできるので意地になって100点になるまでやりなおし、勢いでその次も選ぶと、経路探索問題のようなもの(S013)にあたった。眠かったので一時間くらいあれこれやっても出口が見えずなげだして寝てしまったが、起きてから地道にやったらちゃんと通るものを書けた。寝てる間に時間切れとなり0点。ここでさすがに反省してとりあえず手を止めた。
問題 | 副題 | 点数 | 時間 | 提出日時 |
---|---|---|---|---|
D007 | N倍の文字列 | 100 | 2m58s | 20180901 1729 |
C016 | Leet文字列 | 100 | 10m53s | 20180901 1744 |
B012 | チェックディジット | 100 | 39m59s | 20180901 1828 |
A004 | あみだくじ | 80 | 54m25s | 20180901 2241 |
A003 | 盤面ゲーム | 86 | 191m15s | 20180902 1216 |
S010 | ひとりすごろく | 100 | 17m9s | 20180902 1339 |
S015 | ABC文字列 | 50 | 7m40s | 20180902 1401 |
S013 | 理想のタイムトラベル | 0 | 459m15s | 20180903 0440 |
paiza の Sランクについて市中の声をググるとそこまで凝ったものでもないようだ。ピラミッド図がありSランクは上位2%となっているがどうもこの図は昔から変わってないのでこれくらいになるよう問題を作っているつもりという理念図かもしれない。おもしろいのは昔1%だったが競技プログラミングやってる人が大量に流れこんできて2%になったみたいな言説がある事だが、そんなこまかいところまで調整してるならもっとその下の方の大雑把な数字も変化するだろう。やはり人間、ピラミッドの上にいるように見せかけられると勘違いするものらしい。それはそれとして競技プログラミングなるものが流行っている実態をそこで知ったので、その巣窟である AtCoder もちょっとやってみた。といっても AtCoder 初心者向けのもの( AtCoder Biginners Selection )しかやってない。やりかたはお題がありそのお題を処理できるようなプログラムを書き、テストケースを通ってはじめてAC(ACcepted)となる。全部公開されてるので中には人のをコピペしてる奴もいるが、お題が公開されてからの時間も記録されているので本番の競技(コンテスト)の場合提出までの速さが評価のうちに入るんだろう。まぁ既に公開されてから半年たっているのでそんなのどうでもいいことだが、paiza とちがって実行速度が詳細に出てくるので、ついついそれを最速に近づけるまで何回もやってしまった。Python3は所詮インタプリタなのである程度以上は速度があがらない( AtCoder の場合17ms)。それに、これでやってみてはじめてよくわかったが、Python3はプログラムの記述を短くしても冗長に書いてもあんまり実行速度に差がない。どうやっても17ms以上にはならず、どういうロジックで処理を組み立てるのかが重要になる。そういう意味では教育言語としてかなりよいようにおもった。
それはそれとして AtCoder の ABS の Python3 で最速目指していろいろやってるうちにあることに気付いた。テストケースが甘い。たぶん paiza よりも甘い。業務的には問題があるレベルだ。paiza のは境界値とか最大値とかをチクチクついてくるがやはり業務経験者が作ってるんだろう。AtCoderのは初心者向けだから手抜いてあるのかもしれんがあれではいかんな。 (20180914追記 入門向けのところだから甘かっただけでAGCだとちゃんと境界値とかチクチク突くようなテストケースが組んであった。つらい)
といいつつもAtCoderのABCでヒーヒー言ってるレベルなのでエラそうなことは言えない。
あと、習性で paiza の背景をしらべたらそれもおもしろかった。運営会社のギノの100%株主がエムアウト社で、スタートアップ支援会社ということのようだが、沿革をみるとどうみてもIT系という感じではなく手当たり次第に出資しているようにもみえ、IT系に手を出したのは2010年代だ。この会長田口弘がおもしろかった。もともとミスミという部品商社の社長だったようだが2000年代の初頭にコンサル集団に会社をあけわたしている。エムアウトが当初ジュエリーやアートに凝っていたのは社長やめた田口氏の趣味だったんだろう。この田口氏はミスミ時代から人材育成ということに力をいれていたらしいので、今のギノの路線もなるほどというところがある。
ところでミスミのその後についてコンサル集団がうまいことやって急成長した、みたいな記事をみたのでそうなのかとおもっていたのだが、田口時代を詳細に分析した論文をみつけた。それをみると、コンサル集団の功績とされているものもどうも田口氏のグランドデザインの延長上にあるようだった。コンサルはゲスなやりかたで低迷から急成長へ一時的に持っていっただけか。田口氏は見事に禅譲したみたいな言説もみかけるのだが、案外部品業界に見切りを付けて調子のいいコンサルにあけわたしただけなのかもしれない。
(追記 : AtCoderも職業案内やりだしたらしい。まぁそらそうだろうなあ。プログラマってできるできないが結構はっきりしてるし。)
【AtCoderプレスリリース】プログラミングコンテスト就職・転職サービス「AtCoderJobs」が正式リリース!スカウト機能も追加!https://t.co/Neq2GLBKSm
— AtCoder (@atcoder) 2018年9月7日
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: 単行本(ソフトカバー)
- 購入: 25人 クリック: 473回
- この商品を含むブログ (36件) を見る
世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~
- 作者: Gayle Laakmann McDowell,岡田佑一,小林啓倫
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/02/27
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る