学問・勉強 趣味・副業 雑筆

【AI時代における教養】本当にプログラミングは必要か

はじめに

私は趣味の一環としてプログラミングにも手を出してみたことがあります。

とはいっても、何か大きなプロジェクトに携わったとか、そういうことではありません。

書籍を買い漁って、プログラミングの構造がどうなっているのかを、その種類などとともに見てみたかったからというのが動機の一つです。

実際、今みなさんが読むのに使っているパソコンやスマホも、すべてはプログラミングによるソフトウェアの環境の中で動いているのです。

その根本的な理屈を知ろうということは素晴らしいことです。

ですが、現代は「AI時代」と呼ばれ、多くの職業がAIに取って代わられ、デジタルな世界に親和性の高い人が生き残れるということがまことしやかに囁かれているところは少し気になります。

広告でも、「プログラミングを学ぶ」という趣旨のものがかなり増えてきて、このAI時代においてプログラミングに対して興味を示している方々がたくさんいらっしゃるということが想像つきます。

実際、10年ほど遡るとどこにもなかったように思える「プログラミングスクール」が、大人向けはもちろんのこと、子供たちにもパソコンを触らせ様々なプログラミングによるプロダクトの作り方をスクールとして教えているところもあります。

子供たちは無邪気に、スマホを触るのと同じような感覚で遊んでいますが、大人たちは真剣な顔つきです。AIによりもたらされるシンギュラリティに漠然とした恐怖を抱いているようにも感じます。

では、我々は本当にプログラミングを学ぶべきなのでしょうか

もちろん、そこには正解も不正解もありませんが、少し考えてみることにしましょう。

プログラミングを学ぶことによる利点

プログラミングというのは、ある種の「言語」と言っていいでしょう。

その世界における言語のルールを知り、一定の文法に従って記述していくことで、いろいろなシステムを構築することができる。

それが「プログラム」という行為です。

例えば、パソコンやスマホを開いたときに出てくる基本的な画面も、「OS(オペレーティングシステム)」というプログラムのなかで動いています。

ウェブサイトを閲覧するときも、HTML(Hypertext markup language)という「言語」が使用されています。この記述ルールに則ると、文字を大きくしたり、色を付けたり、改行したり、表を作ったりすることができるのです。

(註)HTMLは厳密にいうとプログラミング言語とは異なりますが記述の論理は似たようなところが多いので例示しています。

そう考えると、今、我々が見ているパソコンやスマホの世界がどのようにして成立しているのかということを知りたいときに「プログラミング」はとても必要な教養のように思えます

時折エラーが生じて動作が上手くいかなくなったりすることや、最新版がアップグレードされていくのは、人間の手で作られた文章になにがしかの間違いがあったりするからです。

正確に記述するためには、言語のルールを知り、バグが起こらないようにするための詳細な知識と観察力、論理的思考力が必要になります。

したがって、プログラミングを学ぶことは数学にも似た論理的な構造の科学を学ぶことに繋がるでしょう

今では、書籍だけではなくインターネットを調べるだけで多数のプログラミング学習サイトが登場するようになりました。

それに、プログラミングによって生じた新たなプログラミング言語も際限なく出現し、どんどんその内容は複雑化してきています。

そして、ここにきて自ら学習することのできる「人工知能」が登場し、プログラミングの世界も飛躍的にその成長スピードを加速させることと思います。

プログラミングは仕事にするのは難しい

しかし、だからといってプログラミングを必須教養にする意味はあるのでしょうか

プログラミングの根本は、言語を駆使してあるものを表現しにいくことです。

自分の頭の中に描いた地図を、指定されたルールを使って記述し、より正確にその目標に近づけていく。

そのためにたくさんのルールを学んでいく必要があるのですね。

それは喩えるならば、「まったく知らない言語を一から勉強する」ということに等しいです。

我々は英語こそ何年もかけて学習してきていますからある程度のことはわかるようになるかもしれません。

しかしプログラミングは今まで経験したことのない外国語を一から学び直すことと変わりありません。

どういうルールを使うと、この表現ができるのかということを一つ一つ勉強していく必要があるのです。

ここで、これから始めようとする初学者と、既にプログラミングに関しては専門で、環境を構築する側に回った上級者とで大きな差がついてしまうのです。

