リファクタリング・ウェットウェアを読みました

はじめに

この記事は、自分が読んだ本を記録しておくためのものです。

(あくまで自分が読んでためになった部分の概要をまとめているものなので)
基本的には一般的な書評のようなネガティブなことは書きません。

本屋さんで立ち読みするような、斜め読みして
内容がなんとなくわかって、興味が出たら購入しようかなー
と思えるような内容にしたいと思ってます。

読んだ本はこちら

読み始めた経緯

学生時代に購入して、最初ちょっとだけ読んで放置していたものを
最近になって、ちゃんと全部読みました。

特別関心があったり、誰かから勧められたわけでなく、なんとなく
本屋さんにいって、『リファクタリング』という単語に反応して
衝動的にジェケット書いしたものです。

概要

結論から言うと、プログラミングの話はあまり出てきません。

達人プログラマーの思考・学習法とは?という部分に焦点をあてていて、
初心者から中級者を対象に、『どのように考え、行動すれば達人に近づけるのか』
という内容になっています。

プログラマーにわかりやすい比喩が多く用いられていますが、
継続して質の高い学習をしたい、という方全般に役に立つ内容だと思います。

冒頭に

達人とはどのように定義されるものか

ということをドレイファスモデル
に当てはめて解説し、以降の章は、ドレイファスモデルにおける『達人』に
なるためのノウハウが紹介されています。

感想

  • 『XXがやりたいけど、どこからやっていいかわからない』
  • 『はじめたはいいけど、本当にやりたかった事までの道のりがあまりにも長い』
  • 『計画は立てたけど、すぐに破綻してしまう』
  • 『集中力がないので、深くまで掘り下げる前に飽きてしまう』

このような理由で、最初の勢いが衰えてしまったり、立ち止まってその場で停滞して
しまったりするときのヒントとして、とても有用なトピックが盛り込まれている
と感じました。

右脳と左脳の効率的な使い分け、連携に関して、かなりのページを割いて
書かれています。この部分に関しては一部の人は『スピリチュアルでうさんくさい』と
感じてしまうかもしれません。

僕の場合は、僕が『すごい・こんな風にプログラムを書きたい』と思える身近な先輩が、
本に書かれているような思考や行動に当てはまる場合が多かったので、自然に納得して
しまいました。

書かれているノウハウ全部を自分の実生活に反映することは
全ての普通の社会人には難しいとは思いますが(モーニングノートや瞑想、社内勉強会)
手軽にできそうな箇所から、少しづつ試してみたいと思えました。
(SMARTな計画、散歩、意識的な読書、集中力・注意力の管理)

蛇足ですが、この本にはかなり多数の引用や著名人の紹介があって、おそらく原著の圏内では
『なるほどなぁ〜』となるような引用も、普段技術書以外に本を読まない僕にとっては
『これ、誰??』となってしまうことも多かったです(単純に僕の学がないということもありますが)
興味のある引用があれば、次にその人の本を読んでみるのもいいかもしれません。

全体のながれ

僕が覚えておきたいキーワードなどをざーっと残しておきます。
メモにすぎないので、ここだけ読んでも意味不明かもしれませんが、
詳細は実際の書籍を手にとっていただければと思います。

初心者から達人への道

この本を通して、読者の目指すであろう『達人』の定義が書かれています。

初心者にはルールが必要で、達人には直感が必要。
達人は観察者ではなく、システム自信の一部として関与する存在

コンテキスト(自分の置かれている今の状況)によって直感によって動くことができる

達人への道のスタートは『自分が何を知らないかを自覚すること』

ドレイファスモデルの初心者から達人の5段階を分布にすると、
ほとんどの人は、特定の技能に対して中級者で停滞する

脳の構造

ここでは前の章を踏まえて、達人の直感はどのように構成されているのか、
ということに関して説明されています。

ここではLモード(左脳)とRモード(右脳)を分けて考えて
直感を司るRモードを活性化させ、言語や時間を司るLモードへ
転送する、流れを紹介しています。

Rモードは森を見て、Lモードは気を見る

Rモードへの転換

