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