><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
既成の部分が使えるかを知るためには「これはこう使える」みたいな用法まで含めた部分がわかっていないといけないわけで、それって最初に教えるべき部分ではなくて、「問題を(設定された粒度まで)分解できる人が、部分的に未分割な問題とうまく付き合う方法」という、言ってみればステップアップ後の段階なのではと思いました
ていうかそんな事言ったら何らかの課題で教える時に正解を丸ごと教えないとケチみたいな話になっちゃう>< それじゃ何も設計は出来ない><
試行錯誤するにしても、「整数に分解します」の部分は絶対に最初に提示するべきだと思うんですよね
そういう条件自体を見つけるのも設計だよ!><; 設計って設計開始時点では無いものを考える作業だよ><;(じゃなきゃただのコピーだよ!><;)
ここで提示されてほしいメタ条件は、「分解先は2以上の自然数でいいです」と「分割後の積が分割前と一致するように分解します」だったりするわけで
でもある程度以上大きなものの設計って基本的にそういうものかも><(自動車を作ろうって考えたら、部品で買える所までは辿らないといけないし、既製の部品で納得がいかなければ最後は「鉄鉱石ってどうやって掘るんだろ?><」とかなりかねないし、そういう意味では元々きりが無い><)
たとえばなんか巨大な整数を与えられて「さあ分解してみましょう」と言われたとして、それをなんだかよくわからないけど延々と分解していって、いつか「おっ、それは既にありますね!やった!」と言われるまで延々とポチポチして分解しつづけるみたいな終わりのないジョブ、私にはちょっと耐えられないです
さっきも書いたけど、ほぼ全ての人にものすごく嫌がられるけど、でもかなり有用><;
それ私が嫌いなタイプのやつだ……完全に個人的嗜好の問題っぽい
例えば部品に辿って考えていって教えられてる人が「じゃあ、これとこれを足せばいいって事?」ってなったとして「足せばいい!?>< なんとここに便利な加算命令というものが!!!><」「マジで!!!!?」みたいな><
うん><; なのでまず「設計とはどういうものか?><」という概念を先に教えないと無理だよ!><;って話をしてるし、具体例としては1対1で気づかせるって方法の話をしてた><;
あれ?いま初学者に教える話だった気がしましたが
完成品から部品にたどって必要なものを考えていって、その必要なものが「そういえばそれ、完成品で既にあるかも!><」ってなったらそれを使えばいいし、そこが底かも><(駄洒落かも><)
たとえば求める条件の記述が、状況によって「カードが昇順に整列されている」で十分なこともあれば、整列や大小関係とはどういうことなのか記述する必要もあるかもしれないし、そういった「設計をこれでよしとする(メタな)条件」が明示されてほしいという感じだろうか
その設計が何から成っているのか(記述の最小粒度)が提示されていないから、「まだやるの?どこまで掘り下げるか聞かされてないんだけど……」というゴールの見えない感が出てしまうのでは
未発見のものでありまだ作られてないものなんだから、最初にも何もまだ存在しないかも><; プログラミングで「プログラミングって完成品のソースコードがあれば作らなくてもいいんじゃね?」「そうだね!>< でもそのソースコードが無いのでどうやって作ろうか?って考えてる時に完成品があればって言ってもしょうがないかも!><;」みたいな話かも><;
「それ最初に言えや」みたいな
たとえるなら、文法を提示されていない言語でコンパイラと闘っているような
たぶん「情報の後出し感」がそうさせるのではという考えです
意識し活用できるかは別として、まず情報開示を行ってから始めましょうという気持ちが強い
思考の /dev/null