上司の「できるプログラマになる!"伝える"技術」(ISBN978-4-7741-4642-3)の1章を読み、感想を書けとのお達しで作成。
重要と思ったところだけ掻い摘んでいます。
1.1 頭脳労働の極端な例
- プログラマとは、人間とコンピュータの境界に立つ特殊な職業である
単純作業と頭脳労働の違い
- 単純作業においては成果は「線形」であり、労力と成果は比例すると筆者は主張している。
- 頭脳労働は、ゴールに向かうに連れて失速していく
- 頭脳労働は、現在の作業を少しづつ改良していく作業である
プログラムの困難さは、近づいてもゴールが見えないこと
- プログラムは全体を作り上げて初めて「一本道」となっているので、完成させるまでは道筋が見えない。それがストレスの原因である。
1.2 プログラマとして何を目指すか
エンジニア・職人・芸術家
エンジニア | 職人 | 芸術家 | |
---|---|---|---|
汎用的・明示的か? | 汎用・明示的 | 特殊・属人的 | 特殊・属人的 |
実用的か? | 実用的 | 実用的 | 非実用的 |
- この3つの軸のどこに足を置くかは当人や当人の職場によって決まる
1.3 どうやって上達していくか?
ゆっくりとした大きな動きを見る
- 仕事に本当に役立つ技術というのは、身につけるのに長い年月が必要であり、コンピュータ雑誌に乗っているような流行り廃りのある情報ではない。
- 「露天掘り」のように広く深く知識を吸収せよ
1.4 プログラマが持つべき3つの説明力
3つの説明相手
自分向け
- 説明することで自分の頭の中を整理する
- 現在の脳の「コンテクスト」を外部に保存する
- 以前の事後で作り上げたコンテスクトを頭のなかから出して切り替える。
- その瞬間の脳内コンテクストを固定する
- プログラマとして成長していくは、「将来の自分」へ現時点での脳内コンテクストを伝えていく必要がある
コンピュータ向け
- プログラミングが上達するとは、コンピュータへの説明そのものがうまくなること
- デバッグとはコンピュータへ説明したことと、コンピュータの解釈との齟齬を見つけること
他人向け
- 動的な説明
- 会議・プレゼン・会話・授業などの、自分で喋ることを前提とした説明
- 相手に応じて臨機応変に対応できる
- 静的な説明
- メール・マニュアル・書類・本などの、相手に自由なペースで読んでもらうことを前提にした説明
- 相手からのフィードバックはない為、起こりうる疑問は予め解消しておく必要がある