万里の長城の作り方とプログラムの作り方

ドラゴン桜を読んで

万里の長城はちょっとずつ小分けにしたものをつなぎ合わせるような
作り方をされたそうだ。


これは5万キロにもおよぶ長城を端から作っていたのではモチベーション
があがらないことを避けるためだったり、少しずつでも達成感をもたせ
モチベーションを上げる効果を期待したものらしい。


そこでこの小さいものをつなぎ合わせるような作り方はプログラミングにも
つながるのではないかと思った。


プログラミングの方法は人それぞれでどんな作り方をしても良いと俺は思う。
しかし、人間が作るとなるとやはりモチベーションが大事であり、大きな成果物を
作ろうとすると必ずこのモチベーションの維持が成果物を作り上げる期間や
品質に大きく影響してくる。


そこで大きなプログラムを作ろうとするとやはり、小さいプログラミングを
つなぎ合わせるような少しでも達成感を味わいながら作るほうが成功する
確率があがるのだと思う。


ところが、万里の長城のようなシンプルなものであるならば良いがプログラミングは
複雑さが伴う。小分けにしたものは最終的には大きな一つのプログラミングの部品であり、部品をどこに組み込むかということは知識として記憶・整理する必要がでてくる。そうしないと小分けにしたものがこれはどこに組み込むのであったかを忘れてしまい同じような部品を何個も作ってしまうことになるだろう。


そこで個々の部品を一つの機能として体系化することが重要でそれが同じようなコードの重複を避ける一つの対策となる。それにはマインドマップだったりメモリーツリーだったりが有効になるだろう。さらに、そういった体系化の作業はよりよい部品の組み合わせの発見にもつながるだろう。


プログラミングには論理的な手法がちりばめられているし、論理的手法を導入できる要素があると思う。それに気付かずにプログラミングは誰にでもできるような単純なもの、プログラミングは肉体労働であるなどと考えるか。
それとも論理的手法を気付くかプログラミングは楽しいものだと思えるかは人それぞれだと思うけども最終的に成功するのはどっちかなと考えてみたい。