1. トップ
  2. 新着ニュース
  3. 経済
  4. 経済

《驚くほど記憶力がいい》世界トップクラスの技術者に共通する“シンプルすぎる”仕事の習慣

文春オンライン / 2024年8月23日 6時0分

《驚くほど記憶力がいい》世界トップクラスの技術者に共通する“シンプルすぎる”仕事の習慣

©AFLO

「仕事のできる人」はなぜ記憶力がいいのだろう? それは生得的な才能というよりは実は日々の習慣に秘密がある。9万部突破の話題書『 世界一流エンジニアの思考法 』の著者牛尾剛さんが、米マイクロソフトで最前線の開発チームで学んだ知見を伝える。

(※本稿は、前掲書から一部抜粋したものです)

◆◆◆◆◆

「記憶」が苦手だったADHDの私

 多くの人が関心のある「記憶力」の問題にフォーカスしたい。仕事ができる人は記憶力がいい人がほとんどなので、私は長年この方面にもコンプレックスを感じていた。

 自分のバディのヴィンセントを見ても、キャリアは長くないが、一つひとつの物事を理解してやり遂げるのが速く、細かいことを非常によく覚えている。人生で出会ったもっとも賢い男ポールはもう意味不明なくらい記憶力があって、なんでも明確に答える。マネージャのプラグナは、資料なしの会議でも情報をクリアに整理して、解像度高く物事を把握している。

 記憶力のよさが彼らの仕事のスピード感を生んでいることは確かだ。コンピュータの挙動に置き換えてみても、メモリ容量の大きいコンピュータは動作が速い。メモリが少ないと、データの読み出しにも、作業時にもいちいち動作が遅くなるものだ。

 私は以前、ADHDと診断されたこともあり、この障害は脳の短期記憶の領域が少ない。それもあって記憶することが苦手で、例えば大事な情報はどこかに書いておくとかして、極力自分の脳のメモリを専有するのを避けてきた。でもよくよく考えれば、そんな自分も受験のときはしっかり勉強しているので、大学に合格する程度には記憶できるはずだ。

 このことを考えると、なぜ自分がコンサルタント、エバンジェリストとしては成功したのかがはっきりと見えてきた。

 これら「自分がやらない」職業に関しては、記憶力のよさはいらない。コンサルタントの、いわゆるクイック&ダーティの世界では、記憶力やその緻密さはさほど必要ないのだ。勉強は必要だが、新しいことの概要を素早くつかむ能力が重要で、学びそのものは細かくある必要はない。むしろ記憶力があまり達者でないほうが古いことにこだわらずさっさと次に向かって進めるので「向いている」とすら言える。

 私のようなタイプの人は、記憶が厳密でなくても回せる職につくと楽しくやっていけるだろう。事実、私もそれらの職種では“努力”した覚えがない。

 しかし、自分がやりたいのは「プログラマ」であって、子供の頃からの執念であり夢だ。だから、自分のネイチャーに反して、「記憶」という大問題に真剣に向き合うことにしたのだ。

理解が浅いと記憶も悪くなる

 同僚やマネージャは、はるか前に書いたコードについても、私が聞いたらすぐにレスをくれるし、オンラインの会議でコードやアーキテクチャに関してディスカッションしても効率よくやれる。

 なぜ彼らは記憶力がいいのだろう? 私なんて、つい先日自分で書いたPull Request のコードですら、すっと思い出せないことが多いのに。 

 

   これを突き詰めて考えたとき、ふと頭に思い浮かんだのは「もしかすると、これも理解の浅さが原因じゃないだろうか?」ということだった。

 つまり、私がアドリブではうまく説明できないのも、あまりディテールを覚えていないのも、実は十分に理解できていないからではないだろうか。

   自分がコードを書いて、既存のデザインを変更し、各種テストもしっかり通して、新たに動くと確信を持てるコードを書いたのであれば、大抵「理解しているだろう」と思いこんでいる。だが、試しに書いたコードについて口頭で説明しようとしても、曖昧模糊として、全然うまく伝えられない。

「そうか、自分がやったからといって、理解できてるとは限らないんだ」という事実に行き着いた。

