将来のリーダーは必修! 子どもに伝えたいプログラミングの本質

子どもにパソコンを教えるお父さん

「これからの時代、日本でもプログラミングに関する教育が大切」とよく言われますが、子どもにパソコンを与えても自然に理解してくれるわけではありません。どうやってその本質を教えればいいのでしょうか? インドのスーパーインテリであるジョシさんとの会話を通して、子どもがパソコンとプログラミングの概念を大まかに理解できるポイントをお伝えします。

そもそもプログラミングとは何か?

ジョシ 世の中にはプログラミングという言葉が溢れていますが、そもそもプログラミングってなんだと思いますか?

え、いきなりですか。う~ん、「コンピュータになにかやるべき命令を組み込むこと」でしょうか

ジョシ かなり的を射ていますよ。コンピュータのプログラミングとは、「コンピュータプログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である」です。具体的に言うと、こうなるように仕組みを作ることです。

Aボタンをクリックした
  ↓
赤い花が画面に出た
  ↓
Bボタンをクリックした
  ↓
青い花が画面に出た
  ↓
それ以外のボタンを押した
  ↓
画面に変化はあらわれない

コンピュータに「AということをしたらXという反応をしなさいよ。BということをしたらYという反応をしなさいよ」と、人間が意図した処理を行うようにコンピュータに指示を出して、そうなるような仕組みを作ること、といえます。

ということは、プログラミングって、コンピュータを自分が意図するように動かすための仕組み作りってことになりますかね?

ジョシ 実は、世の中にはコンピュータの世界以外にもプログラミングは存在しているのですよ。「プログラミング」という単語だけ聞くととても難しい「IT用語」のようですが、意外と日常生活に「プログラミング」は存在しています。

どういうことですか?

ジョシ 一般的にはプログラミングというとコンピュータに人間が意図することをさせるように仕組みを作ることだと思われがちですが、プログラミングは、日常に溢れているのです。例えば、音楽会や運動会、結婚式などにも「プログラミング」はあります。これらのイベントはどんなふうに進行しますか?

ええと、あらかじめ決まっている順番に進みます

ジョシ そうです。これらのイベントは、決まった順番に、物事が進行します。やるべきことは前もって決められて、紙などに示されていて、参加者がそれを実行するから、会が無事に終了します。会などで渡されたパンフレットには「プログラム」と書いてありませんでしたか?

そうだ。たしかに運動会ではプログラムって書いてあったけど、結婚式では……え? 結婚式もプログラミングの一種なのですか?

ジョシ そうです。結婚式も広い意味では「プログラミング」されています。
ちょっとまとめてみましょう。

招待客は指定された会場に行く
  ↓
受付で記帳する
  ↓
ご祝儀を渡す
  ↓
受付係はご祝儀を受け取り、席と式次第が書かれたパンフレットを渡す
  ↓
招待客は指定された席に座って披露宴が始まるのを待つ
  ↓
定刻になったら、司会者が披露宴を式次第にそって始める
  ↓
(中略)
  ↓
披露宴が終了する

ジョシ どうでしょう。これらはすべてが、事前に「これこれをしなさい」と仕組まれていますよね。そして参加者はそれに従います。そういう意味では、コレも立派な「プログラミング」です。

ある一定のルールにそって物事が進行するように仕組むことを、プログラミングっていうんですね。今までプログラムとプログラミングの違いがわからなかったけれども、〝プログラム〟を作る、つまり「~ing」することがプログラミングってことなんだ

ジョシ その通りです。そして、そう考えると、普段の生活もプログラミングで溢れています。

あなたも無意識にプログラミングをしていた!

生活の中のプログラミング? なんか指示されているようで嫌だなあ。動かされているってことでしょ。でも、それは自分で仕組んでいるものもあるんですよね

ジョシ その通りです。やらされているんじゃなくて、あなたが「仕組みを作っているもの=プログラミングしているもの」もあります。おでんは好きですか?

ええ、タマゴと牛すじが好きです。って、なんでおでん?

ジョシ では、コンビニにおでんを買いに行きましょう。コンビニに行って、あなたが目的のおでんを買って食べられたとします。これはなぜですか?

お店に入って、おでんの前に行って、店員に注文して、お金を出して? ええ? これはプログラミングじゃないでしょう? 僕は自分の意思で買いに行ったのですから、動かされているわけじゃない

ジョシ では、店員は?

あ、そっか! マニュアルにそって対応しているんだ! そうするように、店員はプログラミングされているんだ!

