バカが征くより：

若いヤツと仕事してると、よく『なんとなくこのへんが おかしい気がするんですけど』っていうのを聞く。

若くなくても、そういう人はいるんですよねえ、というのは置いといて、 私がしばしば言っていることは

プログラマは一行一行に責任を持て。

ってことなんですね。 「プログラムというのはロジックを記述するためのものなのであって、 詩や小説じゃないんだから、無意味な行があっても仕方がない。 自分がそこで何を意図しているのか責任を持てないようなコードを書いちゃ駄目。」と。

もっとも、詩や小説にも本当には無意味な行なんてものはなくって、 雰囲気を作り上げるためとか、話のテンポを調節するためとか、 それ相応の意味があるわけですが、 プログラムというものには「論理的に」関係のない行があっては駄目だと思うんですね。 もちろん、読みやすくするための空行とかは別ですが、 何かやっているのに実は何の役にも立っていない処理があったって、 無駄でしかないわけです。 こういうコードを書く人は自分が何をやっているのか理解していなくて、 結局何かの役に立っているところもおかしいことが多いのです。

エンジニアというのは、何か実用に供するものを作る仕事です。 エンジニアの成果は誰かが使う、そして、その結果として、 何かがうまくいったり、いかなかったりします。 時にはそれが人命に拘ることもあります。 生死にまで関係なくても、相当大きな損害を生み出す可能性が多々あります。

そこで、自分でも何やっているのかよくわかっていないようなものを作って、それを他人に使わせるなんて、私はあんまりだと思ってます。 使う人の身にもなってほしいものです。 そういう人は、ちゃんとわかるようになるまで、あまり重要な仕事には関わってもらいたくないと思います。

ちなみに、そういう「わかってないのに書いている人」を見抜くのはそれほど難しくありません。 その人が書いたコードをざあーっと眺めて、 怪しそうなところをいくつかピックアップして、 逐一「ここは何してるの？」と尋ねれば容易に判明します。 「そこは読みにくいかもしれないが、こういう意図であって..」と説明できたり、間違っていたとしても「自分はこう考えて書いていたが、言われてみると、正しくなかった」と認められるなら、大丈夫。 「えーっと、よくわかりません」とか「それでいいような気がした」とか「...（沈黙）」とかだと、やばい。

しかし、こういうのは意識の持ち方次第で改善できることですから、 それほど悲観はしてませんね。 書く気力がある限り、経験していくうちに良くなっていきますから。