人に説明可能な状態にもっていく

 そこで、時間は気にせず、自分がやったことをクリアに説明できるよう時間をかけて言語化してみる。すると、いろいろな箇所で「あれ、俺なんでこここうしたんだっけ?」「ここって、他の実装でもいけないかな?」「この部分って、こういうペイロードが来たら破綻するのでは?」と疑問点が湧いてきた。

 結果的に、書いたコードを書き換える必要はなかったが、説明のためにコードを見なおして整理して考えると、自動テストを通すことによって、動いているけど「わかっていない」部分をたくさん発見した。

 また、説明可能にするということは、構造を整理して把握して、脳のメモリに乗せる必要がある。

 先に、「どうしたらそんなに細かいところまで把握できるのか?」という私の疑問に対し、スキップマネージャのアニルーダが「メンタルモデルをつくる」ことだと示唆してくれたエピソードを紹介したが、まさにメンタルモデルを使った構造的な把握こそがそのまま記憶にも直結する。

 逆にいえば、メンタルモデルを脳内に作成するためには、単にやって終わりではなく、細かいところまで自分で「ハンドル」できるレベルまで理解して、整理する必要がある。つまりレベル1の領域だ。そのためには単に「できた」ではなく、少なくとも「説明可能か?」というセルフチェックを入れたほうがよい。

「ブログを書く」すすめ

 人に説明可能な状態にもっていく訓練として最良の手段の一つは、ブログを書いてみることだ。

 私のプログラミング師匠かずきさんにプログラミングの上達のコツを聞いたときに言っていたことが、「新しい技術を学んだら、ブログを書く。サンプルコードはそのまま使うのではなく、自分なりに変えたものをつくる」。つまり、人に説明可能なレベルで記述することが理解を深め、記憶を定着させるのに非常に有効な手段なのだ。私がよくnote やブログに雑記を書いているのも、自分の気づきを脳内整理して記憶するためにやっている側面が強い。

 人間が記憶をするために有効な方法は、シンプルに「思い出そうと頑張る」ことだ。私はこの方面への苦手意識が強かったが、これを理解してから記憶力が大きく改善された。

 例えば歌の歌詞を覚えようとする。今までは、何回も通しで繰り返し書いたり、何回も歌を聴いたりしても一向に覚えることができなかった。

 そこで、何回か歌を聞いたら、最初から少しずつ歌詞を思い出すようにしてみた。最初の小節を思い出す、それができたら次も記憶から呼び覚まそうとする。全部いっきにやらずに、少しずつ「思い出す」ようにする。すると以前は全然覚えられなかったのに、今は1日あれば歌詞が暗記できるようになったのだ。

最強の「コーネルメソッド」ノート術

 さらにこの理論を応用したノートの書き方がある。「コーネルメソッド」という比較的有名な方法だが、「ノート/キュー/サマリー」の形式で作業を記録し、その日の終わりに整理し、「作業内容を人にそらで説明できるかどうか」を記憶できたかのチェックポイントにしている。例えばコンピュータの新しい操作方法を覚えたとする。ただノートに書きとめるだけではなく、アウトプットを意識したコーネルメソッドの方法で書くのがおすすめだ(図参照)。

1 「ノート」のエリアには、ノートを取りながら学ぶのではなく、自分が学んだことを後から思い出しながら要点を書くのがポイント。例えばオンライン会議でウィンドウズの画面が映らなくて苦労して、いろいろ調べて解決したとき、そのプロセスを思い出して整理して書く。箇条書きでもいいし、簡単な図を入れてもいい。

2 「キュー」(きっかけ)には、自分が学んだことにつながる質問を書いておく。例えばウィンドウズで画面がうまく映らない場合に、できることは何か? など。

3 「サマリー」には、後日振り返ったときに、要約を書く。この場合なら、トラブルの原因と解決法の簡潔なまとめだ。

復習のタイミングを習慣化する

 3つに区分けして書く。たったそれだけのことが、仕事においてかなり有効だ。最初からアウトプットを意識したこの記述の仕方だと、理解のレベルが自然と深くなり、驚くほど記憶の定着率が高まる。

 記憶に関するもう一つの重要な要素は、記憶しやすくなる復習のタイミングを習慣化するという点だ。覚えたら翌日、そして1週間後に振り返るとよいだろう。

 有名な「エビングハウスの忘却曲線」を踏まえてもそのほうが合理的だし、カナダのウォータールー大学の、24 時間以内に10 分間復習すれば記憶は100%戻るという研究発表もある。

 コーネルメソッドのメリットは、復習で思い出す練習もしやすいことだ。私はこの方法でノートを書く癖をつけて、次の日に見直して、覚えているか確認するようにした結果、仕事の記憶の解像度がくっきりと上がってきたのを実感している。

 自分の作業をいつでも明確にわかりやすく人に説明するスキルは、非常に重要だ。自分の知っているコードベースというものは全体の一部なので、どうしても人に引き継いだり、エキスパートにものを尋ねる場面がよく発生する。日頃から伝達を意識した記録のつけ方をしていると、多くの時間が節約できるのは言うまでもない。

(牛尾 剛/ライフスタイル出版)

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください