エンジニアの知的生産術
https://gyazo.com/93a1e9270e59f2863beb9e4cdf15355d
気になった箇所メモ
読書開始日:2019/9/17
読書終了日:2019/10/16
復読日:2020/12/5
2.やる気を出すには
タスクを1つに絞れてないとやる気はでないが最大の理由
まずはタスクを書き出す
GTD(GETTING THING DONE)
行動に起こす必要がないものを「ゴミ・保留・資料」に分ける
「次にとるべき具体的な行動」が複数なら「プロジェクト」にする
2分以内で終わるものは自分でやる
自分でないなら他の人に任せて連絡待ちにする
これが特定の日時ならカレンダーに入れる
「優先順位付け」自体が難しいタスクである
不確定要素も絡んでくる為
事業への貢献度と、ソースコードのリファクタリングの2つの軸で考える
探索と利用のトレードオフ
過去の経験を元に探索ばかりしていたら、良い行動はみつからない
逆に新しい行動ばかりでは、過去の経験はいかされない
こういう時にこそ「不確かなときは楽観的に」という原理
楽観的な勘違いはあとから修正ができる。
悲観的な勘違いはそこで決めつけが固まり、あとから修正ができない
従ってあまり詳しくない、不確かなものである時にこそ、楽観的になれという事。その方が確率的に良い方向に転がりやすい
なにかを挑戦するときは確かに「まずは、はじめてみよう」という言葉があるが、これに近い
タスクをやる時にも、そのタスクをやる事で平均的に何が得られるかを判断するのではなく、最良の場合に何が得られるかを判断する
GTDでのタスク優先順位付け
code:md
現在の行動>現在のプロジェクト>注意をむけるべき分野・責任>1~2年後の目標>3~5年後の目標>人生の目標
そうなった時に現在の行動に焦点をあわせるなら、日々の同じタスクを自動化する事につながる。
自動化に成功すると、他の人も喜んでいる為、これと同じように自動化をどんどん積極的に注意をむけるようになり、注意をむけるべき分野・責任が増大する。
1つのタスクでやる気をだす
タスクが大きすぎる場合→「細かいフェーズで切る」
執筆の場合
アイディアをメモして付箋をする
付箋を並び替えて構成を考える
構成をもとに原稿を起こす
タイムボックス
人間の集中力の限界は2時間しかない
業務をブレイクダウンした結果が2時間以上のタスクになる
ポモドーロテクニック
1ポモドーロ = 25分
1日分のタスクをリストにする
タスクの大きさをポマドーロで分割する
1ポモドーロの間はタスクを変更せずに1つの事に集中する
もし、自分、もしくは他人の割り込みが発生したら記録する
1ポモドーロが終わったら5~10分休憩をする
歩いたり、立ち上がったり、本を読んだり
見積もり能力はどう鍛えれるか?
1日にできるのはせいぜい、4~8ポモドーロぐらい
つまり、200分なので、頑張ってできるのは3時間と20分が限界
なので、新規で機能開発する場合は1日に自分ができるタスクというのはほぼない
計測し、退け、まとめる
私の観察では、成果をあげる者は仕事からスタートしない。計画からもスタートしない。時間がなににとられているかを明らかにする事が大切である。次の時間を管理すべく、時間対する非生産的な要求を退ける
そして最後に、そうした得られた自由になる時間を大きくまとめる。
従って、時間を記録する、整理する、まとめるの三段階に渡るプロセスが成果をあげる為の時間管理である
まずは計画し、退けるものを退ける、そしてまとめる。
3.記憶のしくみ
海馬が記憶を担当している。
記憶は一種類ではない
言葉にできる記憶
概念がそもそもわかっている
抽象化ができる記憶
理解して自分の言葉で語る事
技能にできる記憶
なぞる
頭をかく
口をあける
丸暗記すればできる事
シナプスに信号が伝わる事で人の頭は記憶する事ができる。
しかし、信号の電位が低いとシナプスが信号を受け付けない
立て続けに複数の細胞から短い時間で信号が立て続けに到達すると記憶が定着しやすくなる。
その時に「発火」が起きて、電圧でいうと15mvほど発生します。その時に脳ではシナプスの長期増強が起こり、シナプス後細胞表面の受容体が増加される。
受容体が増加すると、それ以降は少ないシナプスで記憶されるようになる。
この長期増強は2時間程度で戻ってしまう。
短い間隔で4回刺激すると、長期増強により28時間程度持続されるようになる。
持続時間が短い方を前記長期増強、長い方を後期長期増強と呼びます。
生物の脳は、まずはすぐに作れて消えてしまう記憶を作り、その記憶が消えるまでの間に刺激が来ると、もうひと手間かけて長持ちする記憶を作ります。
繰り返し刺激する事で鍛えられるといえば筋肉
つまり、記憶を作る事は筋肉トレーニングに近い。
脳には、似たような情報が入ったきた時に鈍くなってしまう習性がある
役に立たない情報を無視する為のしくみ
役にたつ = 報酬が得られる
アウトプットに関して報酬が得られるとなおよい
アウトプットが記憶を鍛える
学校で行われるテストは記憶の手段
テストはインプットしたものをアウトプットする作業の為必然的に記憶が鍛えられる
テストをしてからさらに復習を行うと、記憶が強化される
教科書を1回だけ読むグループがその後テストを受けると、正解率は30%程度
教科書を4回読むグループがその後テストを受けると、正解率は50%程度
教科書を1回だけ読んで、思い出せるだけ思い出して、それからもう一度読んで、また思い出させるだけ思い出す という学習を行うと、正解率は70%程度
これは学習の中でOutputを含んでいる為
しかし、思い出し学習グループはこの中で一番、正解率に自信がないと答えた。
思い出し学習グループはインプットからのアウトプットをしている為、自分が予想以上に思いだせてない事による自信の喪失が起きている為
一方で、1回だけ読むグループはインプットしかしていない為、そもそもアウトプットによる自信の喪失が起きないので、過大評価してしまうと考えられる。
プログラミングはテストの高速サイクルである
普通筆記での一般的なテストはカンニングができない為、インプットができない
しかし、プログラミングは覚えた範囲で出てこなかったらすぐに検索して、それをアウトプットを行っている
なので、プログラミング行為自体がそもそも高速でインプットとアウトプットを行っているの繰り返しである
知識を長持ちさせる間隔反復法
忘れてから復習を行う
ある実験で間隔を空けて2回勉強してから、2回目の勉強後の6ヶ月後にテストを行った時の正解率を確認する実験を行いました。
1回目と2回目の間隔を20minitus、1day、1month、3month、6monthと空けた所1month空けたのが一番正解率が高く55%になった
https://gyazo.com/7637009734bc8a5119854e5c265d4c86
1month、3month、6monthはだいたい、40~50%ぐらい
1dayや20minitusは低い
この結果が出てしまう背景としては、1dayや20minitusは2回目の正解率は90%程度で安心してしまうからです。それ以外だと「あぁ結構忘れてしまっていると思い」2回目の勉強で学習が強くなります。
従って一回忘れてから再度学習をした方が長期的な記憶の観点では良い結果がでたのです。
復習は大事
最適な復習の期間をどう出すのか?
難易度の自動調整
難しすぎる問題
解けないのでつまらない
苦しい
優しすぎる問題
退屈になってしまう
したがってやる気を維持してちょうど良い難易度の問題を解ける状態、「フロー状態を目指すと良い」
知識を構造化する20のルール
4.効率的に読むには
読む行為は娯楽、情報をみつける事、理解を組み立てるの3つの目的に分解ができる
娯楽はスコープ外
情報をインプットする事と、理解を組み立てているについて
情報の伝達について
現代では100年前に比べて情報の伝達が変わってきている
基本的な原理は人が脳内で考えた抽象モデルを分解して伝達している事は共通している
しかし、昔は文字だけに対し、今は動画や画像なも含まれていて情報量が明らかに多い
現代人は100年前にはなかった読み方をしている
本の内容をインプットするだけではなく、組み立てる
本を読んでいる時に記述されれている内容と、自分の個人的な経験がカチッとハマるタイミングが存在する
この瞬間、本で書かれている抽象モデルが読んでる自分に入ってきたわけではなく、自分の個人的なモデルを組み立てている
従って情報をインプットするというのは、ただ受け入れるだけではなく、自分の頭の中で理解を組み立てる行為をしている
「情報を見つける」と「理解を組み立てる」のバランスの良いグラデーションをイメージして読むといい。
読む速度について
ボトルネックは「情報の組み立て方」
SNSはほぼこの組み立てが起きないので、疲れない
いくら情報量が多くても、理解した(インプットした情報から個人的なモデルを作りあげて理解を組み立てる)情報量がなければ意味がない
3倍早く読んでも、3倍の理解度にはならない
むしろ、1/3に下がる
読み方について
登山型の本
概念を詰めあげていくタイプの読み方
ハイキング型の本
色んな概念を次々を述べていくタイプ
景色を楽しむ方のやり方がまさにこれ
料理本もこれに相当するな
読書ノート
わからない事はなんでもメモする
何度も出現する単語をメモする
概念、理由、結論同士を矢印で結んで理解する
わからないには4つのタイプがある
用語の理解が不十分
論理の筋道が不十分
問題意識の理解が不十分
図解する必要がある
このタイプが多いなぁ
全体像を理解するのと、定義を理解するとは別の読み方になる
わかるという事はメモを見なくても、そのモデルを説明できるという事
読むというタスク設計について
本を理解するというのはそれだけで「不確実タスク」に相当する
なぜなら理解というのは個人的な主観材料であって、他の人から見た時に相対的な量になる為、それが完了条件になるのは難しい
「理解できないかもしれない」前提で本を読みすすめる
見積もりができる定評的目標を定める
読むことに結合を起こす
セレンディピティの話
言葉は早く発すると、一文字、一文字が波紋のように広がり重なりあった事で言葉ができる。
これはモデル = 抽象化につながる話では...?
本も同様に複数の本を読むと、その関係性でセレンディピティが発生して意外な関係性が生まれる可能性がある
復習のための教材を作る
記憶は復習する事によって定着される
逆に言えば1回やっただけでは、記憶が定着されない
その為にレバレッジメモを作成する
本を読む中で重要と思う部分を抜き取ってページにまとめるれば
それを後から読み返して復習していけばいい
読書のノートに似ている
しかし、抜き取ったメモは文脈から切り離される為前後関係がわからず、文章の意図がわからない事がある
IncrementalReading の紹介
間隔反復法とレバレッジメモを応用させたメモ
価値の高い判断しなかったテキストは、人間の明示的な操作なしに提示間隔が下がって徐々に提示頻度が下がります
人に教える
スライドを作成する
そうなるとアウトプットにつながる
つまり、他人に教える事を目的にする読書をする事は有益という結果になる
このscrapboxはまさにそうだな
会話も記憶を定着させる意味では有効である
5.考えをまとめるには
アイディアを生み出す作業は情報を収集し整理する事で始まる
書き出し法で自分の中の情報を全て書き出す
GTD(GETTING THING DONE)にも通じる
質をもとめてはいけない
書くことに対するハードルを下げる事
実践していく
5分間時間を図ってひたすらに書き出していく
時間ではなく枚数をゴールにする
そうなると、場所や時間に囚われなくなる
重複を避けなくてよい
むしろ重複をしている事はそれだけ重要と無意識に思っている事
多すぎる情報をどうまとめるか
並べて一貫性を高くさせる
並べる過程で思いついたらすぐに記憶する
関係がありそうなものは近くに移動
KPT振り返りに近い
川喜田二郎が考案したKJ方
https://gyazo.com/c997d8b24c9963ad9b9fd32c27b2a51a
カード化された多くの意見・アイディアをグループ化し、論理的に整序して問題解決の道筋を明らかにしていくための手法がKJ法です。
関連がある所は重ねて、表札を作製する
これはKPTでもよくやっていたグループ化だ
川喜田二郎は内側を探る内部探検と外部探検と評して素材を集めてきていた
これは川喜田二郎が文化人類学者でもあるからだが、エンジニアに置き換えると外部探検は勉強会に参加するとか、インターネットで調べたり、本を読む行為に相当する
コラム:イノベーションの達人には新しいアイディアを生み出す人材を10種類に分類して、人類学者が最初にきている 残りは実験者、花粉の運び手、ハードル選手、コラボレータ、監督、経験デザイナー、舞台装置家、介護人、語り部
__2019/10/8
KJ方を繰り替えす]
繰り返していく事が大事、3章で説明された「記憶と筋肉の話」に通じるもので、繰り返す事が記憶を作る上で大事になってくる
作る過程で理解が深まる
間隔を空けて学んだ事を提示(アウトプット)する事は、長期記憶を鍛えることに向いています。
考えがまとまらない場合は、まずは書き出す事で十分な情報があるかを確認する
書き出してみてから確認する
書いたものをボトムアップでグループ編成すること
グループをうまく要約した表札をつける
6.アイディアを思いつくには
アイディアを思いつく3つのフェーズがある
1.耕すフェーズ
情報を集め、かき混ぜて、つながりを見出そうとするフェーズです。
2.芽生えるフェーズ
芽生えるフェーズは管理できません。
情報を寝かせて、アイディアが出るのを待つことになる
3.育てるフェーズ
生まれたアイディアを磨きあげていくフェーズになります
アイディアの発想方法
James Webb Youngが書いたアイディアの作り方(原書:1940)
1資料集め
2資料加工
アイディアは既存の組み合わせ
消しゴム付き鉛筆も偉大な発明である
3努力の放棄
えー
4アイディアの誕生
5アイディアにチェック
1,2のステップが耕すフェーズ
2の「資料加工」で仮のアイディアが思いつきます
これは必ず部分的なものであれ記憶しておく。
同時にここで「絶望」がおきます
ごちゃごちゃになりはっきりした事が言えなくなります。
絶望するまで資料加工を行い、3の努力の放棄で一旦休めます。
3,4のステップが芽生えるフェーズ
5のステップが育てるフェーズに該当する
川喜田二郎の「発想法」:より研修者ぽいな
1問題提起
2探検
3観察
情報をあつめる
4発想
KJ方で集めた情報をグループ化して、アイディアを組み合わせる
耕している間に新しい芽が芽生えるイメージ
5仮設の採択
6推論
7実験計画
8観察
9検証
Otto Scharmer の「U推論」:起業家や、ベンチャーぽい
1Downloading
思い込みに囚われて外界を観察していない状態
ex)若者は家でTVを見てゲームをするのが好きだと思っている→実はそんな事はなくて、なにもしていない
2Seeing
外界を観察しているが、自分の既存の枠にしがみついて他者の視点から情報を感じ取れていない
3Sensing
他者の視点を取り入れたが、「自分」を手放していない
4Presensing
「自分」を手放して「未来」を見ている
5Crystalizing
アイディアが結晶化された状態
6Prototyping
思考作品が作られている状態
7Performing
アイディアが既存の仕組みに組み込まれて機能している状態
芽生えは管理できない
まずは情報を集める
今解決したい問題に関する資料 = 特別資料
問題を解決したいわけではなく、好奇心を元に集めている情報 = 一般資料
言語化を促す方法
言語化できているのはごく一部分だけです。
言語化とは自分が語れていない知識を書き出す作業
https://gyazo.com/a2327c2b0abb1fe1d7dee9ef27de0982
質問によって言語化を行う
価値仮設シート
https://gyazo.com/df00d3fc1927821baa48f893ba2572a4
アイディアとは言語化が難しいものであるから、こういったツールを使って言語化を行う
創造は主観的である
客観的で人々が全て納得できるのものは創造的ではないです。
耕し、芽生えるフェーズではまず主観的な創造が求められる。
抽象概念を自分の身体感覚として説明する
ex)「歩いていると靴底が摩擦で減る」という説明をみた時にその摩擦がなんなのかを自分の体験で語れるか
語れるというのは、土台に身体感覚(主観的な体験)がある為
NM方とアナロジー
M法 とは、考えたいテーマと類比(アナロジー)のモノを探し出し、その特徴から発想する思考法です。類比を見つけることから、類比技法とも呼ばれます
ex)凧揚げと「売上向上をアナロジーとするろ、常に凧を上げる為には風が必要である
ここの風は売上向上でいう、「注目度」に該当する
つまり注目度があがれば売上があがる、凧に対応すると、風がつねに当たれば売上はあがる
たこあげは「日本やアジア」でしか通用しない、結局の所主観的な道具である
暗黙知:人間には解決に近づいて居る時の感覚がある
それによって、無作為な探索よりも、効率的な探索で答えをみつける事ができる
まだ言葉になっていないもの
言葉にできたいもの = 抽象概念
これらを言語化する事で抽象概念が具象化して、より深い理解へと進む
暗黙知:人間には解決に近づいて居る時の感覚がある
それによって、無作為な探索よりも、効率的な探索で答えをみつける事ができる
哲学者プラントは著者「メノン」の中で、もしもなにか探し求めているかわかっているなら問題は存在し、わかっていないのなら何かを発見する事は期待できないと言っていた
人は無意識的に問題に解決しているか、していないかを感じる事ができる
これが暗黙知
違和感は重要な徴候
プログラマーの間ではソースコードの問題がある時は時は匂いがあると感じる事がある
理由を言語化できていない為、なにか尖ったもののように捉える事ができないので、軽視しているかもしれないが、そこにこそ重要な徴候があるのです
Thinking At The Edge
まだ言葉にならない所を言語化する方法論
https://gyazo.com/6dcf2a971fa7693db55039025d064229
辞書の言葉と、自分の言葉の間での違和感を感じ取る
辞書の言葉は公共の言葉で複数人を対象にしている為共通認識になりやすい。
一方で自分の言葉というのは、Aさんの指摘領域に入ります。
似たものを比較する事で理解を促すことの一例と捉えます。
結局の所、言語化できたいないものがある事を感じとり、それを身体感覚や経験を元に注目する事が大事になってくる。
まずは自分の中から言語化できないものを取り出す事が大事である。
磨きあげる
アイディアとは不完全な状態で出てくる。
その不完全な状態から磨きあげる事によって、徐々に改善していく
Edisonは「失敗をしたことはない。ただ1万通りの上手くいかない方法をみつけただけだ」
上手くいかない方法は、上手くいく方向へ一歩前進しているだけである」という名言を残している。
最小限の実現可能な製品を作成し、顧客を把握する
顧客が把握できなければ、どこに品質を上げていくべきかがわからない。
トランジスタ・ラジオは当時の真空管ラジオよりも、安価で持ち運びしやすい点を見抜き、普及した。
他人の視点が大事
複数の視点から見る事が大事である。
それにより、どこを磨けば良いのかがわかる
誰からでも学ぶ事ができる
知識が少ない人でも、その人が知っていることは当然ある。
意見の違いは盲点に気づかせてくれるチャンスです。
再び耕す
説明が伝わりづらい場合
PDCAサイクルをまわす事で今のアイディアをより大きく育てていくアプローチになる
アイディアを自体を直す場合
新しい視点からの情報を入れる
Youngは「良いアイディアは自分で育つ」と言っている。
良いアイディアは見た人を刺激して積極的にフィードバックをくれるからです。
本は双方向のコミュニケーションが取れない
従って、自分の中でエミュレータを作成する
このエミュレータというのは抽象をモデル化した一歩先でのレベルだと認識する
そうなると「〇〇だったらこう考える」という完全な自分とは別な視点が生まれる
この時点で更に、自分との経験が加わり、高度なモデル化が実現できる。
学びのサイクル
https://gyazo.com/be58a0600ad29ffee5968f23afe8b836
情報収集(input)→抽象化(Output)→実践検証(Do it)
7.何を学ぶべきなのか
科学と数学の正しさの違い
科学:何度も検証して確認された事が正しい
数学:公理を組み合わせた結果、論理的に正しい事を、数学的には正しいという
意思決定の正しさ = 何を学ぶべきかを決める
意思決定は繰り返す事ができない1回性の出来事
知識が不足していると、悪い方向へと進んでしまう
事後的にきまる優位性
結局は意思決定後に後から見返して「あぁあれは正解だった」と気づく。
つまりは、正解化、不正解などは選択した後にしか気付けない
Jobs「未来に向かって点をつなぐことはできない。過去を振り返ってつなぐことしかできない。なので、将来どこかで点が繋がれるという事を信じて行動しなければなりません。なぜなら、そう信じる事があなたの自信をもたらすのです。」
「なにか学ぶ」というのは意思決定です。
しかし、それが有用化どうかは、事前にはわからず、事後にしかわからない。
何を学ぶべきかを外に探しもとめてみても、答えは自分しかわからない。
正確には、その選択をした自分しか
なぜなら答えを事後にあるから。
プログラム言語を学ぶとなった時に、どの言語から始めるべきかは正直なんでも良い。
何かを学ぶ対象として選ぶかに正解はない。
何かを学ぶ事によって「学ぶ力」が培われる
培われる:長い時間をかけて、育てる。 「克己心を-・う」 「体力を-・う」
もしかすると、選択肢が多いというのは、意思決後の結果に良い影響を与える
興味が湧いたものから、とにかく手をだしてみる
映像サークルとか、映画とはまさにそうだなぁ
自分のまだ知らない事に積極的に触れて、興味を持てるものを見つけましょう。
社会人にとって学ぶべき対象は「今の仕事を効率化する事で時間の余裕が作れる事」
ツールの使い方
言語の獲得
仕様の把握
知識の拡大再生産戦略
知識を使って時間を得て、その時間を知識獲得に投資する
知識を使ってお金を得て、そのお金を知識獲得に投資する
知識を使って立場を得て、その立場を知識獲得に投資する
他人からの知識獲得のコストは安い
なにか詰まった時はまず自分で15分解決を試みなさい。
そして15分経ったら、他の人に助けを求めなさい。
15分投資しても解決できない事に更に時間を入れても、時間の無駄であるから
他人から得た知識は価値が低い
同じ分野の知識を持っているAさんと、Bさんがいる
Aさんの知識量 > Bさんの知識量
ある仕事があり、少ない時間で影響が100ある仕事と、大きく時間を使っても影響が70の仕事があった時に、経営者はAさんに仕事を任せる。
しかし、本当はBさんがやっても同じ影響度の結果得られます。
違いはなんでしょうか?
「AさんはBさんよりも優れている」という仕事を依頼する人の認識です。
つまりはAさんの「最も仕様に詳しい人」という立場から生まれます。
知識を獲得していく上で、最も詳しい状態になる必要があります。これを卓越と言います。
同じ分野ではなく、別領域で差別化する必要がある
FWに詳しい
最新のツールの扱い
知識
セキュリティ
OSSへの貢献度
ふたこぶの知識
片方に尖るのではなく、両方の精通しているように動けば、双方でコミュニケーションを取れるようになり、これはこれで強い武器になる。
これらが出来るのがT型人間と呼ばれる
https://gyazo.com/98c0f60991100385d3a65f7302844296
連続スペシャリスト
ある分野をで1つの専門性を卓越したら、その専門性を活かして別分野に投資して専門性を獲得する
新入社員の戦略案
新卒研修を受けても他との差別化につながらない
分野をずらして、別の方向性で卓越をする方向になった方がいい
それでいうとプログラマーは凄い恵まれていると考えられる
知識の貿易商戦略
事業部や部署に関わらず、自分が獲得した知識をAからBへと運ぶ
そうなると、自分に知見がどんどん溜まっていき、需要も高まる為、差別化と知識獲得に繋がる
知識を創造する
学ぶという行為は暗黙に「知識は自分の外にあり、それを自分の中に取り組む」というイメージがある。
しかし、教科書などは、「既に誰かが作り出して流通させている知識」です。
これらは他の人も知っている知識の為、差別化しずらいです。
実際の応用の現場で必要に応じて生み出された知識は流通しておらず、現場の状況にフィットした価値の高い知識です。
つまり知識を持っていることではなく、新しい知識を生み出すのが価値の源泉
まさにこれはシニアエンジニアとして求められる「作りあげる力」に匹敵すると考えられる。