エンジニアの知的生産術
オススメ度 :90 / 100
この本は、とかく学習が必要な我々エンジニアという職種の人たち向けに、いかにして知的生産性を高めるかについて書かれています。
有益な情報が多いので、エンジニアでない人にとっても参考になるのではないでしょうか。
有益だと感じたポイントをかいつまんで説明します。
ゴールを明確に、また近く
例えばゴールを、『Pythonというプログラミング言語をマスターする』としてしまうと、マスターとは?いつどこまで出来たら良い?となり、本人の感覚値なので永遠に辿り着かないかもしれません。
どこがゴールか分からない目標に意欲を燃やし続けることは難しいのではないでしょうか。
『Pythonにおける、リストとタプルの違いについて調べて参考となるドキュメントを読む』なら具体的で距離も近いです。辿り着いたら少しばかり達成感もあります。
ここで、『違いについて理解する』としてしまうのも、『理解』とはどの程度なのかが不明瞭でよくないようです。
まず大雑把に把握
例えばPythonのライブラリリファレンスは1,000ページもありますが、目次だけなら6ページ程です。
まず目次を読みましょう。覚える必要はなく、何となくどういう事がどの辺に書いてあるかイメージできたらOKです。
あとで調べやすくなります。
時間を区切ろう
プログラミングの学習方法に『写経』という物があります。
参考となるサンプルコードを見ながらとにかくその通り書いてみて取り敢えず動かしてみるという方法です。
これは有益ですが、ただがむしゃらに『本丸ごと写経』とかは非効率です。
例えば『30分で出来るところまで写経』として、どれだけ出来たかページ数を見積もり、全体にかかる時間を割り出す。
そして写経を時間を区切りながら続けて、もう必要ないと感じたタイミングで好きに辞めれば良いのです。
やっている内に学習も深まり、自発的に新しい情報を漁りやすくなります。
記憶の増強方法:抽象化
パターンに名前を付ける事で、無駄な情報を捨象して思い出しやすくする事ができます。
人に名前が付いているのと同じです。『〜市〜丁目に住んでいる身長170cm30代男性の…』とか言うと情報が多い割に不明瞭です。
氏名を付けていれば同姓同名は世界中に数えるほどしかいません。(かなり多いケースもあるでしょうが…。)
個人個人の身の回りにも同姓同名の人はそうそういないでしょう。これも一つの抽象化です。
記憶の増強方法:アウトプット
これはかなり参考になった話しですが、ある実験では、
『定期的にテストを行なった方が、行なわなかった場合に比べて"自信はなくなるが、成績は高くなる"』傾向があったそうです。
つまり、アウトプットをする事で『自分が理解していない事を知る』ことができ記憶も増強されます。間違えたところを主体的に学ぶと、学習意欲も高まります。
一方、インプットばかりしていると『知った気になって自信は付くのですが、結果が伴いません』。
プログラミングの素晴らしい点は、『自分の書くコードの一行一行が、思った通りに動くかのテスト』である点です。どんどん書くと良いみたいです。楽しいですしね。
記憶の増強方法:ライトナーシステム
これもかなり参考になりました。
単語カードにワードを書いて、正解したものは復習期間の長い箱へ、間違えたものは短い箱へ入れ学習を反復する事で、
反復期間が自動調節され、効率的に短期記憶を長期記憶に変えることが出来ます。
まぁ実際に箱とカードを用意してやってみるのは面倒臭いので、SuperMemoというアプリが紹介されてました。
(けどこれなんか使いづらいな…。)
何を学ぶのが正しい事なのか?
意思決定はそれ自体が難しくエネルギーを消費する事とこの本にもありました。
『何を学ぶのが正しいか』について、答えはないでしょう。では、何を基準に判断すれば良いでしょうか?
数学的な正しさと科学的な正しさは異なるとこの本にありました。
数学は公理の上に成り立った、確実に正しい物の上に成り立つものは正しいという考え方です。
素数は1とその数字以外では絶対に割り切れない物と決定しているから、素数は1とその数字以外で割切れる事があってはならない。それが正しいのです。
しかし科学は実験を繰り返し、検証の結果を正しいものと”仮定”します。それが覆った時点からは、過去の正しさは正しくなかった事が証明され得るのです。
天動説が誤っていたように。
では我々は、数学的な正しさを追い求めるべきでしょうか?
…それは難しいのではないでしょうか。
人生において人は常に意思決定を求められます。しかしその中で絶対に正しい普遍的な物など限られています。
その時には、過去の経験や見聞きした情報と照らし合わせ、自らの意思で決定を行なう必要があります。
どうなりたいか、その為には何を学べばそうなれそうか。誤っていたらまた軌道修正しよう。
なるほど、この繰り返しのようです。
(以下、目次。)
第1章 新しいことを学ぶには
学びのサイクル
- 情報収集/モデル化・抽象化/実践・検証
サイクルを回す原動力 やる気
- 生徒としての学びと大学からの学びの違い/やる気を維持するには?/大学に入りなおすべき?/良い参考書を見つけるコツ/紙の参考書を選ぶコツ
情報収集の3つの方法
- 知りたいところから/知りたいところから学ぶための前提条件/大雑把に/片っ端から
抽象とは何か
- 抽象・abstract/モデル・模型/モジュール/モデル・ビュー・コントローラ/パターンの発見/デザインパターン/なぜ抽象化が必要か?
どうやって抽象化するか
- 比較して学ぶ/歴史から学ぶ/パターン本から学ぶ
検証
- 作って検証/試験で検証/検証の難しい分野
まとめ
第2章 やる気を出すには
やる気が出ない人の65%はタスクを1つに絞れていない
- 絞るためにまず全体像を把握しよう/Getting Things Done まずすべて集める/全部集めて,そのあとで処理をする/どうやってタスクを1つ選ぶのか
「優先順位付け」はそれ自体が難しいタスク
- ソートの計算量/1次元でないと大小比較ができない/不確定要素がある場合の大小関係は?/重要事項を優先する/優先順位を今決めようとしなくてよい
1つのタスクのやる気を出す
- タスクが大きすぎる/タイムボックス
まとめ
第3章 記憶を鍛えるには
記憶のしくみ
- 海馬/海馬を取り除かれた人/Morrisの水迷路/記憶は1種類ではない
記憶と筋肉の共通点
- 信号を伝えるシナプス/シナプスの長期増強/まず消えやすい方法で作り,徐々に長持ちする方法に変える
繰り返し使うことによって強くなる
アウトプットが記憶を鍛える
- テストは記憶の手段/テストをしてからさらに学ぶ/自信はないが成績は高い/適応的ブースティング/テストの高速サイクル
知識を長持ちさせる間隔反復法
- 忘れてから復習する/ライトナーシステム/問題のやさしさ/知識を構造化する20のルール/Anki/難易度の自動調節/教材は自分で作る
まとめ
第4章 効率的に読むには
「読む」とは何か?
- 本を読むことの目的/「読む」の種類と速度
あなたの普段の読む速度は?
- 読む速度のピラミッド/ボトルネックはどこ?/速読の苦しみ/読まない
1ページ2秒以下の「見つける」読み方
- Whole Mind System/フォーカス・リーディング/見出しなどへの注目
1ページ3分以上の「組み立てる」読み方
- 哲学書の読み方/1冊に40時間かけて読む/数学書の読み方
読むというタスクの設計
- 理解は不確実タスク/読書は手段,目的は別/復習のための教材を作る
まとめ
第5章 考えをまとめるには
情報が多すぎる?少なすぎる?
- 書き出し法で情報量を確認
多すぎる情報をどうまとめるか
- 並べて一覧性を高くする/並べる過程で思い付いたらすぐ記録/関係のありそうなものを近くに移動/グループ編成には発想の転換が必要/関係とは何だろう/束ねて表札を付け,圧縮していく/束ねたふせんをまた広げる/文章化してアウトプット
社会人向けチューニング
- ステップの省略/中断可能な設計/A4書類の整理法
繰り返していくことが大事
- KJ法を繰り返す/繰り返しのトリガ/インクリメンタルな改善/過去の出力を再度グループ編成/電子化
まとめ
第6章 アイデアを思い付くには
「アイデアを思い付く」はあいまいで大きなタスク
まずは情報を収集する
磨き上げる
まとめ
第7章 何を学ぶかを決めるには
何を学ぶのが正しいか?
自分経営戦略
知識を創造する
Amazon