色々気にせずどんどん書いたらいい

おくじさんからいくつか助言をもらった。

技術については後から摺り合わせていけばいいじゃないかと考えます。とりあえず書く、出してみて、よろしくなければ書き直す。
[...]
コードあんまり書けない人ほど、コードが打ち捨てられることに抵抗を示しますが、コードがどんどん書ける人の場合、コードが没になるかもしれないなんて心配するだけ無駄です。心配している間に書けますから。私はコードなんていくらでも書けると信じているので、書き捨てることに全く未練がないですね。実際、昔書いたコードなんて、ほとんど持ってないし。大事なのはコードそのものじゃなくて、書く過程で得られる経験、知見、洞察でしょう。

そうですね。
私は書いたコードは後生大事に取ってありますしこれからも保管しつづけるつもりですが、それを見返すことなんて全くありませんね。実際は hard disk space の無駄です。
悩んでる暇があったら書いてみるというのは確かに何より建設的なようです。↓で出した "The Evolution of LISP" の Scheme 誕生話を読んでいても、それを切に感じました。とにかく何でもいいから思った通りに書いてみようと思います。ありがとうございます。

とどのつまり、プログラミングなんてどれをやっても似たり寄ったり、必要な知識が異なるぐらいのもんです。本質的には同じことじゃないですか。

これはどうだか、実感がありません。どの種類の programming にも共通する本質というのがあるのは承知していますし、最近はその共通部分が思ってた以上に大きいことがわかってきましたが、それでも経験の差というのはあるでしょう。
SigScheme の実装について Shiro さんに「このケースは考えてあるか」とポツリと尋ねられたときや、ヤマケンさんに「この object 操作は抽象化した方がいい」と言われたとき、Cheney on the MTA という Scheme の実装法の論文を読んだときです。私は多分まだこれらを自力では思いつけなかったでしょう。これらは普遍的な部分への理解から出ているような、case study から出ているような、両方から出ているような気がします。あ、なんか言いたいことが分からなくなってきた。
結論としてはおくじさんのおっしゃる通り、「興味の赴くままに手広くやったらいい」になるんですけどね。

開発のための開発

あんまり意識したことはありませんでしたが、言われてみれば思い当たる節はいくつもあります。そもそも最初はゲームが作りたくて C の入門書を取ったのが始まりなんですが、今では全くそんな気はありませんね。次から次へと meta な開発に移りつづけた時期もありました ([忘れた]を作ろう→[忘れた]で使う library を整備しよう→エディタを書いて開発を楽にしよう→charset library を書こう→…)。どれ一つとして動くものができませんでしたが、その間に蓄積した知識は確かに何物にも代えがたいですね。楽しかったし。
何にせよ、楽しく書くことを忘れないよう肝に銘じておきます。そのときが一番生産的で勉強にもなりますし。