プログラマ夫と算数嫌いの妻が__プログラミングについて話してみたらのコピー

【第1話】そもそもプログラムってなんなのさ/連載『プログラマ夫と算数嫌いの妻が、プログラミングについて話してみたら』

はじめての方へ:本連載は、プログラミングについての知識がゼロで漠然と苦手意識しかない妻(筆者)が、プログラマ夫にインタビューしながら、なんとかプログラミングと少しでも仲良くなろうとがんばる雑談シリーズです。どうぞ肩の力を抜いて、夫婦の雑談をお楽しみください。

【序章】はこちら>

-----

私:えー。本日はお忙しいところお時間いただきありがとうございます。

夫:いえいえ。楽しみにしてました(笑)。

私:やめて、そのプレッシャー。これは私が一方的につくる企画じゃないからね。ここの、“ど文系で算数嫌い”のわたしみたいなひとと、プログラマな夫さんの脳みそにおける、埋まりがたき溝を、埋めるためのチャレンジ企画だから。両者の歩み寄りというか、両者の力が必要なわけなんですよ。そこんところひとつ、よろしくお願いします!

夫:はいはい。

【ぽこねん夫】:プログラマ。子ども向けの体験型アトラクションや、プロジェクションマッピングなど、参加型のデジタルコンテンツ開発を主に手がける。猫が好き。

■ 「プログラミング」って、そもそも何?

私:なんかさ、改まってしゃべろうとすると、かしこまっちゃってだめだね。まあ可能なかぎりゆるく、ゆるく聞いていきたいと思うので、何も知らない小学生にゼロから話すような気持ちで答えて。

夫:おーけー。

私:じゃあまずはさ、そもそも、プログラミングって何?ってところをやっぱり聞きたい。言葉としてはよく耳にするようになったけれど、なんとなく、黒い画面見てカタカタやってコード?書いてる?みたいなぼんやりとしたイメージしかなくて、実は何もわかってない。

夫:うーん。いろんな説明ができると思うけど、たとえば言葉の意味から入ってみるとさ、プログラムって、「pro(前もって)」「gram(書いたもの)」なわけですよ。これは俺の説明というより、『ピタゴラスイッチ』とかつくってる佐藤雅彦さんの受け売りなんだけど。

私:へぇ、なるほど。いきなり全然小学生向けの説明じゃないけど(笑)、数字より言語好きな文系の大人にはなかなかいいね。あ、「ダイヤグラム」とかにつく「グラム」も同じ“gram”なわけだ。

夫:そうそう。

私:お、Macの辞書でもちゃんと出てくるねえ。

出所:Mac OS 付属の辞書、『ウィズダム英和・和英辞典』より

私:プログラムは、「前もって、書かれたもの」か……。

夫:うん。だからさ、運動会とか発表会の式次第みたいなのも、「プログラム」って言うでしょ。そこで何が起きるかを、前もって、書いてあるものだから。

私:たしかに!その「プログラム」と「プログラミング」って、全然脳内でつながってなかった。

夫:いまの世の中ではプログラミングっていうとコンピューター上の話を指すことが多いからね。でもそのコンピューター上の「プログラム」も基本的には同じで、あるコンピューター上のソフトやアプリがどんなふうに動作するかを、「前もって書いた」ものなんですよ。で、そのプログラムを書く作業のことを、「プログラミング」っていう。

私:はー。なるほどね〜。


■ なんで最近、プログラミングが注目されているの?

私:ところで、なんで最近こんなにも「プログラミング」って注目されるようになったんだろう?

夫:やっぱり、2020年に小学校で必修化されるっていうのがあるからじゃない?

私:うん、それはそうなんだけどさ。なぜそもそも、小学校で必修化されるほど「重要なもの」として今、このタイミングで認識されてきたのかなっていう。

夫:うーん。背景でいえばやっぱり、Apple、Google、Facebookとか、シリコンバレーあたりの台頭じゃないですかね? 大きいのは。

