![見出し画像](https://assets.st-note.com/production/uploads/images/147420761/rectangle_large_type_2_21ce45a3907fe2a8918ad5a8cb50540e.png?width=1200)
プログラミングが不要になる未来なんて来ない
巷にはノーコードを謳ったツールが溢れ、さらに生成AIの登場でプログラミングスキルはもう不要になる…みたいな話まで出てきています。
その、甘く甘美な…もっともらしい話に影響を受けてしまう人が多いのではないか?と非常に心配になりました。煽る人は、読んでもらいたいという気持ちが強いので、ウケの良い耳障りの良い話をする傾向にあると思います。でも、貴方の人生に対して何の責任もとってはくれません。
このような「プログラミング能力は不要になる」という言葉が広まってしまうことに対して、私は非常に危機感を感じました。
特に、小さなお子さんがいる方々が「プログラミング能力は不要になるから学ばなくて良い」という認識をもってしまうと、その親の影響を大きく受ける子供達の可能性を潰しかねない…そんな未来にはしたくない!という思いから、この記事を書きました。
可能な限りプログラミングしない事を考え続けた中で得たもの
私自身が子供のころから言い続けてきた言葉があります。
「プログラミングしなくてもアプリケーションが作れる日が来る」
30年くらい前からでしょうか?ずっと思ってきました。
でも、やりたいことを実現するにはプログラミングをしなくてはなりませんでした。覚えたことが全て無駄になるとしても、強烈なモチベーションと執念で…好きなことを実現するために、大変だけどプログラミングを続けてきました。
それは、将来の為とか、お金を稼ぐためとかではありませんでした。
プログラミングをしなくてもアプリケーションが作れる日が来ると思っていた訳ですから…それが、お金になるとは思っていませんでした。
ただただ…頭の中のアイデアがカタチになり、実際に動く…というのが楽しいから続けていました。
まるで、自分が小さな世界を操っているような感覚と達成感があり夢中になりました。でも、プログラミングは非常に面倒です。なので…
「どうすれば面倒なプログラミングの量を減らして、簡単にアプリケーションを作成することが出来るのか?」
をひたすら考え追及してきました。
そんな色々な経験を得て、いつの間にか…システムの共通的な機能(フレームワークと呼ばれるもの)を考えて実装する事が仕事のメインになりました。
そして、その共通機能を利用し、システム全体の中で、最も難しい機能や画面を担当し、どれぐらい簡単にシステムが作れるか?を検証・実装してきました。
共通的な機能…基礎部分を担当するという事は、技術的に実現可能かどうかを全て知っている必要があります。そのため、お客さんから実現したい事を聞く(要件定義)段階から「実現可能かの判断」のためにプロジェクトに参画しました。そして、設計・実装が始まると、その実現可能なものを、どのように実現させるかの指針も示さなくてはなりません。そのため、設計も製造もテストも納品も…システム全体のすべての工程に関わり、頭を使って、かつ手も動かす(実際にプログラミングする)というように、システム全てを把握する立場になっていきました。そして、社内で開発するWeb系のシステムについては、ほぼ全てに関わるようにもなりました。
そんな日々を続けていくうちに、他の人には見えてない部分まで考えられるようになってきました。何かを実現したり、問題解決する為に、どのような手順で行えばよいかがイメージとして浮かぶようになってきました。
私は、学校勉強とか全然出来なかったので、本質としては全く優秀ではありません。知識も少なかったです。
それでも、この能力のおかげで、あらゆる問題の根本が「見え」たり、解決するための手段が「見える」ことが非常に多くなっていく事を実感しました。
この能力とは…「プログラミング的思考」です!!
そして、それは「プログラミングをすることにより培われた能力」だったのです!
英語学習とプログラミング学習の違い
少し話を変えてみましょう。
プログラミングと並んで学習する敷居が高いものと言えば英語だと思います。なので、あえて比較してみたいと思います。
英語学習が今後も必要だと言う話は、皆さんは認識していると思います。もちろん、私もそう思います。
しかし、それ以上にプログラミング学習の方が重要だと私は考えています。
その理由をお話いたします。
まず、学校で英語を学ぶとき、英語を日本語に訳して理解します。そして、頭の中で日本語で考えた文章を英文に変換するように英作文します。
実は、この過程は非常に生成AIが得意な分野となります。つまり、学校で習うレベルの英語は生成AIを使えば置き換えられるという事なのです。
これが、どういう事かと言うと…即時性や深い理解が求められない場面では、生成AIを使う事により、それなりに外国の人とコミュニケーションが取れてしまえるって事なのです!
なぜ、そのような事が可能なのかというと…
「我々は、日本語を知っていて、かつ使いこなせるからなのです!」
日本語と英語は同じ目的で利用されます。つまり、人と人とのコミュニケーションをとるための手段…という事です。同等のものであれば変換可能…つまり、日本語を知っていれば、生成AIがリアルタイムで同じような表現の英語に変換してくれる未来があるのです…というか、もう来ています。もちろん、逆も出来ます。
これは、プログラミングにも言えます。
「ひとつのプログラミング言語を知っていれば、他のプログラミング言語を知らなくても生成AIが変換してくれる未来が来ます!」
なので、頑張って沢山のプログラミング言語を覚えなくても良い未来が来る!と言えますね。
ここで、質問です。
あなたは、日本語レベルで使いこなせるプログラミング言語がありますか?
プログラミング言語はコンピュータとの対話です。そして、その言語は独特な考え方と厳格なルールを要求してきます。自然言語とは全く異なる目的を持つものなのです。
生成AIで日本語を英語に変換する場合、日本人なら日本語で伝えたい内容を的確に入力出来るはずです…当たり前ですよね?
でも、生成AIでプログラムを作ってもらおうとしたとき、プログラミング言語を1つも知らない…プログラミング的な思考が出来ずプログラミングの能力がない状態で、生成AIに伝えたい内容を的確に入力する事が出来るでしょうか?
そこが、大きな違いです。
日本で暮らしていれば自然と日本語を身につける事が可能です。英語を知らなかったとしても日本語を知っていれば生成AIが通訳をしてくれます。そんな未来はもう来ています。
しかし、プログラミングは普通に過ごしてきただけでは自然には身につきません。何も知らなければ、生成AIに何を指示するか全くは分からないのではないでしょうか?
だからこそ、プログラミング学習が重要である…と私は思うのです。
ノーコードというもの
よく聞く言葉があります。
「ノーコードでレゴブロックのように簡単にシステムが作れます!」
ええ、ええ、作れます!まさに表現通り、レゴブロックのように作れます。
非常に素晴らしい表現です!
ところで…
レゴブロック…本格的にやった事ありますか?
自分で作りたいものを作ったことありますか?
あるなら分かりますよね?
自分の作りたいものを実現するには、手持ちのブロックの色やパーツが圧倒的に足りないのです。お金持ちなら世界中のレゴパーツを買えるかもしれませんが、買ったところで色や形で分類されていなければ、探すだけで日が暮れます。
目の前に欲しいパーツのイメージがあるのに、見つからなくて完成させられないストレス。レゴを遊んだことがある人なら分かりますよね?
プログラミングは、まさに、このレゴのパーツを自作できるような技術なのです。ほんのちょっとの苦労で、目の前に欲しい色と形のレゴブロックが現れる…という事を想像してみると…夢みたいですよね!
また、生成AIがプログラムを自動で書いてくれる理由は簡単です。誰もが思いつくプログラムは、誰かが過去に作っているからです。
検索エンジンで探せばソースが見つかるようなプログラムなんて、生成AIが自動で書けて当たり前!!
なのです。
生成AIは私もフル活用しており、数千行のプログラムを生成AIに書かせたりしていますが、基本的には、そのままでは使えません。手直ししたり、何度も生成し直させます。これは、正しいものが何かをイメージできてるから、生成AIに指示できるのです。
つまり…
「プログラミング能力のない人が、これと同じことを行うのは無理だろう」
という事なのです。
プログラミングが不要になる未来を信じて待つという呪い
「プログラミングしなくてもアプリケーションが作れる日が来る」
これは呪いだと思います。悪魔の囁きとも思います。
実現したいことはあるけどプログラミングを覚えたくない…って人には非常に甘美に思える果実なのです。
だから、つい信じたくなります。
まさに、呪いです。
さらに厄介なのは、前章のレゴブロックの例のように、この言葉は正しい部分もあるので非常に厄介なのです。
そして、長い目で見ると呪いとなる言葉なのです。
「私は文系だから…」「エンジニアじゃないから…」
なんて言葉、よく聞きますよね!
だから、ノーコードツールが必要なんだと。
それに対して言いたいことがあります!
「文系だとか、エンジニアじゃないとか、プログラミング能力を身に着けるには全く関係ありません!」
元バンドのボーカルとか、元板前が突然エンジニアに転職して、プログラミング能力が凄く高い非常に優秀な人材になった!
なんて話はゴロゴロあります!
(むしろ、そちらの方が多いぐらい?)
この言葉が、響かない人、届かない人もいるかと思います。人の生き方はそれぞれなので、正解はありません。
全く適性のない人もいますので、別の生き方をした方が幸せな人も当然います。
ですが…プログラミングをするべきか?を迷っている人は…
「プログラミングしなくてもアプリケーションが作れる日が来る」という、この甘い言葉に誘惑されないで下さい!
あなたの頭の中のイメージを完璧に迅速に実現するには、プログラミングを身につける事が最も近道です!
そして、プログラミングを学ぶというのは「プログラミングを覚える」ことだけではありません。「プログラミングをすることにより思考力を磨く」という大きな学びがあるのです!
決してIT土方になるための、スキルではないのです!
だからこそ、これからの時代、プログラミング的思考が非常に重要になると、私は思うのです。
こちらの記事も合わせて読んでいただけると嬉しいです!
では!
この記事が気に入ったらサポートをしてみませんか?