WirelessWire News The Technology and Ecosystem of the IoT.

by Category

探偵 子供 PC イメージ

プログラミングの魅力とは「推理する楽しみ」である

2019.04.01

Updated by Ryo Shimizu on April 1, 2019, 08:04 am UTC

実のところ、筆者は「プログラミング教育」という言葉がどうもしっくりこない。「プログラミングを教えるべきだ」「プログラミングを学ぶべきだ」という言葉はわかる。しかしそれが「教育」という単語と直接結びつけてしまうと、どうもプログラミングを押し付けているような感じがして退屈なニュアンスになってしまうのだ。

実際のところ、プログラミングというのは楽しいものである。あらゆる学問は楽しいものだが、プログラミングが格別に楽しいのは、実はプログラミングの大部分は、小説のジャンルで言えば「推理モノ」であるからだ。

推理小説といえば不動の人気を誇る文学ジャンルである。もちろんこれをベースとした漫画作品、映像作品は枚挙に暇がない。みんなが大好きなコナンくんも、金田一少年も、サイコメトラーEIJIも、みんな推理モノである。だから、推理モノが受け入れられる人なら、たぶんプログラミングを楽しむことができる。

筆者もご多分に漏れず子供の頃は探偵に憧れた。大人になってからそれがそんなに愉快な仕事ではないことを知ると、他の仕事を探すことにした。そしてたどり着いたのが、プログラマーという仕事である。

プログラミングに必要なのは推理力だ。プログラマーは一人前になると、誰もが日々シャーロック・ホームズや金田一耕助のような推理力を身につけているのである。プログラマーとしての優劣は、この推理力の優劣と言っても良い。ほら、少し気になってきたでしょう。

現代のコンピュータは非常に複雑な仕組みで動いている。ごく簡単に思えることですら、その構造を解き明かすのは骨が折れる。プログラマーは頭の中で複雑な仕組みがどのように動いているか推理し、最小限の手間で観察し、解決する。

これはプログラミング以前の部分にも発揮される。たとえば、自宅のパソコンで突如インターネットが繋がらなくなった。たまにありそうなトラブルである。

回線が悪いのか、それともそれを接続するルーターが故障しているのか、ケーブルが外れているのか。システムを理解していれば原因の切り分けができる。壁まではネットが来ているのか、それすら弾かれているのか、簡単なコマンドを打って確認する。

ルーターを交換するか、プロバイダに電話するかすれば、事件解決。
プログラミングそのものはしていないが、こういう経験がある人はプログラマーに向いている。

謎が解けた時の快感は、なまじの推理小説の比ではない。
プログラミングをすると謎はあちこちに転がっている。そもそもプログラミングの入門書に書いてあること自体が謎だ。

実際のところ、プログラミングを人に教えるというのはとても難しい。本なんかで教えるというのはもっと絶望的に難しい。プログラミングの入門書を何冊か書いた筆者でも、クドくなってしまうので敢えて省略した説明や、省略のために意図的に不正確な説明を書かざるを得ないことが多い。これは入門書に隠された謎である。

謎を解くには、実際にプログラミングをしてみるのが一番だ。そうすると、まあ思い通りには動かない。思い通りに動かない、というのも、ひとつの謎である。「どうして思ったとおりに動かないのか」を突き止めていくと、次第にプログラミングの謎を解いていくことになる。これは面白い。

逆にあまりにもプログラミングが上達すると、謎が全くなくなってしまったように思える瞬間が来ることがある。これは嬉しいようで悲しい結末だ。

全てのものの動作原理を想像でき、全ての現象の大雑把なシミュレーションができるようになってしまうと、世の中がとても退屈なものに思えてくる。

しかしまさしくその時こそ、自らの手で新しい世界を切り開く絶好のタイミングなのだ。
そしてそのような高みに達した者はハッカー(切り拓く者)と呼ばれる。ハッカーは新たな謎を作り出し、世界中のプログラマーたちがその謎に挑戦する。

そのようにしてプログラマーの世界には数々の謎が作られ、それを解く楽しみと、同時に高みに上り詰め、新たな謎を作り出す楽しみがある。

これがプログラミングを一度覚えてしまうとやめられなくなってしまう根本的な理由だ。

そして仮に人工知能がほとんどの作業を代替してしまっても、プログラミングの本質的な部分は人間の手に残るだろうと筆者が考える理由でもある。人工知能は複雑な謎を解くことができるかもしれないが、それを楽しむことはできない。そして謎を見つけ出すこともできないのだ。

「なぜだろう?」「不思議だなあ」という感情は、未だ人間しか持っていない重要な感覚であり、これを人工知能が獲得するにはまだまだ時間がかかるだろう。仮に似たものができたとしても、それは不自然なものになる。なぜならば人工知能はまだ人間のように生まれ、育ち、経験するということができないからだ。

プログラミング教育という言葉には未だに違和感を覚えるが、人工知能が当たり前のように人々の生活に入り込む世界を想像すると、全ての人がプログラミングを楽しめる世の中になったほうがハッピーではないだろうか。

筆者が人工知能に惹きつけられるのも、そこに巨大な謎があるからだ。それは「知性とはなにか」という深淵な謎である。人工知能の歴史は、知性の理解の歴史と言っても良い。一生かかっても解けないかもしれない謎を追い求めるロマンは、僕にとって他の何にも代えがたい喜びなのだ。

WirelessWire Weekly

おすすめ記事と編集部のお知らせをお送りします。(毎週月曜日配信)

登録はこちら

清水 亮(しみず・りょう)

新潟県長岡市生まれ。プログラマーとして世界を放浪した末、 '17年にソニーCSLとWiL LLC.とともにギリア株式会社を設立し、「ヒトとAIの共生環境」の構築に情熱を捧げる。 '17年より東京大学先端科学技術研究センター客員研究員を兼務。著書として「教養としてのプログラミング入門(中央公論社)」「よくわかる人工知能 (KADOKAWA)」「プログラミングバカ一代(晶文社)」など。

RELATED TAG