プログラマー脳 ② コーディング中の混乱 (2) ~

今気付いたのは、このブログ、「下書き保存」の必要性が思い当たらないな。

常に「公開する」で、後で編集して行けば良いのでは?

《昨日学んだこと》 混乱にも種類があって、3 種類に分けられそう。

なので、「混乱した 😵‍💫」となるよりも、「これはどの種類の混乱なんだ? 知識不足? 情報不足? 処理能力不足?」と分析できるようになると良さそう。

なお、この 3 つのうち、最後の「処理能力不足」が頭に思い浮かばなかった。出せるようになりたい。

全っ然関係ないのだけど、今朝、寝床でどうしても「義務」にあたる英単語が思い浮かべられなかった。

「義務教育」→ "XXXX education", で当て嵌まるものをどうにか思い浮かべようとしたものの、mandatory という単語しか思い浮かばず、違ったような気がしつつも諦めたのだった。

なのに、今そのことを思い出したら、compulsory という単語を(スペリングは考えていなかったが)思い出せた。

少し寝かせただけなのに、想起のプロセスとは不思議なものだ。

あと、これも関係ないのだけど、昨日学んだことのもう 1 つに、JS での Array.from の使い方があった。

思い出せるか、今書いてみよう。

arr = Array.from( { length: 31}, (v, i) => ({ id: i, title: "title #{i}" }) )

↑ これで合っているか確認したところ、Array.from の使い方は概ね正しい(index が 0 始まりなのが頭から抜けていた)ものの、テンプレートリテラルの使い方が Ruby になっている…。

title: `title ${i + 1}`

とすべき。

1.2 コーディングに影響を与えるさまざまな認知プロセス

なるほど、

知識不足 → 長期記憶の問題

情報不足 → 短期記憶の問題

処理能力不足 → ワーキングメモリの問題

a.k.a

問題   原因

知識   長期記憶

情報   短期記憶

処理能力 ワーキングメモリ

ということか。

英語だと、長期記憶、短期記憶、ワーキングメモリのどれも "memory" で終わるのに、日本語にするとワーキングメモリだけ別物感が出てしまっているな。

ここまでで既に、本書のプレゼンができるな。

「皆さんも、プログラミングで行き詰まることがあるかもしれません。しかし、その行き詰まりを分類すると…」的な。

「このような経験はありませんか? いや、プログラミング経験者なのですから、全員ありますよね、分かっています。」

1.2.1 長期記憶とプログラミング

1.2.2 短期記憶とプログラミング

ここまで読んでいて、あまりピンと来ていないのは、短期記憶とワーキングメモリとの違いだ。

それぞれ、情報不足と処理能力不足という問題に対応付けられていたけれども。

  • 短期記憶
    • 1 ダース以上は記憶できない
      • マジックナンバー 7」みたいなヤツだ。± 2 ぐらいしか短期的に記憶に保持できない、という。
    • プログラミングの文脈だと、以下のようなものが該当
      • キーワード
      • 変数名
      • 利用されているデータ構造