はじめに
音楽プレーヤーのサイトを作っています。いろいろアイディアを出して組み込んででは、改良したりしています。そのようなときに、いつも行っていることは、手元のノートにアイディアをボールペンで書き出しています。非常に乱雑な書き方をしているため、後から見直してみると、何が書かれていたかがわかりません。手書き文字が殴り書きのためです。落ち着いてゆっくり一文字一文字書いてゆけばいいのですが、つい、走り書きをしてしまいます。その繰り返しで、ノートはすでに何十冊書いたか覚えていません。
しかし、すでに相当数を破棄しています。
アイディアのデッサン
思い浮かんだ機能(アイディア)をまず、ノートに書きだしてみます。たとえば、今回は、youtube検索で非常にレアな歌の動画を見つけたとします。普段の検索(先頭の100件程度)では出てこない、スクロールしてもっと深く探しているとき、たまたま、面白そうな歌の動画を見つけたとします。
その動画を自作のレアリストに追加しよとうと考えてみます。それをデッサンします。
デッサンといっても絵を描くわけではなく、プログラムの処理概要を模式図にしてノートに書きます。
ボールペンで手書きをします。ボックスに処理内容を書いたりする、昔はフローチャートをよく書いていました。そのようなものです。
今でもフローチャートを各ためのテンプレートはもっています。プラスチック製のものです。今では使わなくなった、パンチカードとか磁気テープ、紙テープの型もありますが、ボックスなどはまだ使えます。
しかし、このテンプレートは走り書きの時は不要です。手書きで手早く書いた方が早いため、昔は納品用に書いていた記憶があります。ドキュメントも納品物でした。
このデッサンはとても人には見せられるものではありません。何が書かれているのかは人にはわからないほどのひどいものです。本人は、その時に手を使って書いていることで、脳にその時のスペック(仕様)が記憶されるために必要な作業だからです。ただ単に、頭の中だけで仕様をイメージするだけでは強く記憶に残りません。手を使ってノートに書きだすことでより、強く脳に記憶されるものと思っています。そこが大事なことです。
手と脳は密接につながってるのですね。
脳から仕様を引き出してコーディング
このノートは、記録としての価値は全くありません。本人も後から見ても何を書いていたのかがわんーかりません。このノートは、書いているときだけに価値があります。先ほども書きましたが、手で書いているということが脳に仕様を記憶するために必要なだけです。そこから、具体的なコーディング作業を開始します。先ほど、ノートに書いた仕様が脳に残っていますので、その仕様を脳から引き出しながらコーディングします。
プログラマーは慣れてくると、これだけでプログラミングができます。以前のQiita記事でもかきましたが、電車に乗っているときも脳で仕様を考えています。さらに、プログラミングもデバッグも脳で行うことができます。極端なことを言えば、ワンステップ単位でプログラミングができます。
それを会社に行って実際にコーディングして動作確認するのです。これが非常にたのしい作業です。
リタイヤして、今でもコーディングしていますが、その時間が楽しく、一日が短いくらいです。
あとがき
プログラミングの楽しさの話になってしまいましたが、これからプログラマーを目指そうと思っている人は、言語仕様とかにがんじがらめになると嫌になるので、簡単な例から入り、それを頭の中で何回も咀嚼したり反芻したりすることが必要と思います。
昔は納品物のドキュメントを書くことが嫌でした。これは、プログラマーだったら誰もが経験していることだと思います。プログラマーは頭の中にドキュメントが入っています。
これも高齢者には脳の活性化になっているのかと思っています。