プログラマでアルゴリズムコンテストの問題が全く解けないというのもまずいだろ、というわけで以前買った本の問題を少しずつ解き始めています。
プログラミングコンテストチャレンジブックposted with amazlet at 11.08.07
なかなか解けないならまだしも、答えを見ても何をやっているのかさっぱりわからなかったりして力不足を痛感。しかし、極々たまに解き方がわかるとキター!!状態。今まで頭になかった考えが閃くのは刺激的で気持ちいいです。学生のときはよく感じたものだけど、社会人になってから忘れていた感覚ですね、これ。
とアルゴリズムの勉強をやっているときに、こんな記事を見つけたり。
Rails Hub情報局: 実力を測るのにFizzBuzzも二分探索も使えない
うーん、FizzBuzz問題とか新人にやらせたら?って思っていた自分としては、考えさせられる内容。
確かに、ターゲットの技術が明確になっている場合は、アルゴリズムの問題ではなく、具体的な機能を持ったプログラムを記述させた方が採用時の問題としては効率がよさそうです。
一方で、何か問題があって、それに当てはまるアルゴリズムを組み合わせるようなものは知識と応用力を問うことになるので悪くないんじゃないかと。クイックソートを書けとかそういう問題は知識だけの問題になりそうだからあまりよくないかな。
まぁ、両方やらせればいいんじゃね?と思った次第。
何かを思いついて、作り出していくような思考をもてるプレイヤーはアルゴリズムに強いイメージがあります。こういう人は役に立つと思うので、アルゴリズムコンテストの問題も無駄じゃないと思っています。
しかし、新人プログラマを採用するとき、なにかしらのプログラムを書かせてスキルを測る日本の会社ってあまり聞かないような気がします。それが産業全体の技術力を落としていたりしませんかね?一定数はできる人が入っていないと破綻するような。
FizzBuzz問題も解けないような人がプログラマとして開発会社に入社していたりするのは、どうなんだろう?って思っちゃいます*1。特に満足のいく教育制度のない中小ならね。
まぁ、もっと可哀想なのは、プログラムに興味がないのに業界を知らないまま開発会社に入社してしまった人かもしれませんが・・・。