プログラミング思考はプログラムを書く能力ではない
社会的な問題を解決する基礎となるコンピュータ思考
私が重視しているプログラミング思考とは、純粋なプログラミングを書くための能力や思考ではありません。これは「デザイン思考」や「アート思考」と言い換えることができます。
プログラマーがプログラムデザインをする際に重要なのは、どれだけ多くのツールを持っているかではありません。これらのツールを利用して、物事を見る方法や複雑な問題を分析する方法を訓練することです。それが複数の人と共同で問題を解決するための基礎となります。
これがプログラミング思考であり、「デザイン思考」「アート思考」です。このアプローチを習得する人が増えることで、気候変動など、より大規模な共通の問題をより多くの人の力で解決できるようになります。大きな数字や統計データを見たり、地球規模的な問題に直面すると、「人間はなんと小さな存在か」と感じ、「こんな大問題に対処するのは不可能だ」と感じることがありますが、それはプログラミング思考ができていないからなのです。
一人で解決しようとするのではなく、「共同で考えればいい」と考えれば、対処しなければいけない問題が大きすぎるとか、手に負えないとはなりません。そのような複雑かつ大規模な問題を把握する能力を養うことは、社会に対する大きな貢献を行うことになると私は考えています。
このプログラミング思考、デザイン思考、アート思考は、広い意味で「コンピュータ思考」と言っていいでしょう。これらは一人ひとりにどのようにアプローチしていくかを考え、その人の視点でどう世界を見ていくかを考えるときの土台となります。この土台があって初めて、「共通の価値観にいかに集約していくことができるか」を考えることができるようになるのです。
先にも言及したように、プログラミング思考とは、解決すべき具体的な問題があるときに、まず問題を小さなステップに分解し、それぞれを既存のプログラムや機器を用いて解決できるようにするものです。これは問題の中にある共通部分を見つけ出す方法でもあるので、ある場所で問題を解決できた場合、別の場所でも応用ができます。
したがって、コンピュータ思考とは、問題を再び作り直すことにもつながるのです。「他の人と一緒に様々なプログラムを用いて協力し合って問題を解決する」というのは、一種の解体と再構築の方法と言えるでしょう。
コンピュータ思考の基礎ができていれば、次は自分が関心を持つ分野を学んでいけばいいでしょう。関心や興味がある分野について専門的に学び、知識や技術を身につけていくことです。繰り返しになりますが、そのための基本になるのが、プログラミング思考であり、デザイン思考であり、アート思考なのです。