論理的思考の放棄
だいぶ前に話題になった頃(2020年?)に読んだときは「そんなわけないやろ」と思った
そこまで突飛な主張をしてるわけでもないと感じるようになった
書かれていない前提は当然存在するだろう
ある程度の知識と経験と訓練の積み重ねのものではありそう
実際、著者は小2からプログラミングに触れていて、この記事が23歳に書かれたもの
既に15年経験があるベテランと言える
単純に脳内メモリの容量が大きそう
ここまではすべて頭の中で処理することができるので、別にコンピュータがなくても良い。電車の中でも授業中でも運転中でも行うことができ、便利である。ref これが先天的なものなのか、訓練によるものなのかはわからない
単純に容量が大きいのかもしれないし、知識のうちの膨大なパターンを組み合わせることで圧縮できているのかもしれない
文字通りに「論理的の思考を放棄」をしてるわけじゃない
意識的にやっていないというだけ
「論理的思考をしない」という感覚
これ自体は、誰でも多少は経験したことがあるだろう
最初は考えてやってたけど、徐々に何も考えなくてもできるようになったもの
日本語の発話はちょっと例が悪いかmrsekut.icon
自転車の運転とか
英語を読むとか
プログラマならタイピングとか
配列を変えた最初は頭を使ってるがそのうち無でも打てるようになる
できるひとなら、絵を描くとか、ピアノを弾くとか、ジャグリングするとか
こういった身体的な感覚を、創造的なことにも応用を利かせる
二次創作が得意な人は、頭の中にどんどん物語が出現するとか
頭に浮かんだ映像をただ文章に落とし込むだけとか
そういう感覚を、設計やプログラミングにも応用している
誰かの書いたコードを読んだ時に、感覚的に「なんかおかしいな」と感じることは結構ある
逆に、「まだ理解できてないけど筋が良さそう」という感覚も確かにある
その感覚を頼りにして、その後、論理的に考えて理由を探している感じ
抽象的、感覚的、直感的の感覚
著者がどの程度厳密にこの辺の単語を使い分けているのか不明だけど、「論理的」の対になる立場として、このような単語を使っている
抽象的
まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。
感覚的
論理的でない考え方をすることが重要なのだが、ここでは仮に「感覚的な思考」とでも書いて表現することにする。
直感的
もっと直感的に、「なぜか上手く言葉で正確に論理的に表現することはできないが、この音楽は良い」というような知覚が発生する。
論理的思考は、論理を積み重ねていく必要があるのでどうしても遅くなる
感覚的な思考はそういった制限がないため無限の広がりを展開することができる
だが、人間の感覚的思考機能の上でエミュレーションされた論理的処理機能は、所詮エミュレータ上のようなものなので、実マシン (人間本体) と比較すると、とても処理が遅い。オーバーヘッドが大きすぎるのである。あらゆる方式の処理を瞬時に同時実行することができる人間の頭脳がせっかくあるのに、論理的処理用の仮想環境を脳の中で構築し、その上で物事を考えるから、効率が悪くなる。ref 哲学的に思考する際に、新しい概念を表現する際に既存の単語を使ってしまうと論理的なズレが生じてしまう
本当に伝えたいもの、考えたいことが、本質とはズレたものとして認識してしまう
造語を設定することで、その問題を回避する、という手法がよく取られる
何か創発的な会議を複数人で行う時に、早々に結論を出すことを避ける
曖昧なものを、曖昧なまま共有する
既存のパターンに落とし込んでしまうと、本当の本質が抜け落ちてしまう可能性がある
という話と似てると思うmrsekut.icon
どうするか?
書いている手順的には
頭の中で作るものを設計し、
まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。(中略) 感覚的な思考でもってこれを行うのである。
次に、だいたいイメージができたところで、心の中に、ソフトウェアの設計図やデータ構造といったものを思い起こす。(中略) 徹底して、感覚的な思考でもって設計する。
それを出力する
プログラムを作る前に頭の中で設計をする、というのは小さいプログラムならたしかにできそうmrsekut.icon
特に、1度書いたことのあるプログラムなら、手癖で何も考えずに書ける感覚はある
その感覚を身にしみて理解するために、同じプログラムを繰り返し書いてみるとか
業務で扱うプログラムは、訓練にしては規模が大きすぎるので、より小さいプログラムで感覚を掴むと良さそう
簡単な問題を解いてみるとか
新しい技術を試すときとか
簡単なスクリプトやプログラムを作る時に心がけるとか
さらにこれを0→1のタイミングで行う訓練をする
実際は、頭の中で設計したものをちょっと書き出してみて、詳細が見えてなかったことに気付き、再度考える、というサイクルを繰り返していることが多い
著者は、それを最後までやり通しているのがヤバい
更にそれを、0→1に対してもやっていそうな点がヤバい
いかなる場合でも、設計は、最初の 1 回目で確定させ、それ以降、プログラミングの作業に入った後もその設計を後悔したり修正しないといけなくなったりするようなことは、極力起こらないようにしており、その結果、そういう惨事は発生していない。
出力する部分
頭の中で一通り答えを出した後は、それを出力するだけ
作家なら文章に起こすだけ
プログラマならプログラムを入力するだけ
プログラムの場合は型やテストなど、早期にフィードバッグが得られるので良い
障害が少ない
2023年の時点で、mrsekut.iconのプログラミング経験は5,6年なので、後10年ぐらいでこの境地に到れれば万々歳という感じか
後5年とかを目標にしてみるとか