さて、プログラミングというとこんな画面を想像している方が多いかと思うのですが、これは実際にコードを書く部分の話でしかなく、本質はもっと別のところにあるんだよという話をしたいと思います。
例として、毎朝着る服を選ぶシーンを考えます。僕は基本的に着る服のパターンが6つしかなく、それを順番に着ているだけです。
これをコードにするとこんな感じ。今日の日付を6で割った余りを計算します。
case day_number % 6
when 0 then
kusachi.wear(白いシャツ,Gパン)
when 1 then
kusachi.wear(青いシャツ,Gパン)
<<以下略>>
このようになります。「毎週月曜日に同じ服」などにならないように7ではないのがポイントでしょう。
次に、同じ月内で同じ服は着ない!というようなオシャレさんの服を考えてみましょう。
もうこれどうやってコード化すんねんって感じです。
最後に、一番極端な例として、ジョブスが着る服を選ぶところをコード化してみましょう
jobs.wear(タートルネック,Gパン)
これで終わりですね。ジョブスは毎日同じ服しか着ないので、1行で終わります笑
ここまで見てきてわかるように、大切なのは、日々の行動を標準化していくことです。ジョブスは極端にしても、ルールを決めて迷う時間をはぶくこと、6着をしっかり選び抜いてクオリティを上げることが、いわゆるプログラミングの本質だったりします。
ジョブスは何年にもわたって同じ服を着ているので、一見すると服には無頓着そうですが、あれはジョブス専用にこだわりぬいて作られたスペシャルオーダーメイドで、しかも100着単位で注文されているそうです。毎日着る服を変えている人に、このこだわりが出せるでしょうか?
一般的に使われているプログラミングは、プログラマという職業の印象を強く受け、システムを使って「自動化」する部分だけを指してしまっています。しかしもっと広くプログラミングをとらえると、当日の気分や天気、TPOに合わせて着る服を選ぶような複雑なフローを、シンプルな形に再構築し、そのクオリティを上げていく、その過程のことを指します。標準化、手順化、フォーマット化といった言葉の方が近いかもしれません。
自動化は、この標準化が終わったフローに最後の仕上げをするにすぎません。最初の黒画面に抵抗のある人も、ぜひ自分のライフスタイルをプログラミングしてみてはいかがでしょうか。