プログラミングって何?
ここ数年からプログラミングを小学生から必修化し、大学入学の共通テストにもプログラミングが導入されるという記事をよく目にするようになりました。
そもそもプログラミングって何?というところからですが、プログラミングってシステムを自動化するためにシステムにあらかじめ自動化するための指示を設定してあげることです。この職業がいわゆるプログラマですね。
最近は近所の学習塾の折り込みチラシ等でもプログラミング学習という文字をよく見ます。
こういった時代の流れに合わせて学習塾も必死です。
小学校でもパソコンの授業やクラブ活動等でスクラッチというプログラミング言語を使って、自作のゲームを作る活動が行われているところもあるようです。
具体的にどのような内容を教えてくれるのかは分かりませんが、恐らく子供向けの内容からスタートしてくれると思いますので、ゲーム感覚で学べるものが多いのではないでしょうか。
必修化とする目的
何故必修化するのか?というところからですが、近年のAI等を活用したIT関連ビジネスの加速に伴い、IT人材の深刻な不足が最も大きな理由とされています。
経済産業省の発表内容によると、2020年に約37万人、2030年に約79万人が不足すると言われています。
AIにより仕事が取って代わる時代になってきていますが、その時代を生き抜くためにはIT業界の人材になるのが強みとなるのではと思っています。
そう考えると、
AIを作る側の人になる
↓
作る側の人になるにはAI(仕組み)を理解しておく必要がある
↓
早期から学習し理解しておくことが非常に大事
とつながっていくことになりますよね。
現在ではまだまだプログラミングってシステムエンジニアやプログラマ職にしか馴染みのないものですが、恐らく近い将来、知っていないと差別化の対象となる可能性があるかもしれません。
プログラミングから得られる事
プログラミングから得れると思われる内容をあげてみました。
1.論理的思考力が身に付く
一番のメリットはこれだと思います。
論理的思考力って社会人にとって非常に重要なスキルになります。
・物事の筋道を理解しそれを論理だって表現し説明できるようになる
・その結果、相手に納得できるような話し方ができるようになる、説得が上手になる等々
・ネゴシエーション(交渉)スキルが身に付く
ではなぜこのスキルが身に付くかと言うと、プログラミングを行うことで一つのシステム(小学生の場合はゲーム系が多いかと)が出来上がります。作ったシステム(ゲーム)を自分で操作したり、他人に操作してもらったりすることで評価されるようになります。
そのように人から評価を受けることで、自分の作ったシステムの何がダメだった、では次は良くなるようにここをこうしよう、ここは良かったからさらに改良しよう、もう1回評価してみて、という発想と行動のサイクルが生まれます。
これを繰り返すうちに、物事の道理(人の意見を聞いてあるべき考え方)を理解していく、それをもとに改良を繰り返す(道理に応じて改良すること=表現する)ことが可能となります。
また作ったものを発表する機会があれば、さらに上記のスキル向上に加えてプレゼンテーションスキル(表現スキル、発表スキル)の向上が見込めます。
他にも例えばスクラッチのようにゲームを作るような場合ですとデザイン力を身に付けることも可能かもしれませんね。
2.システムの仕組みが理解できるようになる
仕組みを理解しておくと、単純に仕事の幅が広くなると思います。仕組みを理解しているからここはこうしよう、こうできるんじゃないか等の勘もよくなります。
これを社会で繰り返している人はイノベーションを起こしている人達になるかと思います。
少し大げさに言いましたが、社会にイノベーションとまではいかなくとも自分の会社で改革を起こす人=必要な人材となる可能性が高くなると思います。
こうなると、必然と会社で価値の高い人材となり社会的地位や給料UPに繋がっていくということになります。
3.早いうちからパソコン操作に慣れる
私が社会人になった時代は、大学で情報処理に関する授業が人気を集め始めた頃でした。私も情報処理の授業を専攻していましたが、そのまま社会人に入った時にパソコンを普通に使える人材として重宝されたのを記憶しています。
でもこれは今の時代では通用しません。パソコンなんて使えるのが当たり前という時代です。そんな中、パソコンを使えないというのではディスアドバンテージ(不利)になります。
要は社会人になった時のスタート時点の能力に既に差がでている状態となります。
なので標準スキルとして若いうちから備えておくと、パソコンを学ぶ時間を他の時間に充てることができるので同期にも更に差をつけていくことが可能ですよね。
またブラインドタッチもできるようになるかもしれませんね。まあこれはできなくても全然仕事はできますが・・・(ブラインドタッチができることよりも、論理的思考力を高めることの方が大事)
自分の子供に対して
私の職業はシステムエンジニアです。この業界に入ったのは20代前半からなのですが、プログラミングの知識は全くなく完全未経験から始めました。
一般的にこの業界ってプログラマを数年経てから、システムエンジニアになっていくことが多いです。
この役割の違いって、ざっくりと以下になります。
「プログラマ=前述のとおりシステムに指示をする人」
「システムエンジニア=システムに指示する内容を考える人(設計しプログラマへ指示を出す人)」
私はこのプログラマを2~3ヵ月経験して、急遽システムエンジニア職へ異動になりました。当然、全くついていけず、プログラムもまともに読み書きできないままシステムエンジニアになったので非常に苦労したことを覚えています。
つまり何をいいたいのかですが、学生のころからこのプログラミングをやっていると、プログラム知識が事前に備わっている状態となるのでこの業界に入っても私と同じような苦労は少ないと思うのですよね。(この業界のみ関わらず、将来どの業界でもシステム無くして考える職業は極めて少なくなっていくと思います)
大学で情報工学を専攻していた新入社員とかを見ていても、吸収力が圧倒的で比較的即戦力になることが多いです。それを小学生から身に付けるというのは圧倒的なアドバンテージになりますね。
論理的思考力が高く表現スキルも高いと、会社面接でも非常に有利になります。結局、会社に入るところから個人のスキル比較(企業から順位付け)がなされ、より良い人材を確保していくことになります。ここにもアドバンテージが生まれます。
但し、一つだけ大きなデメリットもあります。(デメリットと思うかどうかは個人差がありますが)
基本的にシステムエンジニアって一般より論理的思考力が高くなりがちなので、人と普通の会話をしていても、面倒くさい人として扱われやすくなることもしばしばです。
要は非社交性な人間になってしまう可能性が高くなるということです。
ここには十分に気を付けないといけません。
私は子供には論理的思考力を高めつつ社交性の高い人間に育ってほしいと思っています。
なので子供らしい言動や行動は否定せず、同じように付き合うようにしています。
プログラミング教育って非常に良い取り組みだと思いますが、反面、人間臭さを失わないようにする必要がありますね。
子供たちが社会人になった時は、先輩や上司はこのプログラミング教育を受けていない人たちとなりますので、うまく立ち回っていく必要もありますしね。
俺(私は)はプログラミング教育を受けているんだ!!と錯覚させないよう子供たちを見守り、時には起動修正してあげる必要性をしっかり認識しておきたいですね。