上級者は、英語を例に取れば「ネイティブ」に近い存在でしょう。反対に初学者は英語を習いたての小学校一年生のようなものです。

今からプログラミング言語を一つでも学ぼうと思ったら、それなりの時間がかかるということを覚悟しておかなければなりません。

趣味として「こういう言語を使っているんだな」ということが分かって楽しいという範囲であればまだしも、これらを職業にするのは以下の二点からも考え直したほうが良いかもしれません。

一つは、既に上級者がこの市場を席巻してしまっているということ。

相当な努力で、仲間入りをすることはできるのかもしれませんが、プログラミングに対する関心が高まる中、チャレンジする人数が多くなればなるほどその職業は差別化が図られにくくなってきてしまいます。

もう一つが、「AI時代」と「学ぼうとするプログラミングの内容」が適合していないということ。

一からプログラミング言語を学んで理解していく過程と、現在のプログラムの生み出したシステムの成長速度があまりにも乖離してしまっているのです。

我々が今、何かを創り出そうとする場合に、一からプログラミング言語を習得して創り出すよりも、既存のシステムを利用したほうがはるかに効率良くなってしまうのです。

Youtubeのような動画投稿サイトを構築するのであれば、もはやYoutubeに動画を投稿してしまった方がよいのではないでしょうか。

TwitterのようなSNSを構築するのであれば、もはやTwitterにつぶやきを投稿してしまった方がよいのではないでしょうか。

プログラミングは要素を創り出し、要素が要素を大きくし、最終的には一つの環境になります。

この環境を一から作り直すのは非常に大変なことです。

既にある環境を、少しずつ修正していく形で新しい環境が構築されることが多い現代では、家を建てるのに材料を一から作っていくようなスタイルでは太刀打ちができない可能性があります。

このように考えると、プログラマーは仕事や職業として差別化を図ることのできるものではないのかなと考えられますね。

AIを理解し付き合っていく

なにもプログラミングは「AI時代」だから必要だというわけではないのです。

AIは当然プログラムで動きますが、我々は到底それらをプログラムすることはできません。

むしろ、「AIとは何か」ということを正しく知識として身につけていった方がよいでしょう。

マスメディアの報道するAIは、どちらかというと「与えられた値を計算して返す」というコンピュータのイメージを抜けきれないでいるようです。

医学の世界でも診断学にAIが用いられるようになるなどという話が出ていますが、これはAIではなくただの論理アルゴリズムに沿って与えられた値を計算して返しているだけの話です。

「この症状があったら、これの可能性が数%高くなる」とか「この症状がある場合にはこれらの問診をすることにより疾患の除外ができる」という、すべて数値の計算で済んでしまうことなので、人工知能とは程遠いものでしょう。

そういう類の誤解については、簡単に以下の新書が読みやすいです。

おわりに

AIは恐れるものではなくて、その存在を知ることによってどういう風に活用していくかということを考える必要があります

どんどんAI化していくからプログラミングを学ばなければいけないというのは、少し筋が違うように思います。

むしろ、そういう時代にあって、AIと差別化のできる人間の価値を高める学問をするというのが良いのではないでしょうか。

そこには当然、基本的な数学も国語も含まれてくるでしょう。プログラミングをするだけでは数学から得られる知恵の万分の一も得られないのです。

プログラミングをしてはならないというわけではありません。

趣味の一つとして知るプログラミングの世界は大変面白いものです。

プログラミングを通して、AI化される社会を見つめてみるというのは悪くないことかもしれませんね。

Twitterでは日々の気づきをつぶやいています。

忙しいときはこれで書籍を買っています。

参加しています。応援していただけると嬉しいです。

Follow -i- Life on WordPress.com
  • この記事を書いた人

Zen

4,000万円の負債を背負い、日々労働に明け暮れる薄給内科医です。 私を迷うことなく選んでくれた妻と一緒に、経済的自由を目指します。 とりあえず身体を壊さないように30代で5,000万円の金融資産を作ります! 経済的自由を得るまでの道のりを記録していきます。 最後に全員を幸せにして笑って生活するのが夢です。 応援よろしくお願いします(´ー`)

-学問・勉強, 趣味・副業, 雑筆

Copyright© -i- Life , 2020 All Rights Reserved Powered by AFFINGER5.