エッセイ

プログラミング思考という能力について

これは、深夜のテンションで超雑文を生産する実験です。

同時に、一息にどれくらいの文章が書けるかの挑戦でもあります。

いざ。

プログラミング思考という能力

プログラミング思考(私命名)という能力がある。

その名の通り、プログラミングを通じて養われる思考能力であると同時に、物事をプログラミング的な観点から眺めて、それが果たしてプログラミングによって解決できるか、あるいは多少なりとも効率的にできるかどうか、ということを見抜くことができる能力である。

なかなか言葉で説明できるものでもないとは思うところだが、結局のところ、プログラミング思考を持つ者と持たない者との間で、マリアナ海溝よりも深い溝が形成されていると同時に、決して超えることのできない一線が存在していて、そのため、プログラミング思考のできないものは一生プログラミング思考ができる者に後れを取り続ける。

結局のところ、プログラミング思考ができると何がいいのかというと、目下取り組んでいるものが作業なのか仕事なのかの区別がつくようになる。

作業≠仕事

作業と仕事の違いが何なのかというと、思考を要するか否かという観点で区別がつき、思考を要さないということはすなわち、人間がやるような仕事ではないということでもある。

人間に真に求められているのは思考であり、判断であり、改善であり、単なる単純作業、手作業ではないということである。

例えば、エクセルで作られたフォームがいくつもあって、そこに回答された内容を一つのエクセルシートに再びまとめる必要があったとしよう。あなたはそれをどうやってまとめるだろうか?

シートを全部開いて一つずつコピペするだろうか? それともVBAを使って何とか楽にできないか考えるだろうか?

前者だというあなたは、少し見識を広めた方がいい。もちろん、前任者がそうやっていて、上司からもそういうふうにやるよう指示されているのであれば致し方ないが、何も考えずただ言われたままに進めているのなら、それは何の進歩も生まない、機械がやるべき作業なので、早々に捨てるべきである。

VBAを使って何とか楽にできないかを考えたあなたは、プログラミング思考の持ち主である。これからもその視点を忘れることなく励んでほしいし、より一層広い視点で物事を見てほしい。

プログラミング思考でできること→疑問を持てる

結局、プログラミング施行によって何ができるのかと言えば、
「この問題はプログラミングで解決できるのだろうか?」
という疑問を持つことができる、ということになる。

一度でもプログラミングを学んだことがあるものと、一度もプログラミングを学んだことがない者の間に生じる決定的な差は、この疑問を持つことができるという能力にある。

ソクラテス、だっただろうか。なぜを繰り返して真理に近づこうとした哲学者だか何だかがいたはずだが、疑問を持つということは、己を飛躍的に進歩させる秘訣になる。一方、疑問を持つことがなければ、そこから先にあるのはただ与えられるばかりの家畜の道である。すなわち、社畜まっしぐらである。

疑問を持つことができるということは、改善の糸口を探すことができるということになる。もし運よく糸口を見つけることができたなら、あとはそれを解決していけば一歩改善することができる。もし見つからなくとも、見つからなかったということ自体が一つの進歩になる。

疑問を持った時、初めて改善に向けて歩を進めることができる。これは、0と1ほどの違いがある。0は何倍しても0だが、1は何倍かすれば大きくすることができる。

プログラミング以外のプログラミング思考

ここではプログラミング思考ということでプログラミングにフォーカスした話をしたが、大枠でとらえればなにもプログラミングだけに限った話でもない。

要するに、新しいことに触れることは、新たな視点を獲得することにつながるということである。プログラミングを学んだのであれば、プログラミングにより解決できることとそうでないことを知ることになる。お金の勉強をするにしても、英語の勉強をするにしても、数学の勉強をするにしても、である。

勉強するということは、それによって武器を得て、今まで解決できなかった問題を解決するためにするものだと考えているかもしれないが、必ずしもそうではない。

勉強によって得られるのは、それによって何が解決できるのかという知見である。もちろん、知識が深まらなければ何が解決できるかもわからないということは往々にしてありうるが、たった少しの勉強でも、基礎的なところについては、解決可能性を見切る力を得ることができる。

日常のプログラミング思考

あなたが事務職であるならば、エクセルやワードやパワーポイントでいろいろな資料を作ることも少なくないと思う。面倒な仕事だって、一つや二つでは片付かないくらいにはたくさんあることと思う。

ちょっと立ち止まって考えてみてはいかがだろうか。

これは、プログラミングで解決できたりしないだろうか。
これは、もっと簡単にできる方法がないだろうか。

もし、それで解決できなかったとしても、何も問題はない。今までと同じようにやっていれば、少なくとも損することはないのだから。

もし解決できたのなら、これは素晴らしいことだ。それによって、プログラミングによって解決できることがあるのだという、確信を得ることができます。新たな眼を手に入れることができる。

さあ、今日から始めよう。きっとあなたにも、見えるものがあるはずだ。