『ソフトウェア開発者採用ガイド』を読んだ。Joel が採用のポリシーを熱く語っている。
耳が痛いのが P.108 の言葉。若干文を変えてある。
多くの「スクリプト屋」たちは JavaScript のスニペットをホームページにコピーするところからプログラミングを始め、それから Perl を学ぶのだが、ポインタや再帰、データ構造について学ぶことはなく、彼らには我々の求めるクオリティのコードは決して作ることができない。
ポインタというか C 言語を知らなくとも Web プログラマを名乗れるのが現実。かくいう自分も C を書いたことが無く (たった今 Hello World をコンパイルした)、ポインタを概念でしか理解していない程度。再帰やデータ構造については、昔、情報処理技術者試験を受ける際に暗記したが、今では B 木って何だっけ?という体たらく。非常に良くない。コンピュータサイエンスには精通しておくべき、というのは頭ではわかっているのだが。
話は変わって、Fog Creek では最初の面接で以下のような問題を出すという。HTML が「プログラミング」と思っている人を除外するためらしい。FizzBuzz に近い。
- 文字列が大文字のアルファベット A-Z ではじまるかどうかを調べる関数を書け。
- 与えられた半径を持つ円の面積を求める関数を書け。
- 配列の要素の値を加え合わせよ。
せっかくなので 1 を JavaScript で解いた。
function isUppercase(word) { return word.match(/^[A-Z]/) != null; }
なんのひねりもない。