👏

画面を見なくても作業が進む!情景プログラミングのやりかた

2022/04/28に公開約2,000字

※ 本記事はおそらくほとんどの人にとっては理解不能or役に立たないと思うので、フィクションとかフェイクニュースの認識で読んでください

最近、Good&Newなどの雑談で情景プログラミングについて話すことがあるので、記事にまとめます。

情景プログラミングとは

情景プログラミングとは、私の脳の特性を最大限活用し、自分の作業を効率よく進めるために考え出した必殺技です。
英訳するとVisualized Programmingとかでしょうか。

私が勝手にネーミングしたので、世の中で知られている技ではないし、医学的根拠もありません。
あと、繰り出すとかなりの体力を消費します。
ドラゴンボールで言う、かめはめ波のような必殺技です。

背景:私の脳特性

私はウェクスラー成人知能検査(WAIS-IV)を受けたことがあり、ワーキングメモリー(WMI)特化型であること、および軽いサヴァン症候群があると診断されています。
特性としては以下です。

  • 10桁以上の数字を短時間で暗記し、何ヶ月も覚え続けることが可能
    • ただし限界量があり、円周率で試したら222桁前後だった
    • 数字以外の記憶は得意ではない(よって、学業の助けにはならなかった)
  • 3桁以下の数字を見ると、景色がパッと脳裏に浮かぶ
    • 浮かぶ景色は数字によって違う。例えば222ならアンパンマンが空を飛んでるシーン

これらと引き換えに平均より劣ることもたくさんあるのですが、この長所を最大限役立てようという発想です。
ちなみに「ぼくには数字が風景に見える」の著者ダニエル・タメットさんと同じ特性ですが、あの人は超人クラスで、私のは一般人+αくらいのものと思います。

情景プログラミングのやり方

  1. 席をたつとき、モニターに映し出されているプログラムコードやIDEの状態を、その景色から数字に変換して暗記する
  2. 席にいないあいだ、時々、暗記した数字を脳内で復元して続きを考える。考えたあとは再び数字に戻して暗記する
  3. 席に戻るときに、覚えている数字を景色に復元して、差分の修正にとりかかる

補足

1では、1文字1文字コードを覚えるのは不可能なので、細部は諦めます。
大雑把なインデントやネスト、色のついた強調表示、各ウィンドウの配置などを優先して数字に換えて覚えます。
関数名などのキーワードは、数字にせずそのまま覚えます。
例えば、田中さんは1987年1月23日生まれ、と覚えることがありますが、その「田中さん」の部分が関数名などのキーワードになるイメージです。
setLocationは3026504296552107228...、みたいな感じでしょうか。

こうやって書くとなんかすごいことをしてる風ですが、実際は誰しもやってることの延長です。
前回見たアニメやドラマの終わりをふっと思い出して、次はこういう展開になるかな、って空想しますよね。
それを数字と景色を使ってやっている感じです。
あと、間違えても良いのです。修正は3で行います。

3で覚えているのはしょせん机上(脳上)の空論なので、打ち込んでみて思い通りいかないことはザラにあります。
だから、ゆっくり時間をかけて正しいコードに直していきます。
それでも、席に戻ってからノープランで続きを考え始めるよりは、ぜんぜん早く続きを書けるはずです。

効果

とはいえ、いきなりうまく景色と数字を変換できるわけがありません。練習が必要です。

2022年3月から、いろんなものを数字で覚える練習を始めて、1ヶ月後の4月某日にプログラミングで使ってみたところ、使わなかった場合と比べて約150%の開発スピードが出ました。
ただし、その後は1日くらい頭が働かず、腕や足も思うように上がらない(全身がだるい)状態が続きました。
1日休んだら、100%×2日に対して150%×1日なので、むしろ現状はマイナスですね。

人間の脳は新しい作業で消耗しても、やがてそれがルーティン化すれば省電力で同じことを行えるものなので、将来性には期待できるかなと思います。

背景:育児

とはいえ、エンジニアとして10年以上、こんな技は必要とせずやってこれました。
転機は子どもができたことで、子どもが寝てから自分が寝るまでの時間を勉強時間にあてていましたが、やがて子どもの寝る時間が短くなり、私とそんなに変わらなくなってきました(私は1日8時間寝るので)。
デスクに向かう時間を確保するには、必然的に家族との時間を諦めることになるので、どうにか両立する道はないかと、時間を捻出する技の1つとして考えました。

デスクに向かわず仕事をする夢の時代が来ることを望んで、この技の練習を重ねていきたいと思います!

Discussion

ログインするとコメントできます