四六時中プログラミング

「しろくじちゅう、プログラミング」

ではなく、

「しろくじちゅープログラミング」

です。
どういうプログラミングかって?
まあ...四六時中、プログラミングするんです。
プログラミングって、
文字を入力する作業と考える作業の繰り返しです。

考えては文字を入力して、
文字を入力しては考える。

「考えるためにも文字を入力する」

ということもあるので、
なかなか二つは分離した作業とは言えない。
前もって考えてプログラミングの道のりを
練っておくのは大事ですが(それが詳細設計書!?)、
事前にいくら考えても書かないとわからないこと、
やっぱりあります。

とはいえ、
プログラミングの中をもっと細かくみていけば、
じっくり考える必要がある場面もあります。

ただ、やっぱりそのときもコード(プログラム)を
見ながら考える必要があったりして、
パソコンの前にじっくり座っていないといけない...!?

いや、必ずしもその必要はない。

考えることの問題領域のコード部分だけ、
一時的に頭の中のメモリ内にイメージ記憶して、
(一文字一文字覚えるのではなく、絵的にモデル的に)
考えることの焦点をしっかり絞っておけば、
パソコンから離れてもプログラミングはできます。

歩いてるときでも、電車の中でも、
ごはんを食べているときでも、
ディズニーシーでショー待ちしてるときでも。

考えることはどこでもできる。
コードを妄想することはどこでもできる。

ロジックをイメージにして組み立てる。
文字だけじゃない形のぼんやりした世界で、
壁を乗り越えるロジックを連想してみる。

実はその方が発想は生まれやすいかも。

パソコンの前に着いたら、一気に書き出す。
またパソコンの前から離れたらその繰り返し。
特に壁にあたったら、乗り越えるために離れる。
そんなうまくいかないでしょーって、
まあ、すっごいうまくいくかっていうと難しいけど、
何も考えないよりかは、時間を先に進めることはできる。

実際に、DBFluteの多くの機能が、
布団の中やハンガーステージの前で生まれました。
機能というか、その機能を実現するための、
内部的なロジックと壁を乗り越える解決方法が。
(記憶深いものではSchemaSyncCheckとか)

どういうときが妄想に向いているかは、
もちろん人によりけりですけどね。
jfluteは、布団の中で体を休めながら全神経を
ロジックの妄想に集中させると良い結果を生むようです。
また、芸術的なものを観賞するとかの楽しいことと、
難しいロジックに対する集中との切り替わりが起きると、
発想が生まれやすいようです。

まあ、電車の中で考えるとかは別に普通のことで、
すでに自然とやってる人はいるでしょうし、
悩み深いときは頭が勝手にやってることもあるでしょう。
大げさに書いてますが、割と普通のことではありますね。
要は、その考えるテーマが、プログラミングの中における
ロジックの思考に変わっただけ、というところです。

どういうメソッド、機能仕様、インターフェースだったら
便利だろうか?っていうのを考えるとかはわかりやすいかな。
もちろん、こういうのもプログラミングの一つ!
プログラミングには色々な要素があるから、
難しく考えず思いを巡らせられるものであればなんでも。

特に最近の業務プログラマーは忙しい。
こういった隙間時間を "実装" に割り当てられれば、
結果として "スピード" に反映されるかもしれませんね。

【追記】
で、壊れた感じに発展したのが...
 -> 余暇プログラミング | jfluteの日記