Blogaomu

WEBアプリケーション開発とその周辺のメモをゆるふわに書いていきます。

『リファクタリング・ウェットウェア』を読んだ

TL;DR

今までのやり方に行き詰まっている、意識的に学びたい、そんなときに読むと実践的な知見が得られてオススメです。

概要

原著の題名は "Pragmatic Thinking and Learning" ということで、実践的な思考法と学習法、といったところでしょうか。日本語訳の題名は、ウェットウェア(脳)のリファクタリング、となっていて何だろうと思わせるような感じになっています。副題は、達人プログラマーの思考法と学習法、です。

章の構成としては以下のようになってます。

  • ドレイファスモデルを使い、初心者と達人にはどのような違いがあるのか、どのように達人になっていくのかを始めに説いています。
  • 次に、人間の脳はどうなっているのか?というプログラマーは普段興味を持たない(であろう)分野の解説をしています。
  • 脳の特性を理解した上で、達人に近づくべく思考法や学習法を学んでいきます。
  • 最後に達人になってからのちょっとした注意喚起が書かれて締められています。

ここからは私が気になったトピックを2つ挙げて感想を書いていきます。

コンテキストスイッチングのコスト

短期記憶を全て読み込み直すには平均20分かかると言われています。コンテキストスイッチングをいかに行わないか、またそれを行うとしても集中状態を保つかということが書かれています。

これは自分自身の最近の仕事のやり方にもあてはまるな、と感じていて、複数のプロジェクトを進行したり、メールの対応、各種質問の対応、ミーティングなどコンテキストスイッチングが多く発生する状況になっています。自分自身のリソースは限られているため効率的に作業できないかなと考えていたところにこの本に出会ったので、なにか運命めいたものを感じました。意識的に割り込みを遮断するコントロールや他のコンテキストに戻れるように簡単なメモを残しておくなどのテクニックはすぐに実践しようと思います。

RモードとLモード

人間の脳には大きく2つのモード(Lモード: リニアモード, Rモード: リッチモード)があると書かれています。Lモードは言語的、分析的、計数的などのプログラミングに必要そうな特徴をもっています。Rモードは非言語的、総合的、具体的、非合理的などプログラミングとは一見かけ離れた特徴をもっています。しかし、このRモードを活用することで達人プログラマーに近づけると書かれています。

Rモードの脳は強力なパターンマッチングと検索機能を備えている、Rモードからの出力は言語で表現することができない、などかなり興味深い動きをするRモード。この機能を利用して思考を高める方法や効率的な学習法を提起していて、面白いアプローチだなと思いました。中には(科学的に実証されていないなどで)あやしげな方法もあるので自分の判断で取り入れるのをオススメします。

Rモードの働きをトレーニングするということで試しに上下反転になった絵を見てそれをそのまま描く、ということをやってみました。注意点は、30-40分くらい静かで邪魔の入らない環境を用意する。お手本にする絵の向きを変えてはいけない。特定の部位を認識しても、その名前を意識してはいけない。結果としてこのような絵を描くことができました。

読み込み中

リファクタリング・ウェットウェア』の認知転換の話で描いてみた絵。上下反対になったものを書き写しただけだが、うまく描けてる感があるw

Instagramで閲覧

私は絵が得意ではないので、認知の仕方を変えるだけでこうも違うのだなあと驚きました。

おわりに

普段使っている脳の働きを知ってそれに合うやり方を行う、というのは合理的だなあと思いました。プログラミング言語フレームワークの特性や中の処理を理解しそれを利用することと似ていて、プログラマーにもスッと入ってくる方法だと思います。個人的にはドレイファスモデルや認知の部分にも興味を持ったので、これらの分野の書籍も読んでみたいです。