良いコードを書くには? 「書きあぐねている人のための小説入門」

ラジオの書評番組を聞いていて面白そうだと買ってしまいました。第一章を読んでいてこれは小説の書き方だけでなくプログラムの書き方、というか、良いコードを書く事と重なっていると感じました。

書きあぐねている人のための小説入門 (中公文庫)

書きあぐねている人のための小説入門 (中公文庫)

小説とは「小説とは何か?」を問い続けながら書くことだ

この本は小説を書くためのマニュアル本でありません、むしろマニュアル本を否定しています。この本はどちらかと言うと著者の小説論かもしれません。その中で著者は小説とは「小説とは何か?」を問い続けながら書くことだと語っています。

コードを書く時に、どうしやったらスマートにこの機能が実現できるのか? どうやったらスマートなコードが書けるのかという事を考えると思います。

たしかに良いコードを書くための手法、技法はあります。それを学ぶ事は重要ですが、手法や技法を守っていてば良いコードが書けるのかというと、そんなことはないと思います。やはり良いコードを書くためにはどうすべきかという自分なりの思考の積み重ねがないと良いコードにならないと思います。

全力を小説を書くことで、その人が成長するからだ。力を出し惜しんだ人はその一作で成長しないから、作品を書くことで書く前と少しも変化がなく、だから一作目をかく前と同じ状態で二作目を書くことになる。(人間の能力というのは奇妙なもので、最初の一作のために全力を注ぎ込んだ人には、二作目がある。しかし、力を出し惜しんで、第一作を書きながら二作目のネタを残しておいた人には二作目どころか第一作すらない。)

プログラミングの場合は、この手法は次の仕事に取っておこうなどと考える事はあまりないかもしれませんが、難しい仕事に挑戦し、思いっきり考え、悩みながら一つの仕事を完成させた後では、確かに自分が成長したと感じる事がありいます。
それは、一つの仕事を成したという自信だけではなく、悩みながら試行錯誤した課程がプログラマーの能力を上げていると思います。ただし、このような感じを得られるのは私の人生の中では数回でした。

小説を何十年も書きつづけるためには、書きながら自分をレベルアップさせていくという心づもりないと耐えられない。

何年か同じようなアプリ、同じ言語でプログラムを書いていると、すらすらとコードが書けるようになってくると思います。しかし、そこで進歩の止まっているプログラマーを時々みかけます。プログラミングの能力を上げるには積み重ねも重要ですが、書籍や他人の書いたソースコードを読み、そこで知った新たな方法を試みることを行わないと能力は伸びて行かないと思います。