理解の階層
- A: 概念Xを理解したという気がする
- B: 概念Xを使うサンプルコードを実装する
- C: 概念Xを使う実用的なコードを書く
- D: 概念Xを人に教える
- E: 概念Xを使った実用的なソフトウェアを作る上で障害になる概念X自体とはあんまり関係ない問題を解決する
- F: 概念Xを使って実用的なソフトウェアを作ろうと思ったら概念X自体の問題点に気づいてそれを修正する
- G: そもそも概念Xをその目的に使うのが間違いであると考えて概念Yを作る
いきなりGに行くのが中二病。
具体例
- A: PageRankを理解したという気がする
- B: PageRankのサンプルコードを書いてみる。PageRankの計算 どう書く?org
- C: PageRankを使って何か手元のデータにランク付けするようなコードを書いてみる
- D: PageRankを人に教える
- E: Cで作ったPageRankのプログラムに大規模なデータを食わせてみたら行列の計算量的な問題で遅くて使い物にならないのでそこらへんを勉強してなんとかする
かな?