私:ほう。いまいちつながらないから、もうちょっと詳しく。

夫:あのあたりの企業を動かしているのはエンジニアであって、そのエンジニアを輩出できないと、日本は経済的に太刀打ちできなくなるっていう危機感からじゃないかなあ。

私:そのためには、プログラミング……なの? なんかこう、いまいちクリアにつながってないんだよねえ、ど文系妻には。

夫:たとえば、日本でApple、Google、Facebookみたいな強いサービスなり企業なりを作ろうと思ったら、優秀なエンジニアが必要なんですよ。で、そのエンジニアが育つ環境がないと、日本からはそんな成功は生まれない。あ、これは文科省のねらいを想像して話してるっていうだけね。

私:うーん。強いサービスを生み出すための土壌づくりか。まあわからなくはないんだけどさ。なんていうか、プログラミング自体はもうずっと前からあったわけじゃん。

それでプログラマさんたちは、今までも専門業界では粛々とプログラミングをやってきていて、その結果いまの世の中のいろんな技術があるわけじゃないですか。でもなぜここにきて、改めて「全国民に必須で教えるほどの重要なものだ!」と認識されたのかなあと。

夫:ふむ。

私:だってたとえば企画力とか金融の知識とか、仕事で役立つ大切なスキルは他にもいろいろあるじゃん。でもそれはせいぜい中学・高校で「選択」科目レベルで、「小学校で必修」、とはならないじゃん? 

そこにきて、「読み書きそろばんプログラミング」みたいに、そういう位置づけでプログラミングが入るのってなぜなんだろう、ってのがど文系妻の素朴な疑問だったりするんです。

夫:うーん。

私:(いまいち、ピンと来てないんだろう……。これが文理の溝かもしれない。たぶん、彼にとっては当たり前の感覚が、わたしにはないのだ。わたしがいかに何もわかっていないかを、ちゃんと伝えないといけない!←謎の使命感)

なんていうか……、プログラミングって最近耳にするし、周りをみるとプログラミング教室とかもできている。だから「なんか熱いな」ってのは伝わってきてるんだけど、こう、プログラミングが重要なのはなぜか、って言われると、『わかってるひとはわかってる』みたいな感じでさ。わたしはわかってないと思うわけ。で、けっこう、そういうひとも多いと思うんだよ。

夫:あー、なるほどー。

私:簿記みたいに高校で選択、なら全然わかるんだけど。そうじゃなくて小学校で必修でしょ?っていう。

夫:ちょっと別の見方をすると、「重要である」っていう説明をしやすかった、っていうのもあるかもしれないね。さっき言っていたような別のスキル、たとえば企画力とか統計学とか簿記とかそういうものに比べると。

今の世の中、“プログラマ”や“エンジニア”で有名な人たちがいっぱいいて、その人達が世界を動かしている、みたいにも見えるから。

私:これからは技術だ!そのためにはプログラミングだ!みたいな。なるほどねえ。

【コラム】「なぜいま、プログラミングなの?」を調べてみたよ

