oldwaveの日記: 絵画のススメ
設計力を鍛えるために、絵を習ってはどうかと思う。
自分は小学生から高校生にかけてアトリエに通っていたのだが、そこで得た知見は大いにプログラミングに役立っている。
たとえば、ある程度大きなキャンバスに絵を描く場合には、より小さいキャンバスに習作を描くと有効である...プログラミングに直せば、プロトタイピングだ。習作を描く方が「早く」仕上るわけではない。完成度が高まるのである。
大きなプログラムはデバッグが難しい。完成度の低い大きなプログラムとなれば、その難しさは船を沈没させかねないほどだ。そこで苦労するより、プログラムの完成度を高める努力をする方が遥かにいい。
絵を描く経験が足りない人は、最初から確定的な線を一発で引こうとする傾向がある。いってみれば人物画を描こうとするとき、最初に顔の輪郭から描こうとする感じだ。だが、経験者はいきなり最適な線が得られるとは思っていない。まずは構図を検討する。また、油彩画やアクリル画であれば重ね塗りができるので、細部のことは後回しにして大雑把に色を載せていく。そしてキャンバスを逆さまにしたり、遠くから離れて見たりしながら、いろいろな角度でキャンバスを眺める。絵を描くことに集中し過ぎると、客観的にモノが見れなくなるので、時々こうやって頭をリセットしてたることで、自分の「思い込み」に気づけるようになるからだ。
こういう手法は、トップダウンプログラミングに見えるかも知れないが、そうではない。トップダウンプログラミングでは、上部構造をカッチリと決めるのだが、絵画の場合、上部構造すら流動的なのだ。むしろ、習作を描いたり、下絵を描いたりしながら、モチーフと対話し、キャンバスと対話し、絵の具と対話することを通じて、心の中に完成図を積み上げていくことそのものが大事なのだ。
初心者と経験者の違いは、初心者が対象を軽く一瞥しただけで「見たとおりに描けばいいんだな」と思うのに対し、経験者は「見る」という行為の難しさを知っている、ところにあると思う。絵を描くためには、対象をよく観察しなければならない。「ここは明るい。ここは暗い」では不十分である。明るさ、暗さには様々な「程度」があるし、それだけでなく「どのような印象を受ける明るさ、暗さなのか」というような感覚的な部分も忘れてはならない。観察から得たものが充実すればするほど、良い絵を描けるのである。
プログラムの設計で、もっとも大事なのは、第一印象を疑うことであろう。一見、かつて解決したものと似たような問題のように見えるかも知れない。しかし、本当にそうだろうか?
設計において試行錯誤することは、大いに報われる。プログラミングやデバッグが楽になるし、設計力の鍛錬にもなるからだ。あるプロジェクトで設計に起因するトラブルに出くわしたら、次のプロジェクトでは設計に充てる時間を大きく取ることだ。目新しいテクニックも使ってみるべきだ。そのテクニック自体はバズワードかも知れないが、そこでの体験が古くからのテクニックに新しい光をもたらすことがある。鍛錬なしに設計力は高まらない。プロスポーツの選手だって、いろいろなトレーニング方法を試す。またトレーニングは就業時間中に取り組んでよろしい。むしろコーチを求めたり、自らコーチになったりした方が良いのだ。
絵画のススメ More ログイン