Sep 12, 2011

  • ガッコウをやめよう(これは冗談だ。まともにうけないでほしい。ガッコウは行こう。ガッコウは君のためになる。ビタミンも重要だ。)
  • プログラミングが大好きであること。
  • マスターするには気の遠くなるくらいの時間を費やさなくてはいけない。近道はないし、一番ためになる教訓は、一番苦労して得るものだ。
  • 一番重要で一番やっかいなスキルはシステムを設計するための判断力だ。限りなくシンプルなデザイン(as simple as possible but not simpler)というのはなかなか教えられるものではなく、大方経験を重ねて覚えるものだ。
  • 幅広く覚えるほうが掘り下げるより大事だと思う。幅広い知識はお互いに補完しあって、大域的な理解や、新しい分野へのとっかかりにつながる。掘り 下げた知識というのは大体その分野にとどまるもの。浅く広くシステム全体を理解していたほうが、ある部分を熟知しているより速くソフトウェアが開発でき る。
  • プログラミングに限ったことではないけど、複雑なシステムを理解するには、全体のしっかりとしたモデルを頭の中に持つことがカギとなる。おおまか な全体図をまず把握して、そこから部分的につめていくことが大事だ。「広く浅く覚えよう」というのも、広く浅く覚えた方が、全体像を把握しやすいからだ。 頭の中のモデルがしっかりできていれば、システム全体の挙動を把握・推測することもできるようになる。
  • 質v.s.スピードという二律背反の関係は、局所的なものでしかない。大域的には、片方を犠牲にした場合、知らぬうちにもう一つも犠牲にしているということをお忘れなく。
  • 「なぜ」「どうして」そうなるのか常に考えること。

ぼくはこうしてプログラミングを覚えた (via yukung)