●文部科学省のパンフレット『小学校プログラミング教育 必修化に向けて』より、以下引用。
(出所:https://miraino-manabi.jp/assets/data/info/miraino-manabi_leaflet_2018.pdf )

“我が国の競争力を左右するのは何か。それは「IT力」です。ヨーロッパでは、「IT力」が、若者が労働市場に入るために必要不可欠な要素であると認識されています。現に、90% の職業が、少なくとも基礎的な IT スキルを必要としていると言われており、多くの国や地域が学校教育のカリキュラムの一環としてプログラミングを導入しています。

一方で日本では、2020 年までに 37 万人もの IT 人材が不足すると言われています。今後、国際社会において「IT 力」をめぐる競争が激化することが予測され、子供の頃から「IT 力」を育成して裾野を広げておかなければ勝ち抜くことはできません。そのような思いから、小学校におけるプログラミング教育の必修化は実現されたのです。”

-----
●妻のつぶやき:
夫と話したときはこのパンフレットを読む前だったけれど、公式パンフレットを読んでみて、「競争力を高めるための土壌づくり」って視点はあながちはずれちゃいなかったんだなあと思う。その重要度の認識が、ど文系妻には薄かった、って感じかしら。
●夫のつぶやき:
そんなにずれたこと言ってなかったようでホッとしてます。


■ プログラミング教育の必修化って、実際どんな感じ?

私:でさ、2020年に小学校から必修化されるじゃん。

夫:うん。

私:それって実際、どんなことやるのかね? 実はちょっと気になって調べてたら、こんな記事見つけてさ。

「プログラミング教育」必修化の3大勘違い! 誰もが思い込みがちな間違いとは?(AERA dot.)
出所:https://dot.asahi.com/dot/2017121300044.html

私:わたし、「プログラミング」っていう教科ができるんだと思っていたんだけど、これを読むとどうもそうじゃないみたいね。

“プログラミング教育は、算数や理科、総合的な学習の時間など、すでにある教科の中で実践されることになっています。ですから、具体的にどの学年のどの教科・単元で、どれくらいの時間数でプログラミングを扱うかは、各学校が判断します。”
“小学校段階におけるプログラミング教育の目的は、プログラミング言語の使い方を覚えることではありません。文部科学省は、プログラミング教育を通じて育成すべき資質・能力を“プログラミング的思考”という言葉で表現しています。「プログラミング的思考」とは、物事には手順があり、手順を踏むと、物事をうまく解決できるといった、論理的に考えていく力のこと。”

私:なんか、算数とか理科とか、いまある教科のなかでプログラミングを扱うみたい。それで、プログラミング言語云々ってよりは「プログラミング的思考」に重きがおかれてる印象を受けたよ。

夫:なるほど。それはイメージしやすいね。

私:うん、わたしはまったくイメージできないんですがね?

夫:たとえば算数で、「虫食い算」ってあるじゃん?

私:(出たよ、算数……。)あーあの、数字が□とかで一部抜けてる計算?

夫:うん。その虫食い算を解くときって、何もわからないときはさ、0から9まで数字を当てはめていって、ってやるじゃん。あれ、プログラミング的手法であると思うんだよね。

私:1個ずつ、当てはめるのが?

夫:うん。できるだけ、何も考えずに、単純な考え方のみで解こうとするとそういう解き方になるでしょ?

私:あーなんか、人間的思考を用いずに、ってこと?

夫:そうそうそうそう。そういう意味で、あれはプログラミング的、機械的思考、だと思う。実際、コンピューター上でその問題の解答を出力するプログラムを書けと言われたら、まずやるアプローチはそれだと思う。

私:1つずつ数値を順番にあてはめていく、ってアプローチ?

夫:そう。で、それをやっていくうちに、たぶん、「一番上の桁にはゼロはこないよね」とか、「ここ、上の桁の計算が一個合わないから、繰り下がりがあるよね」とかっていうことを学んでいくんだと思うんだよね。

私:ほう。徐々に、虫食い算を解くのに適したかたちに改善されてゆくのかな。

夫:そうそう。そのプログラムの実行時間を、どうやったら短くして終わらせられるか、を考えていくのを「プログラムの最適化」って呼ぶんだけど。どんどん修正して、特定の種類の問題を解くのに強いプログラムに、更新していく。

私:うん。

夫:そんなふうに、ただ虫食い算を解くのにも、たとえば、「0から9まで当てはめて考えてみよう」「じゃあ今の手順のなかで、絶対ありえないのはどうやって省いていける?」みたいな、そういう段階を踏んで、プログラムを更新していくように、問題の解き方を学んでいく、っていうのは、プログラミング的思考って呼べるんじゃない?

私:なるほどねー。でもさあ、小学校の算数って今までもそういう感じじゃなかったっけ?

夫:うん。そうね、そこをたとえばコラム的に、コンピュータープログラミングでは、っていうのが教科書に入るとか、そういう形になる……のかなあ?

私:わかんないけど、ひとつの可能性としてね。ちょっと後で調べてみよう。

コラム:「プログラミング教育ってどんなことやるの?」を調べてみたよ

●文部科学省のパンフレット『小学校プログラミング教育 必修化に向けて』より。
(出所:https://miraino-manabi.jp/assets/data/info/miraino-manabi_leaflet_2018.pdf )

-----
● 妻のつぶやき:
上の図を見るかぎり、たしかに、普段夫のPCでちらっと見えるような「黒い画面に謎の英数字が散りばめられた」ようなものは登場しないみたいね。図の例のように、パターンをつくるとか、正しい動作を導くためにはどういう指示を出せばいいかを考えるのが「プログラミング的思考」なのかしら。プログラミング的思考、についてはこれからもっと聞いてみよう。


■ プログラミングが必修化されたら、社会はどう変わる?

私:あのさ。これは雑談というか、推測でいいんだけど、実際、プログラミングが義務教育で必修化されていったら、社会はどう変わっていくと思う? 何も変わらない、ってのもひとつの解だけど。

夫:そうだなあ。どうなるんだろうね。

私:まあ何をどのくらい学ぶのかによるんだろうけど。いわゆる「プログラミング的思考」っていうのがみんなに身についたとしたら、なにか変わるのかな?って。

夫:なんだろう。無駄をはぶくっていうことが自然に行われるようになる?……といいなあ(笑)。

私:ふむ。いまでも企業では、“効率化”とか“合理化”とかを目指してやっているようなところが多い社会だと思うんだけど、それとはどうちがうんだろう?「無駄をはぶく」っていう表現にはどんなことが含まれている?

夫:あー、えっと。言いかえると、「『何が無駄で、どう効率化するとよいのか』が、自然に共有される社会」ってことかな。

私:うーん? よくわかんない。

夫:想像で話すけど、今までは、「これは無駄だと思う、こう効率化すればよい」っていうのは誰かの主観であって、なぜそうなのかっていうのが共有されないまま、いろんなひとがそれぞれの立場から「ここは自分から見ると重要だ」っていう話をしている状態。

それが、プログラミング的思考がベースにあると、「なぜそれが無駄なのか」「なぜそれが必要なのか」「なぜこう変えるとよいのか」みたいな話がしやすくなるんじゃないかな。

私:へえ。なんか無駄に人間関係で消耗することとか、イライラとか減るのかもしれないね。プログラミング的思考……、なんかちょっと知りたくなってきたよ(笑)。

(つづく)

次回予告:【2】お笑いと育児とプログラミング 
・「プログラミング的思考」ってなんなのさ
・「牛乳を買ってきて。卵があったら、6つお願いします」
・プログラマは、怒りにくい?
・育児における「パパメンタル」の強さもプログラミングのおかげ?
・ラーメンズのあのネタは、プログラミングのデバッグ作業?—お笑いとプログラミング
※更新日は来週あたりを予定しています(不定期更新)。

-----
“Please pay as you wish !”
〜ぽこねんインタビュー企画の背中を押す応援、お待ちしています!

なにかのご縁でこのnoteを見つけてくださり、しかもこんなすみずみまでお読みいただきありがとうございます。この連載では、めずらしく積極的にサポートをおねがいしています。その意気込みは【序章】にて!

もし、読んでよかったな、おもしろいじゃんと思えたら、シェアやサポートなどで応援いただけるとたいへんうれしいです。

もしサポートが貯まったら、それを福岡からの交通費にしてもっといろいろな方にお話を伺い、それをぽこねん視点でかみくだいた記事にしてみたいです。常にびびりながら歩いている小心ぽこねんの背中をやさしく押してくださる方、お待ちしております。

※本シリーズはこちらのマガジンにまとめています↓


自作の本づくりなど、これからの創作活動の資金にさせていただきます。ありがとうございます。