こんにちは。石川です。
2020年からプログラミング教育の導入が小学校で始まります。
気になっている方も多いのではないでしょうか?
僕は、プログラミングを2018年に初めてからwebサービスを自分で作れるようになりました。
これまでいろんなことに手を出して勉強してきましたが、中でもプログラミングは当たりだなと思っています。
挫折してきたものが多くある中でも、プログラミングをしてる時間はすごく没入できて、楽しく続けられています。
当記事は、「プログラミング知らないけど興味あるという方」や「自分の子どもにプログラミングをやらせるかどうか悩んでいる方」に向けて書いていきます。
なぜプログラミングは面白いのか?
不思議に思ったので考えてみました。
結論から言います。
「プログラミングは、分からないことが次々と襲うけど頑張れば解決できる」
多分これが1番の面白さだと思います。
僕はまだまだペーペーのエンジニアです。
周りのプログラミング学習者と比べて、深い所まで突っ込んで勉強まではできていません。
僕の場合はトップエンジニアになりたいわけではなく、経営者(事業を作る人)として力をつけていきたいので、プログラミングしてる時間はかなり少ない方です。
それでも、分からないことは次々と襲って来ます。
「あれ、これってどうやったら実現できるんだろう?」
「ん?ネットにある記事を読んでも仕組みが理解できない!」
「えー、これで上手く行くはずなのに、なぜか思い通りに動いてくれない!」
最高ですよねこれ。
プログラミングをやっていると、どれだけ勉強して進んでいってもこういった「詰まる」経験はなくなりません。
挑戦して、調べて、考えて、やっとできる。(できないままの時もあるw)
これの繰り返しです。
永遠の勉強。それがプログラミングです。
プログラミングは、人の学習能力を上げる
そもそも教育には、「コンテンツ」と「トレーニング」という二つの側面があります。
プログラミングの場合は、「コンテンツ」としてはプログラミングスキルそのものですね。
webサイトを作れるようになったり、ロボットや機械を作れるようになったり、ゲームをつくれるようになったり、データを使って解析できるようになったり、色々できるようになります。
「トレーニング」としては、自己解決能力であったり、論理的思考であったり、集中力などが身につきます。
プログラミングの効用として、一番大きいのは「人の学習能力」をあげることだと考えています。
プログラミングに限らず、人生において「どれだけ分からないことに出会えるか」の多さで、人の成長は決まってきます。
分かる事ばかりやっている人は、当然成長が止まります。
心の安定は得られるかもしれませんが、負荷も変化もないので面白くありません。
つまらない人になります。
「どれだけ分からないことに出会えるか」という点において、プログラミングは恰好の教材だと思います。
ちょっとかじってみるとわかりますが、勉強していけばいくほど分からないことにぶつかります。
そして、有り難いのはプログラミングの場合、大体ネットで正解にたどり着けることです。
世界中の誰かが同じ問題にぶつかっていて、その解決プロセスをネット上に書いてくれているからです。
例えば、CSSというプログラミング言語をいじっていて、「あれ、ボタンの形を丸くしたいんだけどどうしたらいいのか分からない!」と思ったら、グーグルで「css ボタン まる」みたいな感じで検索すると正解が出てきます。
つまり、自分で問題にぶつかって、自分で調べながら、解決していくことができます。
これができるのが、プログラミングのとても大きな所です。
ちなみに、日本の学校教育では基本的に「問題も与えてもらって、正解も教えてもらう」形です。
少しずつ変わっている流れは感じられますが、まだまだ「先生1人が喋って、生徒25人が聞く」スタイルです。
だから、学校教育を普通に受けてきている私たちは、教えてもらうことに慣れてるので、プログラミング体験はきつい人もいるのかもしれません。
分からないことが出てきても逃げない。
答えを待たずに、自分で調べて、自分の頭で考えていく。
社会人になるまでそういう経験をしてない人は意外と多いんじゃないでしょうか?
プログラミングと世の中の仕組み
次に、「コンテンツ」としてのプログラミングを考えて見ます。
プログラミングは、将来を生き抜く武器になるのでしょうか?
一旦脱線して、経済の話をします。
世の中というは、生産者と消費者に分けられます。
ほとんど全ての大人は生産者であり、且つ消費者でもあります。
お肉屋さんで1kgのお肉を買う行為。これは消費です。
お肉屋さんがお肉を売る行為。これは生産です。
牛農家さんが牛を育てる行為、誰かが牛を殺してさばく行為、運送屋さんがお肉をお肉屋さんまで届ける行為。これらも生産です。
あなたの身の回りに在るモノを振り返って想像してみてください。
私たちの生活は、たくさんの生産活動によって成り立っています。
♪一息つきながら〜人はもっとはたらく〜、の世界観ですね。
今日買ったおにぎりも、スマホで読んだニュースも生産されたモノです。
その裏には、沢山の人の労働があります。
そしてプログラミングというのは、この「労働」を自動化して「機械」に置き換える行為です。
プログラミングは、「モノやコンピュータなどに自動で何かをさせる」ことです。
玄関脇のスイッチを押したら、チャイムが鳴る。
「O N」ボタンを押したら掃除機が動き出す。
今あなたが見ているこのページ、「タイトル」を押したらトップページに遷移する。
全部プログラミングです。
子どもがやっているゲームも、皆が使っているアプリも、家庭や仕事場で身の回りにある機械も、プログラミングがあって成り立っているモノはとても多いのです。
ものすごく乱暴な言い方をすれば、もしプログラミングがこの世から消えたら、身の回りのモノはほとんどなくなるはずです。
何が言いたいかというと、プログラミングができると生産活動ができる幅がグッと広がるということです。
つまり、プログラミングができるとお金を稼ぐことに繋がりやすいかもねという話です。
先ほど、世の中は生産活動と消費活動で成り立っていると言いました。
そして大抵の場合は、生産活動(つまり、労働)と引き換えに、対価としてお金を手にすることができます。
生産は消費されることとセットなので、人の役に立つものを生産するほど、手にするお金の額も大きくなりそうです。
子どもは、大人になるまで消費専門の存在と言えます。
「生産活動をするために準備をしている」とも言えますね。
プログラミングとは、何かを生み出すための技です。
近年AIに仕事を奪われると叫ばれていますが、プログラミングで一流まで突き抜ければAIを作る側(つまり、何かの生産活動を自動化するモノを作る側)にまわれる可能性はあります。
だから、消費者から生産者に脱皮するための大きな武器になるかもしれません。
プログラミングは、大衆化するのか?
2020年からプログラミングが必修科されます。
予定はこんな感じです(2018年時点の情報)
2020年度 小学校で必修化
2021年度 中学校で必修化
2022年度 高校で必修化
2024年度 大学入試
先述した通り、プログラミングは様々な生産活動を担うので、エンジニアは実需がとてもあると思います。
「エンジニアが足りない!」と悲鳴をあげている企業はたくさんあります。
これからの時代も、もっともっと増えるはずです。
しかし、プログラミングができれば安泰なのかと言えば、そうではないと思います。
仮にもし国民皆ができるようになったら、それは代替が効くということなので給料は上がりません。
プログラミングは、それほど学習コストが高くありません。(お金をそんなに払わずとも時間さえあれば誰でも学習できます)
ですので、みんなができるようになればコモディティになります。
給料としては、むしろ下がる可能性もあるのかなと思います。
これは単に需要と供給の問題です。
同じ質で働ける人がたくさんいるならば、高い賃金は出ません。
企業のインセンティブは稼ぐことなので、安いエンジニアがいたらそっちに流れるのは自然の摂理です。
労働プールが広がりチャンスが大衆化すると、賃金は上がりにくくなります。
さらにもっと言うと、今後はグローバルでの競争も起きます。
プログラミングのコードは、ユニバーサルなものなので、基本的には、日本人が書こうがベトナム人が書こうが変わりはありません。
ベトナム人やフィリピン人など、すでに優秀な人も少なからずいます。
経済成長率が高く勢いのある国は教育レベルも上がっていくので、良い人材はまだまだ増えていきます。
これまでは場所と言語という物理的な障壁によって守られてきましたが、何らかの形で、コミュニケーションの障壁が限りなく下がる日もそう遠くないでしょう。
もはや、国境はありません。
人件費の安い国の人と勝負したら、どうなりますか?という問いです。
それを考えていかなければいけません。
ここから何が言えるかと言うと、ただプログラミングができるだけではダメで、突き抜ける必要があるということです。
突き抜け方はいくつかあると思います。
①【量をこなす。早く始める】
単純な話ですが、効果は抜群だと思います。
その理由も単純で、コモディティになったとしても量をこなす人は少ないからです。
量をこなす人が少ないので、それだけで希少性が上がります。
希少性が上がると、他に代替が効かないので賃金も上がりやすくなります。
日本でプログラミングが必修になると言っても、「プログラミング」という科目ができるわけではありません。
ちゃんとコードが書ける人はほんの一部になるだろうなと想像しています。
あくまでこれはwebサービスの一例ですが、例えばよく皆さんがみているヤフーさんのサイト。
これらのwebサイトは全てこんな感じの文字列によって書かれています。
乱暴な言い方をすると、コードが書けるというのはそういうことです。
プログラミング教育が必修化されると言っても、「プログラミング」という教科ができて、プログラミングスキルをゴリゴリ教えるわけではありません。
「プログラミング的思考」に触れようねということです。
「プログラミング的思考」とは、「ゴールを設定して、どうやったらそのゴールまで達成できるのかのプロセスを論理的に組み立てる力」です。
まあ思い切りの悪い日本のことなので、プログラミング教育は中途半端になるんじゃないかな〜と個人的には思っています。
実際、英語は6年間やってもあのレベルですからね。
「英語」はコンテンツとしてもすごく実用的なものだと思いますが、学校教育の英語科目は「実学」には程遠いわけです。
僕は東京外大に入っているのですが、入学時はほとんど喋れませんでした。
今はどうなのか分かりませんが、外大にも英語が喋れない人は普通にいっぱいいました。
いわば、試験を通ることがどういうことを意味するのかを端的に表している例だと思います。
学校の勉強だけを一生懸命しても喋れるようにはならないってことです。
ちなみに、プログラミング教育ではイスラエルなんかがすごくて、義務教育でC+とC++(言語の一つ)をやったりして、兵役とかで皆python(言語の一つ)を勉強したりするわけです。
もう敵うわけないですよね笑。
世界的には、そんな人たちがゴロゴロいます。
話を戻しますが、日本でプログラミングスキルが大衆化したとしても、やはり質の高いエンジニアはめちゃくちゃ求められます。
今も正確に言うと、「質の高い」エンジニアがいなくて企業は困っているわけです。
そういう人材にはきちんとお金を払います。
時間をかけて真剣に戦い続けて、積み上げているエンジニアさんはやっぱり次元が違うんだろうなと感じてます。
プログラミングは、かけた時間とスキル技量が比例するものです。
努力した人が報われる世界だと思います。
Facebookを作ったマークザッカーバーグも12歳の時からプログラミングの家庭教師をつけていたのは有名な話です。(この方は天才なので比較にならないかもだけどね)
結論として、悩んでいるならば、早く始めてみた方が絶対に有利です。
自分も子どもには、出来るだけ早い段階で触れる機会は作りたいと思っています。
②【有望な言語に挑戦する】
「プログラミング」と言っても色々あります。
「外国語」と一口にまとめてるのと同じようなもので、中には英語、フランス語、スペイン語、中国語、ラオス語、とか色々あって、できることも全然違います。市場も違います。
ですので、どの言語をやるのかはまず重要になってくるかと思います。
みんなができる簡単な言語だけをやってもコモディティーになるので、あまりみんなが手をつけていない言語を勉強していくのも一つの戦略です。
早いうちに学習して突き抜ければその言語においてポジションが取れるので、希少性も上がり戦いやすくなります。
但し、そうした言語は最新技術でまだ情報が少なかったり、普通に難しかったりするので、当然ながら学習コストは高めです。
また、作りたいものから逆算して言語を選ぶのも大事です。
例えば、ゲームを作りたいのか。ゲームの中でもどんなタイプのゲームが好きなのかによって必要な言語は違ってくる。といった選び方です。
2020年に小学校でプログラミングが導入されます。
現時点で詳細はまだよく分からないのでハッキリとした事は言えませんが、おそらくビジュアルプログラミングが中心になるのではないかなと思っています。
ビジュアルプログラミングとは、パズルにような感覚でロジックを組み立てたりできるものです。ゲームに近い感覚でできます。
ビジュアルプログラミングと、プログラミングの大きな違いは、コードを自分で書くのか、書かないのかです。
ビジュアルの方では、もともと色々なパーツが用意されてあって、そこから「選んで」ロジックを組んでいくような形が基本です。
コードを書く量が少ないので、とても取っつきやすいです。
子どもは初めて触れるので興味を奪わないことが大事だ、との論調でおそらくビジュアルプログラミングが中心になるんではないかと思います。
導入としてはすごく良いです。
ただ、そればかりだと僕が最初に述べた、「わからないことに出会う」経験が減ってしまうこともありそうです。
「何もわからない状況から自分で答えを探していく」
それがプログラミングの真髄だと僕は思います。
ですので、コードを書くことを早くから始めるべきかと思います。
そこに差が出るんじゃないかと思ってます。
③【プログラミング以外の得意分野を作る】
プログラミングだけでは代替が可能になるので、それに何かを掛ける戦略も良いと思います。
プログラミング × 数学
プログラミング × 将棋
プログラミング × 農業
プログラミング × マンガ
まあなんでも良いとは思います。
いろんな分野でプログラミングは必要とされているので、得意な分野が他に作れると、より武器として輝くかもしれません。
要は、興味のアンテナをプログラミングだけに絞らずに、他にも好きなことがあるならばやったほうが良いということです。
AI時代には、マニア力が価値を持ってきますので。
オーナーになるか、社員になるか
最後にもう一つ見落とせない視点があるので、書いておきます。
この間、映画「シェフ 三ツ星フードレストラン」をみました。
とても良い映画でした。
ストーリーはこんな感じです。
古風なオーナーと対立し、自分の好きなように仕事ができなかった有名シェフが、フードワゴンを始め、自分の好きなように自由に仕事をするシェフに変わる物語。
これは、プログラミングをこれから学ぶ人にとっても確実に知っておいた方が良い視点です。
オーナーになるのか、社員になるのか、です。
これは好き嫌い、向き不向きもあると思うので、一概にどちらが良いは言えません。完全にその人の価値観によります。
現実的には、どっちも大変です。
自分でサービスを作って世の中に広め、さらにお金を稼いでいくのはそう簡単な事ではありません。
その代わりイニシアチブは自分が握れます。自分の好き勝手に仕事ができます。
会社の中で働く場合は、組織はそもそも分業で成り立つので、いくら裁量がある場所でも100%ではありません。我慢する時が必ず出てきます。
その代わり、規模の大きい仕事ができたり、教えてもらえたり、そもそもちゃんと会社として既に成り立っているわけだから、安定して給料も出ます。
プログラミングを学んで自分で生きるのか、会社に務めるのかどっちの道へいくんだという話ですね。自分の幸せに直結しますので、経験を積み重ねながら考えたら良いと思います。
最後の結論として、最初に戻りますが、プログラミングによって磨かれるのは、自己解決力だと思います。
プログラミングは分からないことだらけ。
だから、楽しい。
この能力があったら、何でも学んでいけます。最強です。
スキルなんて時代時代によって、すぐ変わっていきます。
だから、もっと根幹的なそういう力がものを言うのだと考えています。
さてプログラミング、やりましょう。
【ララボ】
勉強以外の子供向け家庭教師マーケット「ララボ」を運営してます。子供達の将来の選択肢を増やすために日々頑張ってます。
・子供が興味のあることを教えてくれる先生を探せます
・ギター、絵画、ファッションデザインなど自分の好きなことで家庭教師に今すぐ登録できます。
興味がある方はコチラ↓
家庭教師マーケット「ララボ(LeLabo)」
ツイッターを楽しみたい方はコチラ↓
イシカワのツイッター