現実の問題には別解があります。
ただそれぞれのやり方がどれも同じように良いかと言うと、そうでもありません。
結果が同じであっても、うまいやり方とまずいやり方があります。
---
例えばこの配線を見てください。
左と右で電気的には同じなんですが、スッキリ感が違いますよね。
左の配線でもつながるけれど、すっきりした配線ならもっと広がる
見た目だけの問題ではありません。
これを変更したり拡張したりする時には、この違いは大きく影響してきます。
はじめ自分の試行錯誤で左のように作ってみたんですが、本などを読んで右のやり方に気づくことができました。
---
教科書というのはこういった定石がまとめてあるものです。
それぞれのやり方はさりげなく書かれているのですが、その中にはいろんな人たちの英知が詰まっています。
定跡は先人の試行錯誤の結晶です。
---
昔は教科書って面白味がないなぁと思っていたんですが、そういうことにだんだんと気づくようになってきました。
いろいろやってみたら、自分のやり方に固執するのはなく、教科書に沿った定石に従ってみることをお勧めします。
それを体得したらその上で自分のやり方を模索すればいいんだと思います。
このステップを押さえないと、変なくせに凝り固まってしまうことになります。
---
ところで、やり方の多様性そのものは間違いではありません。
プログラミング言語にも「多様性は善」というスローガンがあります。
RubyやPerl、C言語のようなプログラミング言語は、秩序だったやり方だけではなく、多様性な手法を許容しています。
これらの言語は、色々な工夫ができる構造になっている「ハッカー御用達」の言語です。
「プログラマの可能性」を信じているプログラミング言語です。
---
それに対してPascalやPythonのような教育用のプログラミング言語は、どちらかと言うと優等生的なやり方を推奨するような制限が込められています。
それぞれのプログラム言語は、この自由と制限の軸の中にそれぞれの居場所を持っています。
ここで言いたいのは、そのどちらが優れているということではありません。
私自身の好みとしては、Rubyのような自由な手触りの「書いて楽しい」言語が好きですが、最近Pythonを触ってみて、「読みやすさ(Readability)」を第一義にするというコンセプトもとてもいいなと気づきました。
---
どんな仕事においても、柔軟性や素直さというのは大切な性質です。
我流と定跡とバランスを取りながら、どちらにも拘らないのが良いと思います。
その人の成長する力は、素直で柔軟であれば大きくなります。
逆に頑固な人の場合は、あまりその将来性を期待できないのです。