ジョシ その通りです。簡単に書くとこういうプログラミングになります。

お客様が入店したら、店員はお客様に向かって「いらっしゃいませ」と挨拶する

  ↓

おでんを注文したお客様に向かって、「どれになさいますか?」と注文を聞いて、お客様が希望されたおでんダネを希望された個数だけ容器に入れる

  ↓

これを繰り返し、お客様が欲しいおでんダネをすべて容器に入れる

  ↓

合計金額を計算し、支払金額を告げる

  ↓

お客様からお金を受け取ったら、確認して、おつりの必要があれば渡し、レシートと一緒に商品を渡す

ジョシ お客さんが欲しいおでんを問題なく買えるのは、コンビニの店員がそう対応するようにプログラミングされていたからです。店員が、「事前にプログラミングされた手順を実行した」から、お客さんは希望するおでんを買うことができたのです。

あ、たしかにそうだ。店員はAという場面ではBという対応をするように決められている。CがリクエストされたらDと。それって、確かにプログラミングだ。そういう目で見ると、世の中は本当にプログラミングで溢れているなあ

ジョシ その通りです。だいぶ理解できてきましたね。ここまで勉強してきて、プログラミングは自分と無関係ではなく、みなさんが住んでいる世界にフツーに存在しているということを、わかっていただけたことと思います。

「コンピュータや世の中に、意図することをちゃんと実行するように仕組むこと=プログラミング」なのです。

この、プログラミングされた〝機械〟は、コンピュータやスマホ、タブレットやゲーム機だけではありません。例えば、あなたの好みの炊き方で食べたい時間にご飯を炊いてくれる炊飯器も、お金を入れたら欲しい飲み物を出してくれる自販機も、道路にある信号機すらも、プログラミングされています。

たしかにそうですね。なんだか世の中を見る目が変わってきそうです。目的にたどり着くための行程を考えてコンピュータに仕組むことがプログラミングなんだ

パソコンに強くなるだけじゃない!プログラミングを知るメリット

ジョシ 今、日本では大勢の大人がプログラミングスクールに通っていて、そこでは、もっと別なことが期待されているようなのですが、なんだかわかりますか?

別なことって、プログラミングスクールに通うのは、プログラミングを理解したり、その技術を習得するためでしょう? それ以外に何を求めるの?

ジョシ その疑問はもっともです。リサーチによると、通う理由として、IT業界への就職や転職以外に、

  • 物事を論理的に考えられるようになる
  • 情報を短時間で処理し、最大限に活用できるようになる
  • 最小・最短の作業で仕事をこなし、効率アップを図れる
  • 新しいものを生み出す想像力や創造力を培うことができる
  • リーダーとしての資質を育むことができる

などが挙げられています。

プログラミングを理解することがこれらに結びつくのは、ちょっととびすぎというか無理がない?

ジョシ 本当にそう思いますか? では、さっきのおでんのプログラミングにちょっと戻ってみましょう。お客様が入店したら、店員はお客様に向かってニッコリ笑って「いらっしゃいませ」と挨拶する。この最初のプログラミングがもしも、

お客様が入店したら挨拶する

というプログラミングだったらどうでしょうか? はたして店員はどんな対応をするでしょうか?

お客様に「いらっしゃいませ」って言うのは当たり前でしょ

ジョシ はたしてそうでしょうか? もしも店員が愛想が悪いタイプだったら? もしも店員が内気だったら? もしも店員が「いらっしゃいませ」という言葉を知らずに「ちわー」とか「どうも~」などと言ってしまったら? お店に入って店員の態度にイラッとしたことはありませんか?

あるある! そうか、誰でも正しく理解できるように、そして実行できるように、細かく正確に指示を出さなければならないんだ

ジョシ その通りです。人間ならまだ「想像力」がありますから、もしも細かく書いてなくてもある程度は自分で考えて行動できますし、人によっては臨機応変に対応もできるでしょう。でも、コンピュータにはそれはできません。なので、細かく指示を出さなければならないのです。となると?

f:id:SOmaster:20201228162234j:plain

だんだんわかってきたぞ。物事を進める時に、あらゆることを想定しておかなければ〝仕組み〟はちゃんと動かないから〝仕組み〟にならない。つまり、人もコンピュータも動かない

ジョシ ということは、そのあらゆる起こるべきことを考えなければいけないし、想定外なんて言い訳できないから、想像力はたくましくなる。どんなことが起きるか予想できるようになるから、物事を論理的に進められたり、考えられたりできるようになる。

