社会人がプログラミングを学ぶ目的

先日、プログラミングスクールで講師を務めている際に、プログラミングを学ぶ目的について受講者の皆さんと雑談になりました。
そのスクールは社会人の方が参加されているのですが、プログラミングを学んですぐにキャリアチェンジをしたいという方々ではありません。もちろん、ITエンジニアな皆さんでもありません。ITエンジニアでITを仕事にしている私からすると、対極にいる人たちです。ユーザー側にいるふつうの人たちというか。

いま、そんな「ふつうの人たち」がプログラミングを学ぶ時代なんだなぁと思います。そんな受講者が集まるのは東京だからだというような気もしないではありません。(そのスクールは東京で開催されていて、いまはこのご時世なのでオンラインでの開講に切り替わっています。お陰で私も北九州からオンラインで講師を務めることができています。)北九州のような地方(それでも大きな街ですが)でも、そういう人は間違いなくいると思うのですが、スクールとして立ち上げてビジネス的に成り立つのかは未知数ですね・・・。

ITを知らねば・・・という焦燥感

雑談の中から私が感じたのは、ITを直接の仕事にしない人たちでも、これから世界がどんどんITの方に進んでいくことは感じていて、何もしないでいられない、という焦燥感があることです。すごく焦っているというわけではないのです。今日、ITを学ばないと、明日から困るというわけではありません。ただ、何となく、じんわりとした焦燥感があるのではないかと思います。

そんなじんわりとした思いからプログラミングを学んでいるので、これといった目的はありません。こんなシステムやアプリを作りたい!という強い思いがあると良いのですが(もちろん、そういう方もいます)、それがないので、プログラミングをなぜ学んでいるのだろう・・・と、学ぶ目的を見失ってしまいます。

先日、「ITを仕事にするなら、消費者から生産者にマインドを切り替えないといけない」というようなことを書きました。

プログラミングはあくまで生産技術です。ならば、ITを仕事にしない人たちはプログラミングを学ぶ必要もない・・・ような気がします。一方、小学校ではプログラミング学習が必修になるようです。国は子供たちをITエンジニアとして育てようとしているのか。もちろん、そんなことではないのでしょうが・・・。だけど、小学生がプログラミングを学ぶ時代に、大人の私が知らないわけにはいかない!そんな思いもあるのかもしれません。

プログラミング→ライブラリ→ノーコード

コンピュータの歴史に目をやると、最初はプログラミングが必須なのです。コンピュータ自体の黎明期には、コンピュータを使うこと=プログラミングでした。その後のことを考えても、コンピュータで何か先進的なことをやろうとすると、最初はプログラミングが出来る人たちだけが取り組めるということはあると思います。

例えば、AIは最初はプログラミングができるる人たちだけが使える技術でした。AIの用途として一般的な画像分類モデルを作るには、Pythonが分かってTensorFlowが使えて・・・という人でないとダメでした。それが、いまではGoogleのTeachable MachineとかMicrosoftのLobeのようなツールを使うと、ノーコードでモデルが作れるようになります。この2つのツールは特に簡単なので、プログラミングを学ぶ必要は一切ありません。

コンピュータで何か新しいことができるようになると、最初はプログラミングが必須となり、徐々にライブラリとかが整備されて書くべきコード量が減っていき、いずれプログラミングができない人でも使えるようなものになる。逆に言えば、ノーコードツールが使われるようになる前に新しい技術を活用しようと思えば、プログラミングが分かっていなければならない。

もう一つ、AIにおける画像分類モデルのようなポピュラーな用途ではない場合は、相変わらずプログラミングが必要です。プログラミングが分からなくても使えるようなツールを作るには、それなりの投資が必要なので、その投資に見合わないニーズにはノーコードのツールは提供されないのです。だから、そういうニーズがあってコンピュータを使いたいなら、やっぱりプログラミングが必要になります。

自分の生活への影響を早く知っておきたい?

最初に挙げたじんわりとした焦燥感の出所は、自分の仕事や生活にどんどんITが入っていく、もしかするとITに代替されるかもしれない恐怖感もないではないという中で、ITがこれからどのように自分に影響を与えるようになるか分からない・・・ということではないでしょうか。

だから、IT利活用講座(Officeの使い方を学んでMOSを取ろうみたいな)ではなく、プログラミングを学びたいということになる。何となく、ITのこれからを知るためには、プログラミングを学んでおいた方が良いのではないかという思って、プログラミング講座の門戸を叩く。
そんな人が知りたいのは、いまのITというよりもこれからのITなので、そのアクセス手段としてプログラミングを学ぼうというのは間違いではないと思います。

木を見て森へのつながりを理解できるようになる

ただ、プログラミングを学ぶとしても、先進的な話がすぐに出てくることはありません。多くは地味な学習に時間を割かなければならないのです。単純にプログラミングだけを教えると無味乾燥なものになる(だって、分岐と繰り返しと配列のドリルを淡々とやるだけって嫌でしょう・・・)ので、例えばWebシステムを作るとか、スマホアプリを作るとか、具体的な題材に取り組むことになります。私が学びたいことはプログラミングであって、Webシステムやスマホアプリを作りたいわけではないのに・・・と、思うかもしれないけれど、それは仕方ない。
何を学ぶにせよ、地道な勉強は必要です。講師としては、そこは頑張ってもらうしかないという思いもあります。あと、プログラミングは「できた!」という瞬間が一番楽しいので、それを知って欲しいとも思っています。

ただ、木を見て森を見ずになってもいけません。目先のプログラミングの細かな話に囚われてばかりいては、受講者の期待に添えないことにも留意が必要でしょう。講師としては、木から森へのつながりを話すとか、自分自身の知識を最新にしておくといったことを心掛けたいと思います。あと、社会人はなぜITを学ぼうとするのか、なぜ必要なのか。その辺のところももっと雑談できればと思っております。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。