本の虫: 60%の人間はプログラミングの素質がないという記事に対して、こんなTweetが目についた。
cpplover.blogspot.jp/2012/05/60.htmlこれうまく採用試験に出来ないかなぁ。
— どぅみ (@yoshidumi) May 18, 2012
なかなか面白そうだ。この問題をプログラマーの採用試験に適用するには、Javaのような有名な言語ではだめだ。なぜならば、このようなよくある文法は、すでに知られているからだ。
究極的に、この問題とは、「未知の言語に対して規則を生成して一貫して適用できるか」どうかをみるものである。そのため、すでに言語を知っているものにはうまく働かない。
そのため、絶対に知られていない言語を使うべきである。マイナーなプログラミング言語というだけではこの用の役には立たない。そこで、独自の言語を定義する必要がある。そして、言語の定義を知らせずに、言語の規則に従った文を複数見せて、評価結果を答えさせる。
たとえば、001100111011000111100だ。
さて、このあとが難しい。この試験結果を採点するには、どのような規則を推測したかということは考慮せず、推測した規則を一貫して適用したかをみる。どのような規則を推測したか、被験者に聞いてはならない。あくまで、外からの観測から採点しなければならない。この問題を正しく採点するのは難しい。採点しやすい言語を考案する必要もあるだろう。
したがって、問題の出題と採点には、形式言語の知識などが必要であろう。実はこの手の規則を見つけるのがものすごく得意な人間がいる。暗号解読の研究者だ。ある有名な暗号解読の研究者は、子供の頃、友人が作ったどんな暗号でも、数日で解いてしまったという。未知の規則性のある言語から、その規則性を見つけるのが得意な人間がいるのだ。
ということは、暗号解読や、ある種のパズルの才能のある人間は、プログラミングの才能もあるのだろうか。
ちなみに、上記の言語の意味は、直訳すると、「生命の危機に瀕している場合、ベラベラしゃべる者の隣に立つな」である。これを正しく答えられたものは、相当にオタクである。しかし、今日ではGoogleという存在があるので、本物のオタクを見分けるのが厄介だ
No comments:
Post a Comment