2009年2月16日月曜日

「わかる」ことのむずかしさ

久しぶりに西田亙氏のブログを訪れてみた。西田氏は、結城先生と並んで私が尊敬しているテクニカルライター。私から見たお二人の共通点は、理解していることと理解していないことの境界線がはっきりしているということ。

2009年以降の氏のブログの更新に先日初めて気づいたが、2月8日のエントリー

「わからない」という方法 橋本治

に私は共感を覚えた。共感を覚えた理由はその内容が私がこれまで何度も直面してきた問題そのものだったから。

よくよく問いかけてみると、私はこれまで物事を「理解できた!」という体験がないのかもしれない。何の分野であれ、人から質問を受けた場合、私は簡単な答えであれば用意することができる。しかし、物事の根本を追及しようとすると必ずあるレベルで突っかかる。なんで1+1は2なの?と言われたら、今の私にはそういう風に自然数が定義されているからとしか答えようがない。なんでそういう風に定義されているの?と聞かれればお手上げである。だいたいwhyを3回連発されると、私は返答できなくなってしまう。

(木の深さ優先探索で例えて、質問の出所をルート、1回のwhyに答えられたら子ノードに移れるとすると、だいたいルートからみて孫ノードまでなんとかいけるかどうかってとこ。ひ孫ノードにはなかなか辿りつけない)

そして最近はものごとを理解するために無限ループに陥っている。

  1. わからなければ調べればいいじゃない?

  2. しかし人生他にも手を回さなければいけないことがたくさんある。時間には限りがあるのだ

  3. でも本当に理解したいのであれば、いつでもそのことを考えているはず

  4. 結局私は限られた時間を言い訳にして、本当に物事を理解しようなどとは望んでないのかもしれない

  5. よし、やっぱり他のすべてを犠牲にして物事の理解だけにのみ時間を費やそう

  6. この問題はどうもそう簡単に解けるようにはできていない。いま自分の理解ではここまでしかたどり着けない (1へもどる)


そういう意味で、無限ループを抜けて連発whyに答えられるようになった人を私は尊敬する。おそらく一人であれこれ考え抜いた方に違いない。西田氏のおっしゃる
私達一人一人が地を這うことができれば、それが理想かもしれませんが、これには膨大な時間と手間、そして効率よく這い回る技術が必要とされます。現実的ではありません。では、どうすれば最小限の努力で「わかる」ようになるのか?
それは、橋本氏が語ったように一人でも多くの著者が「めんどくさいことをやる覚悟」を決め、「一人で地を這う」。その上で、「自分の中から出てきたものを本に著す」。これしかないと、私は思うのです。

がまさに理解への王道だと思う。結城先生も西田氏もきっとこの姿勢が染み付いているのではないだろうか。

やはり自分はまだまだだなと思う。ただし、自分が物事を理解しているかどうかをチェックする方法ならある。結城先生のブログのこのエントリーだ。
自分が「それ」を理解しているかどうかを試すには、何も見ずに「それ」を紙に書けるかどうかを調べればいい。

2009年2月13日金曜日

Amazon Tech Talk

に参加してきました。このtech talkはずいぶん前からポスターで告知があったせいか、部屋に入りきらないほどの生徒が詰めかけました。



プレゼンターはSoftware Development ManagerのJohn Thimsen氏。

Talkの内容はビジネスの概要とpersonalizationでした。後者のセッションの焦点は、ユーザが欲しがりそうな推薦商品をどれだけ素早く表示するか、その手法の概要でした。

手法の概要はこちらでもご覧になれます。



インド系の学生が多かったと思います。Talkのあとに履歴書を提出している生徒も数多く見られました。

今現在は夏のインターンのポジションしかないとのことですが、数週間後にフルタイムのポジションについても受け付けるとのことでした。

私もそろそろ履歴書を更新しないと~

2009年2月8日日曜日

重い・・・

来週締切の課題がです(^_^;
前々回の投稿で述べたことは現実のものとなり、もはやゆったりした感じは微塵もありません。。。

Analysisでは、架空のボードゲームをUMLのクラス図でデザイン。少なくとも3つのGoFデザインパターンを含めること。

Architectureは、とあるアーキテクチャスタイルに基づいてシステムを設計そして実装。設計から実装に至る過程で、自分が下した判断の基準をすべて説明すること。数ある設計候補からどうして現在のものをピックアップしたのか。

Algorithmsは、課題のプレゼンと30分のクイズが控えてます。最近の授業のテーマはアルゴリズムの実行速度のlower boundとupper boundを期待値で導き出す、などなど。まあ今のところソーティングばっかりなんですが。グラフ理論や動的計画法のような、私にとってのメイン料理は3月以降になりそうです。

今期は授業で取り扱う内容がproblem spaceからsolution spaceに移ったことで、よりテクニカルな部分が増えました。なんだか前学期よりも面白い気がします。