2008/06/23
ほんとのプログラマ?
ほんとのプログラマーは扱いにくいけど良いのかい? - オレドコblog
たぶん、ほんとのプログラマが書いたコードはすばらしすぎて凡人には読めないと思いますね。
ここだけじゃなくて、ちょくちょくこの手の話を目にするんだけど、 なんか変じゃないかなあ。もっと変なのはこの手の話を根拠に、 「だから学生の頃からばりばりプログラムを書いてたようなのより 未経験者を一から教育したほうがいい」みたいな流れになること なんだけど (引用元がそうだというのではなく、そういう流れを ちょくちょく目にするような気がするので)。
職業脚本家は、誰にも理解できないようなシナリオを書いたら 失格だけど、だからといって「なまじ書けるやつより未経験者を 教育した方がいい」なんて話にならないよね。初心者が書いた シナリオとプロが書いたそれとじゃ天と地ほど違う。それでいて プロの作品が凡人に理解できないなんてことはないだろう。 (芸術として、オーディエンスを絞って書いてるものは除く。 あくまで依頼されて書くことができる「職業脚本家」の話)。
なんでプログラムだと (スキルが低い, 誰にでもわかる)と (スキルが高い, 難解) のふたつだけであるかのように論じられるんだろう。
シナリオの場合でも、オーディエンスに ある程度のバックグラウンドを仮定するのが普通で、 例えば違う文化のところに持ってくと理解されないってことは ある。プログラム界の状況はオーディエンス (ここでは コードの触れる他のプログラマ) のバックグラウンドの平均が 期待できるほどに高くないという状況になってしまっている、 という説明はあり得る。で、その状況で仕方なく「未経験者を…」 とやってると結局いつまでたっても底上げされないという悪循環なのかな。
今、インディペンデントの映画の撮影に参加している。 低予算でスタッフも最低限の人員しかいないし、みんな他の 仕事を持ってるからまとめて休暇を取れるこの2週間で全部撮りきらないと ならないんで1ショット1ショットを納得行くまで撮りきるってことは なかなかできないけれど、 スタッフもキャストも全員が自分の役割をわかってて チームとしていい感じで回ってる。ソフトの開発が同じように できない理由はないと思うのだ。
Tag: Programming
2008/06/18
職環境としての都市と田舎について、またはそれぞれのベンチャー企業について
私はshi3zさんほど人脈が広くなし直接シリコンバレーで 働いたことはないけれど、それでも見聞きしている範囲の話とは 一致する。そういえば昔、初めてこっちの友人から起業に誘われた時に 個人保証をしなくてよいというところがどうしても合点がいかなくて 何度も何度も確認したのを思い出した。
ただ上のエントリの、「ファーストクラスで移動し、スイートにしか泊まらない」 社長の話は例が偏ってるかなと思った。確かにITバブル期にはそういう 話をよく聞いたけれど、少なくとも現在はVCの方も厳しくなっているし、 起業家の方も「大きな資金を入れて会社のコントロールを奪われるよりも なるべく株は自分で握っておきたい」と思う人が増えてると感じる。 入れた資金が大きいほど、exitの戦略も限られるしね。
若い起業家が集まってるnews.ycでは よく「いかに安く暮らすか/安く会社を回すか」というツリーが立つし、 私が個人的に知っている起業家(シリアルアントレプルナー含む)達も 金にカタい人が多い。
(ケチ、というのではなく、無駄金を使わないということ。 例えばエコノミーでラップトップもろくに開けず よく休めもせずに移動して疲労を貯めるくらいなら ビジネスで飛ぶ方がトータルでは得だろうし、 ホテルのせわしないロビーでデモするよりはスイートを借りて デモした方が良い場合もあるだろう。また、優秀な人を獲れるなら 水準以上の給与を払ってもペイするだろう。ただ、 自分の生活は極力シンプルにして生活費を抑えてたりする。)
Tag: Startup
2008/06/14
Lisp求人?
orbitzの航空運賃検索システムをLispで作ったところがハッカーを求めている。 中ではJavaとかも使ってるらしいので、必ずしもLispを使うポジションとは 限らないけど (でも "Computer Scientist" ポジションならLispの可能性は 高い?)。興味があったら 彼らのパズルにチャレンジしてみよう。
2008/06/11
らむ太語録
- しゃーぼんまーだー (しゃぼん玉)
- くゆくゆまわってゆ (くるくる回ってる)
「らりるれろ」が「やいゆえよ」になるのでピノコみたいだ。 最近はひっきりなしに「みてみて」と言っていろんなものを 見せにくるようになった。
主語+副詞句+述語の順のセンテンスが組み立てられるようになった。 こういう文法をどうやって獲得してくのか不思議である。(主語,動詞) のペア(順不同)で叙述することを理解するってのはわからんでもないんだけど、 そこに修飾句が加わって一定の構造を持つことをどう見出すのか。
あと、「わからない単語/新しい単語」を分離してスポットできている。 これは私自身も英語の学習過程で経験がある。
Tag: 生活
2008/06/06
ソート
計算量はO(N log N)だけど、クイックソートより遅いし、安定じゃないので、あんまり活用法が見出せないところですが、バランスの良い木の作り方がわかったので収穫アリでした。
クイックソートってある意味スゲー簡単にコーディングできる割に高速なアルゴリズムではあるんだけど、落とし穴がそこかしこにあるので使うときには注意が必要(な場合もある)。 […] ナイーブに組んでると、再帰のレベルが(ほぼ)データの長さになるのでスタックオーバーフローが簡単に起きる (で、大概の教科書にはそのナイーブなやり方しか解説がない)。
Gaucheの組み込みの(Cで実装された)ソートはデフォルトではQuick Sortで始めて、 再帰の深さが ceiling(2*log(N)) を越えた時にHeap Sortにスイッチするように してる。この技は(もう覚えてないけど、コメントによれば)TAOCPに出ていたようだ。 Quick SortもHeap Sortもin-placeでできるので、既にQuick Sortでソート済みの 連続領域がいくつかある状態でそれぞれの領域にそのままHeap Sortを適用できるのは便利。
ただ、このアルゴリズムは比較関数を省略してデフォルトのを使った場合に限られてて、 比較関数を渡した時はSchemeで書かれたMerge Sortになる。 Scheme関数をCからコールバックするオーバヘッドのせいで、pure Schemeの実装の 方が速かったからだ。(あと、stable-sortを使うと常にMerge Sortになる)。 必要以上に複雑になっている気はしないでもない。 思い切って全部Merge Sortにした方がすっきりするだろうけど、 アロケーション無しでソートしたい時もあるんだよなあ。
Tags: Programming, Gauche
