><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
そういう風にトップダウンで一度でばっちりキリッって決めるのは難しい事があるから、試作ってあるかも><
授業では若干そういう感じの方法論も習ったので、まあ産業的にはそれが普通なのかもしれないけど……
やりたいことと大雑把な仕組みはトップダウンで決まるけど、「この通りにコードを書けばおkやで」という「書くだけ」ステージには持っていかないなぁ(私は)
さっきの動画の秋田新幹線に乗る人も、秋田に移動したい、もっと言うと、ある時点で秋田に居るという状態にしたいのであって、秋田新幹線に乗りたいわけではない><ある時点で秋田に居るという状態にする為にどうすればいいのか?と考えて、秋田新幹線に乗るという選択肢を選ぶみたいな事が設計かも><
・・・で、設計ってトップダウンだよねって><(トップダウンじゃない設計って世の中になんかあるっけ?><;(トップダウンかどうかって視点だからあれだけど><;))
プログラミングできるようにするってつまり「設計できるようにする」なんだから、設計の考え方を教えられなかったら、細かい事ごちゃごちゃ教えられてもそれの活用方法なんてわからないの当たり前かも><ニンジンの切り方を教えられたってカレーは作れないんだから><
「ドリルその物が欲しい」は、話がわき道に行っちゃうけど「付加価値!!><」の話になるかも>< オレンジが大好きすぎる秋田新幹線開通時のCMが、その付加価値をわかりやすく表現してるかも><https://www.youtube.com/watch?v=MM98lYzp9Dsこの動画の特に後半のほう><
ドリルを買いに来た人は穴を開ける気がなくてもドリルが欲しいのではないか
ていうか、何らかの「設計」を完全にボトムアップで考えるなんてまずありえないかも><;
『プログラミングできる人』に、新しい言語を教えるのであれば、ボトムアップでも教えられると思うし、独学してる人もコード見て「なるほど・・・><」ってしてるかも>< でもそもそもプログラミングできない人にそういう意味の基礎から教えても、考え方自体がわかんないんだから無茶かも><
なので比喩表現で言うと、「ジャガイモの切り方はまず忘れて!>< そうじゃなくカレーライスは最終的にどうやったら出来るのか?>< 完成品からたどって考えて行きましょう><」って教える方が、「どうやったらカレーを作れるのか?><」を『考える方法』を学べるかも><
「カレーを作る時にジャガイモを切ってる人は、ジャガイモを切りたいんじゃなくてカレーを作りたいのだ」みたいな>< プログラミングでもジャガイモの切り方をいくら教えてもカレーの作り方はわかんないかも><
このトップダウンで考える方法、デザインの話でもあるし、プロダクトとソリューションの違いの話とも同じ><(前に書いたけど、「クルマのハンドルを曲げた人は何がしたいのか?>< タイヤの向きを変えたいわけではないんだよ?><」とか、有名な「ドリルを買いに来た人はトリルが欲しいのではなく穴をあけたいのだ」とかそういうの><)
そのトップダウンで分解して考えられない人のfactorioを見ると、全ての工場が原料から作られるみたいになってる><(例えば緑基板(鉄板+銅線)の工場の入力が、鉄鉱石+銅鉱石+石炭になっちゃってたり><(つい数週間前の実話><))
プログラミングできる人々ってたぶん、「カレーライス作るよ!><」って考えた時に無意識に「カレーライスって事はカレールーとライスが必要かも!><」って考えて、「まずルーの方は、カレールーのなんか固形のやつと、にんじんとジャガイモと肉と・・・」みたいに完成予定からトップダウン(?)に考える人が多いかも?><
例えば、カレーライスを作るよ!><ってなった時に、プログラミングできないタイプの人ってオレンジが観察した限りボトムアップ的に考えちゃいやすいっぽくて、レシピを頭から呼んで混乱してるかも><
これら、プログラミングに限った事じゃなく、お料理もそうだし、ゲームなら例えばfactorioとかプログラミングの分解して考える方法が出来てない人を観察できるかも><
ずっと「挙動を分解して記号化する」の方向で勉強してきたのであまりイメッジがわかない
あれ、もしかして普通の人って「コードから挙動を想像する」の方向で考えてるんですか……
プログラミングに困難を覚えている人の大半は挙動を想像するという段階に至ってなくて「○○をするためには~~と書く」というのが頭に定着していないのではないかと思う.
思考の /dev/null