すると、一つの仕事のゴールのために何が必要か、どの順番ですることが最も効率がいいかがわかるから、ムダが省けるようになる! 一つの仕事を遂行するのに何をどの順番ですればいいか徹底的に考えなければ、意図したことがコンピュータで実行されないわけだ

ジョシ プログラミングを理解すれば、その結果として、仕事の効率化やスピードアップが図れるのはわかりますね。インドの小学校は、このこともプログラミングが与える成果や影響ときちんと認識して、授業を進めています。では、創造力やリーダーとしての資質は?

創造力は、プログラミングする時にあらゆるシチュエーションを想定することは、いろんな面から物事を見ることと関連しそうですね。

ジョシ その通りです。

仕組んでも動かなければ「なぜ?」と追究し、原因を探って対応しなければならない。それらの作業を繰り返すことで考える力も養えられそうだ……。でも、プログラミングと“リーダーの資質”は、どう結びつくんですか?

ジョシ では、ここでクイズです。IT業界のリーダーたちに共通しているものはなんでしょうか?

世界的企業のリーダーにプログラマー出身が増えている理由

世界的なIT業界のリーダーというと、ラリー・ペイジとか、マーク・ザッカーバーグとかですよね……。そうか! 彼らはみんなプログラマー出身だ!

ジョシ その通りです。グーグルのラリー・ペイジ、フェイスブックのマーク・ザッカーバーグ、アマゾンのジェフ・ベゾスなどの、IT業界を席巻し常に世界に新鮮な驚きをもたらしている彼らは、全員プログラマー出身です。

なるほど、物事を論理的・効率的に進められるようになり、創造力も鍛えられると、仕事を全体として捉えることができ、その積み重ねでリーダーとしての資質を磨くことができる。なんだかプログラミングを学ぶと何でもできそうだけど、そんなうまい話があるの?

ジョシ たしかに、プログラミングをマスターしたから明日からあなたも経営者、とはいかないでしょうね(笑)。しかし、それらが期待されているから、可能性があると感じているから、そして実際にプログラマー出身の人々が世の中を動かしているという現実があるから、大勢の人がスクールに通っているし、政府も小学校の授業にプログラミングを取り入れることを発表したのだと思いますよ。

なるほど、そうかあ。深いなあ

ジョシ それにプログラミングができるようになれば、あなたがいなくても仕事がまわるようになります。

どういうこと?

ジョシ もうわかっているはずです。先ほどの「おでん」の例を思い出してください。

おでんですか? 店員がプログラミングされてたって例えでしたよね。だからどの店に行っても欲しいおでんが買える。あ、それって……

ジョシ はい、答えがわかったようですね。

誰でも同じことができるようにプログラミングしてしまえば、誰がやっても同じ結果が得られる。つまり、生産性のムラがなくなって、結果として売り上げが増えますね。リーダーは仕事が確実に遂行できることを確認できたら、現場にいなくていいから、他の仕事ができる!

ジョシ その通りです。プログラミングを正しく仕組むことができたら、リーダーは自分が現場にいなくても仕事の効率化や生産性をアップさせることができると同時に、余った時間で次の仕事に取り組めるのです。次の段階に進めるのです。

そうか、だからプログラミングがリーダー養成と関係あるって言われるんだ。たしかに物事を俯瞰的に見られることはリーダーには必須要件だからね。でも、そうなると、単純作業する人はつまんなくならない? 個性はどうなるの?

ジョシ そこが人間の面白いところですね。コンビニではどこも同じ対応でしょうか?

たしかに店員によって微妙に違っているな。笑顔でおでんを渡してくれる人もいれば、袋を持ちやすいように工夫してくれる人もいるし、同じことをされてもなんか気分悪くなる人もいる

ジョシ そういうことです(笑)。

でも、そこまでプログラミングを学んでも、本当に仕事につながるんですかね? リーダーになれる人なんてほんの一握りでしょ?

ジョシ あるデータによると、日本のIT人材は2030年には約79万人不足すると予測され、今後ますます拡大すると考えられています。

う~ん、すごい数字ですね。プログラミングって未来があるんだなあ

 

PROFILE
ジョシ・アシシュ

1989年生まれ。インド・デリー大学SOL卒業。文学士。日本語能力試験1級。一橋大学大学院に留学し、MBAを取得。現在、日本の某一流メーカーの国際部門にて勤務


織田直幸
1964年生まれ。中央大学文学部哲学科中退。編集プロダクション、出版社などを経て、現在、まるブックス株式会社所属