プログラミング的思考は確かに必須スキルになると思う
私にとって非常にタイムリーなnoteだったので、シェアしたいと思います。プログラミング的思考についての話題です。
個人的には初めて聞いた「プログラミング的思考」なのですが、村上さんの言葉を借りると、ノーコード・ローコード開発などの新しいIT技術を習得する上で重要なのが「プログラミング的思考」です。
プログラミングそのものではなくて、プログラミングを考える上で必要となる基礎的な考え方というのがプログラミング的思考になります。
「小学校プログラミング教育のねらい」にこのプログラミング的思考を育むことが一番最初に記載されています。
自分が意図する一連の活動を実現するために、
どのような動きの組み合わせが必要であり、
一つ一つの動きに対応した記号を、
どのように組み合わせたらいいのか、
記号の組み合わせをどのように改善していけば、
より意図した活動に近づくのか、といったことを論理的に考えていく力
これは、新学習指導要領のポイント(情報活用能力の育成・ICT活用)の5ページ目に記載がありますので、ご興味がある方はご覧になって下さい。
通常このプログラミング思考は、コンピュータに指示を出して正確に作動させるために、その行動をしっかりと記述することを指します。
ただ、ちょっと視点をかえると誰かに仕事の指示を出すとき、お使いを頼むときなど誰かに何かをして貰いたい場合は、ほぼこのプログラミング的思考が必要なると思います。
例えば、コロナ感染者数の情報を集めて欲しい場合だと、こんな指定が少なくとも必要だと思います。
期間:何年何月何日~何年何月何日の情報?
場所:どの国の情報?東京都のみ、それとも全世界?
例えば、肉じゃがに使う材料を買ってきてほしい場合は。
食材:じゃがいも、ニンジン、玉ねぎ、しらたき、牛肉
調味料:砂糖、しょうゆ、酒、みりん、だし
数量:何個?何袋?何グラム?
品質:国内産?オーガニック?A5クラスのお肉?
予算:全部で1000円?それともいくらでも良い?
といった具合に、色々と決めて置かなくてはいけないことが色々あるのが理解できると思います。仕事上のスキルであるものの、日常においても非常に役立つ考え方だと私は考えています。
そもそも、他人にしっかりと説明できるという点で、色々な人が身に着けておくとコミュニケーションそのものが円滑に進むと思います。
どんなモノが必要で、どの程度必要で、どう組み合わせるかをしっかりと言葉(言語化)できることが必要ですし、何よりもそのプロセスを一旦頭の中で作りだす想像力も必要ですし、うまくいかなかったら改善することも必要です。
私は、自社保有データを使ったデータコンサルを仕事としているのですが、お客様と議論をして、プロジェクトの内容を詰めて、提案し、受注する流れの中で、提案時には大まかな方法論を確定する必要があり、その際にこのプログラミング的思考が役に立っていると思っています。
プロジェクトを進めるやり方・方法論をしっかりと理解していないと、提案書を書けませんし、それを実際手を動かす人にどのデータを使って、どう分析するのかを指示することができません。
となると、話は元に戻るのですが、プログラミング思考というのは実際にどうやって実施するのかを現場レベルの言葉に落し込むことと同義なのだと思います。
私自身、このプログラミング思考は日常業務上必須なので既にクリアしていると思っているのですが、では実際にプログラミングをしてみろと言われたらできません。なので、最近勉強を始めています。社内にデータサイエンスチームが有りますが、より良い議論が出来るようにしておくことが第一義なので最終的には彼らに仕事を頼むことになるだろうとは思うのですが、細かいことまで知っておくことは、お客様とお話するときに必ず役立つので、全く無駄にならない勉強だと感じています。
このプログラミング思考は今後大切になる考え方で、持論でもあるサイエンスリテラシーに匹敵するスキルになるだろうと思っています。