河野真治 @ 琉球大学情報工学です。

いつも言っているのは「3ヵ月、3千行、動く」なんですが... (動
かないコードを大量に書くのは簡単 :-p) ちなみに、プログラミン
グ言語は問いません、Prolog, APL, VTL系はコード密度が高いので、
千行で許す。

まぁ、難しいよね。一週間徹夜とかではダメだ。10行から100行程
度のプログラムを何回か書いた程度では歯が立ちません。3千行読
めなくても3千行書くことは出来るとは思う。

自分でも、徐々に書けるプログラムの大きさを大きくしていったよ
うな記憶がある。プログラム電卓256 stepsから始めてさ。

系統的に、3千行書く能力を身に付けさせるプログラミング教本な
んてないしなぁ。

まぁ、でも、そういう本がないのは、特別な秘訣とかがないからで
もある。結局は、問題を分割して、1行1行理解して、書いていくし
かない。

でも、3千行と言っているのは、自分的な経験から、頭から書いて
いって、そのまま動く限界なんだと思うからです。まぁ、それは僕
の能力の限界なので、他の人は、もっといけるかも知れないけど。

逆に言えば、3千行程度だと、「全部のコードを覚えていて、スパ
ゲティコードで動かす」ことが可能。

僕の時には、その後に「自分で書いたコードが理解できなくなる」
という壁があった。その時に書いていたのは、(今から考えると)CPS
変換ベースのコンパイラだったけど、どうしてもプログラムが止ま
らなくなっちゃって往生した記憶がある。修論の土壇場だったし。
一応動かしましたが、動作に自信がもてなかった。ま、幸いなこと
に、そのプログラムは「結局、ダメ」ってことで捨てたんですけど。

その後は、そういう壁にぶつからないように注意して書いているの
で、だいじょうぶっぽいけど、まぁ、いろいろだな。年喰って来て
いるから能力の限界自体は下がっていると思う。でも「全部覚えて
いて書ける」範囲でプログラム書いているわけじゃないから、実は、
個人の能力とプログラミング能力は関係ない気もする。

3千行の壁を越えるためには、書くだけではダメで読まないとダメ
だと思う。特に他人の書いたものを。その辺りは経験がものを言う。

あとは、デバッグの経験かな。失敗は数多く体験した方が「あぁ、
あれだ」って当たる確率は高いから。

つまり「プログラミングは若くないとダメ」ってのは「一気にスパ
ゲティコードを書く能力は若い頃の方がある」ってだけなんだと思
う。

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科