Rモードの重要性を理解した上で、それではLモード主体の僕達が
Rモードをどのようにして思考に取り入れるのか、ということに関して書かれています。

脳は全ての入力を記憶している。問題はLモードで言語化、具象化できるか
どうかだけ。

  • イメージストリーミング
    1. 自分に問題を出す
    2. その答えをイメージする
    3. イメージに目を向けて、詳細を声に出して説明する
  • モーニングページ
    1. 朝起きて、なによりも最初に最低3ページ。手書きで文章を書く
    2. 何を書いても良いが、内容をチェックしたり直したりしない
  • 難問を解くにはキーボードから離れる

アタマをデバッグ

ここでは先入観や固定概念を捨て、思い込みで素晴らしいアイディアや間違いを
見逃さないためのノウハウが紹介されています。

  • 認知バイアスがかなりの量、常に自分に働いていること
  • 不確実・不安定な状態に慣れる
  • トカゲの理論
    • 危機的状況に追い込まれたときの動物の衝動的な反応
    • 自分は進化した人間だ、という自覚と感情の制御
  • 達人は直感を信じる、だが、影響度は検証する

意識的な学び

効率的な学習方法、知識と経験と情報の違い、計画を立てることの重要性等が
書かれています。

  • SMARTな計画
    • Specific 具体的
    • Measurable 測定可能
    • Achivable 達成可能
    • Relevant 適切
    • Time-boxed 期限を定める
  • SQ3Rな読書
    • Survey 調査のためざっくりと概要をさらう
    • Question 質問をまとめる
    • Read 全文きっちり読む
    • Recite 要約する
    • Review もう一度読んで、アウトプットする
  • マインドマップ
    • なにを探しているか自分でもわからないときに有効
  • 人に教えることで学ぶ
    • アヒルの人形が相手でもOK

経験の積み重ね

学んだのち、それを活かして経験を積むためのノウハウが書かれています。

遊ぶ(play)ということを、目的を定めないで探求する、と定義している。

  • ジョージ・ポリアの問題解決法(いかにして問題をとくか著者)
    • 以下を自問する
    • 分からない側面はなにか
    • 今、何を知っているか、データをもっているか
    • どのようなルールがあるか
    • 自分が慣れている似たような問題はないか
    • 絵を書いてみる
    • 関連する問題、単純な問題をといてみる
  • インナーゲーム
    • 言葉で説明したものを理解するコストは大きい
    • まずは見る、それを真似してみる。
    • まずは全体像を把握する

集中のコントロール

学びと経験を効率よく繰り返すためには、コンテキストに集中する必要があるが、
現代社会はコンテキストから切り離す誘惑が多い。これを上手に制御するには、
ということに関して書かれています。

  • 考えている時間と、何もしていない時間は、他人から見れば同じだが、全く別物
  • エクソコーテクス(外部記憶)を有効活用する
    • 本の内容を全て暗記する必要はない。すぐに参照するための情報を記憶すればよい
  • コンテキストを切り替えるコストは多大
    • メールチェックやチャット、SNSなどは危険
    • 避けられない場合は自分の都合がいいときにまとめて(できれば1回で)
    • コンテキストに割り込んでくるものを上手に制御する(マルチタスクは不合理)

達人になってから

達人になってからの心構えや、さらなる成長のためのノウハウが書かれています。

  • 初心者に戻ることが一番必要
  • 今までの知識・経験に多大なコストを払っていても、それに固執しない。新しいものを試す、受け入れる

以上です。


追記:2014/09/06

SQ3Rに関して

僕がこの本を読んだニュアンスでは
Survey -> Qustion -> Read -> Recite -> Review
をそれぞれ一度ずつ行う、という印象を受けたのだが(ウォーターフォールのように)
SQ3R wikipediaによれば
Survey->Questionを行った後は3Rを各章ごとに繰り返す必要があるらしい。

確かに、一度Questionを作成してから全部読み終えて、それからRecite->Reviewは
本のボリュームにもよるが、各章に対するフィードバックが薄くなってしまうの
かもしれません。

それぞれ、人にあった勉強法があると思います。
是非参考にしてみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です