趣味プログラマが職業プログラマになろうとするとき、ソフトウェア工学を学ぼうとして時間を無駄にしたり、自分が間違った方法で開発しているように思わされて引け目を感じたりする事がある。はてなのid:naoyaさんもその中の一人らしい。
http://d.hatena.ne.jp/naoya/20050518/1116425594
でもなんだかうまくできませんでした。僕がプログラミング言語を使わずに考え出したソフトウェアというのは、綺麗に設計されているようで、実際に作り出してみるとまったくその通りにいかない。あそこがおかしい、ここがおかしい。紙の上の設計に後戻りしては設計書の間違いを訂正するのです。なんでだろう、本にあったとうりにやっているのに! そのときは、僕にはソフトウェアを綺麗に設計する才能がないんだろうと思い込んでいました。
きっと、その本の著者はまともなプログラマじゃないね。
自分に向いてるのはプログラミング言語を使いながらプログラムを考えることだというのが分かってきました。また、プログラミングをしている最中により良いアイディアが思い浮かぶということが何度もあり、次第にそれはプログラミングをしているからこそ思いつくことなのだということもよく分かってきました。紙の上では決して思いつかないようなアイディアが、プログラミング作業を通じて驚くほど自然に生まれてくるのです。
本物のプログラマは、それこそが正しい開発方法だと経験上知っている。だから、「紙の上で設計してコーディングは変換するだけ」なんてバカを言う自称ソフトウェア工学家が嫌い。
で、僕は憂鬱本を読んだことがないが、
http://d.hatena.ne.jp/naoya/20050924/1127533305
これでウォーターフォールなオブジェクト指向開発について学んでへえと思ったわけですが、実践してみるもなかなか難しく悟りの境地に達したのが例のPerlの話です。