達人プログラマーになるための思考法

2770viewsまるまるまるまる

このエントリーをはてなブックマークに追加
リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

達人になるには

Rモード(非言語、総合的、直感的、全体論的)とLモード(言語、分析的、論理的、線形的)を使い分けるようになること
達人になれない人はLモードしか使わない

RモードとLモードを繋ぐ

・イメージストリーミング
・モーニングページ
・散歩、武術、ヨガ、瞑想
・比喩、機能推移(動詞化)
・視点を変える
・神託

ヒトには必ずバグがある

■認知バイアス
根本的な帰属の誤り、自己奉仕バイアス、虚偽記憶など
(対策)
・未来はプラトンの襞に隠れる
・不確実な状態に慣れる
・記憶よりも記録を信用

■性格によるバグの違い
・MTBI指標

■ハードウェア的バグ
・トカゲの論理(トカゲが困難な状態に追い込まれた時の反応は人間にも当てはまる)

意識的に学ぶ技術

「技術がある」ことよりも「学び続ける」ことの方が重要
受動的な学習(例:企業の研修)ではチキンナゲットのような人間しかできない

1.目的を定める
・SMART指標

2.PIP(プラグマティック投資計画)によるポートフォリオの作成
・具体的な計画をたてる
・多様性を持たせる
・受け身にならず、積極的に投資する
・定期的に投資する

3.優れた学習技術の採用
・SQ3Rによる意識的な学習
・マインドマップによる視覚化
・テスト駆動型学習
・教えることで学ぶ
・勉強会の実施

敵は過ちではなく無為無策(経験の積み重ね)

■失敗を生かす
自由に何でも試せる実験的環境が必要
(ソフトウェア開発の場合)
・版管理システム
・単体テスト
・プロジェクト自動化ツール

■努力は失敗を呼び、気付きがそれを防ぐ
・言葉による指示よりも発見を重視する(例:デバッグ)
・失敗の許容(例:ブレインストーミング、アジャイル開発における単体テストの考え方)

■想像力は五感を上書きする
達人のように学ぶ
・首尾よくやり遂げたというイメージを持つことで性能を向上できる
・オフラインの練習を行う事で、脳に成功の溝が刻まれる

集中のコントロール

■集中力・注意力の増強
注意力が欠けると、Lモードがアイドリングモードに移行し、Rモードの処理を妨げる
→瞑想(ヴィパッサナー瞑想法)

■集中のために集中をぼかす
何もしない時間(マリネを漬ける時間)は重要
→脳が「多次元草稿モデル」だから
cf.コンサルタントの三択の法則

■コンテキストの最適化
1.マルチタスクの問題点
・コンテキストの再読み込みには約20分かかる
・絶えずメールチェックする人間のIQは10下がる
2.気が散る要因を避ける
・シングルインタフェース
・GTDの実戦
・プロジェクトルールの設定(例:メール禁止時間帯の設置)
・メールの制限(例:メール処理の時間を決める)
3.保持するコンテキストを最大化する
・マルチディスプレイ
・集中の維持(仮想ディスプレイによるワークスペースの分割)

感想

・和訳が大変読みやすかった
・芸術家として生きてみたくなった

関連まとめ

本のまとめカテゴリー


コメントを書く