多種多様な分野で「AI」の功罪が議論されている昨今、プログラミング学習は、その重要度を増しています。
最近では、小学生の内から習い事でプログラミング教室に通うことも珍しくなく、教育業界においては、2020年教育改革によって学習指導要領が改定されプログラミング学習が必修となります。
もはや、プログラミング学習は「IT業界」だけのものでは無くなってきています。
現役の働く世代は「IT企業じゃないから……プログラミングとか使わないし……」などと言っていると、後ろから迫りくるニュージェネレーション達にズバズバと追い抜かれていくことでしょう。
この記事のコンテンツ
学校を出た社会人はプログラミングをどう学ぶか
まず、プログラミングを学び始める際に考えるのが、その学習方法です。
義務教育段階にあったり、高校生・大学生であれば、授業やインターンなど時間的制約に囚われない様々な選択肢があるでしょう。
社会人ともなると、基本的にはベースとなる仕事を抱えていますから、拘束時間外で出来ることが選択肢になります。
大まかに分ければ、「書籍学習」「学習サイト」「学校に通う」「短期集中講座の受講」などが挙げられます。
大体はこの中からどれを選ぼうかな……と考えていくのではないでしょうか。
しかし、ちょっと待ってください。
いきなりこれをやると、途中で挫折する可能性が大です。
特にプログラミングにおいては、この学び始めのプロセスが非常に大事になってくると私は考えています。
学習方法を選択する段階で1つだけ、明確にしておかなくてはならないものがあります。
それは、お金でも現状の知識でもなく、学習の「目的」です。
何故、プログラミングを学ぶのか
そもそも、プログラミングを学び始める人は、何故プログラミングを学び始めるのでしょうか。
字面を見ると、なんとも観念的な問にも見えますが、哲学的な話ではありません。
何かを勉強したいと思うということは、それを勉強したい理由が必ずあります。
ですが、どういうわけか人はその理由を脇に置いて、勉強することそのものが目的になってしまうことが珍しくありません。
「勉強することが何よりも楽しい」という人は、このやり方でも問題ないでしょう。
ですが、そういう人はそんなに多くないですよね。では、何が問題か。
困難に遭遇したときに、拠り所になるものが無く、挫折したり、学習意欲が低下する可能性が高くなるのです。
高校生から学んだプログラミング学習の基本マインド
創りたいという大前提
以前、別のお仕事でプログラミングを学ぶ高校生達とお話をする機会がありました。
彼らはプログラミングを積極的に学び、すでにインターンやアルバイトなどで企業の案件をこなしているレベルにありました。
中には、プログラミングを学びはじめてまだ1年くらいという子も居ましたが、彼らに共通していたのは「モチベーションの高さ」でした。
情熱を持ってプログラミングを続けられる原動力は何なのか。
私は、彼らに素朴な疑問を投げかけました。
彼らから返ってきたのはシンプルながらも洗練された答えでした。
彼らに共通していた「高いモチベーション」というのは、言い換えれば「創りたいものがある」ということでもあったのです。
つまり、
ではなく
ということです。
前者の考え方によって、学び始める人は少なくありません。
しかし、この手順で学びはじめると、困難な分野に直面したときに挫折してしまうのです。何故なら、学習の主目的が「学習すること」になってしまっているから。
そうなると、困難に打ち勝てない自分に嫌気が刺し、プログラミング自体にネガティブなイメージが付いて、学びをやめてしまうことがあるのです。
後者の考え方は違います。
もちろん、高度なプログラミングにいきなり挑戦するという意味ではありません。
創りたいと思っているプログラムも、無数のフレームによって全体が構築されています。
その無数のフレームを分解しながら、実際に手を動かして学んでいく。
例えば、新しいSNSメディアを創りたいのであれば、イチから全てを学ぼうとするのではなく、まずは「サイトのトップページのレイアウトを組んでみよう」「文言を表示してみよう」「ログイン画面をつくってみよう」という風に、一つ一つを形にしていくのです。
情報化社会の良いところは、このような定型フレームが簡単に検索できるという点ですね。
彼らも、分からない部分はインターネットで調べたり、詳しい人に聞きながら進めていくそうです。
システム開発を行うにあたり、用意されたプログラムのひな型(枠組み)。様々なシステムを創る中で、必要とされる頻度が高いものは、あらかじめフレームワークとして用意されている。
多くのWEBサイトで見かける「アイキャッチ画像がスライドしていくトップページのフレーム」「お問い合わせフォーム」などは、イチから自分で作らなくても先人たちが作ったフレームワークを使うことで実現可能です。
それぞれのプログラミング言語では、この様なフレームワークが無数に存在しています。
また、初心者にプログラミングを教える立場でもある彼らが言うには、「創りたいものがある人ほど成長が早い」ということです。
創りたいものがある人は、漠然とプログラミングを学びたいと考えている人よりも成長の速度が格段に早いのだそうです。
まさしく、漠然とプログラミングを学びたいなぁと考えていた私は、その甘さを痛感することとなりました。
最短4週間でWebアプリケーションを開発
躓きや困難も楽しむ気持ち
彼らのように、創りたいものに向かって試行錯誤しながらプログラミングを学ぶと、困難が喜びに変わります。
出来ないことに出会い、それを解決するということは、その度に自分が創りたいものに一歩近づけるということだからです。
こういった前向きな思考がモチベーションに繋がっていくんですね。
仲間を増やして相乗効果を狙う
その他にも彼らが大切なこととして挙げていたのは「仲間」の存在です。
プログラミングを学ぶ上で、わからないことが出てきたときに聞いたり、一緒にプログラミングを創る仲間がいるとモチベーションが上がるとのこと。
仲間というとハードルが高いようにも思えますが、ちょっとしたことを聞いたりできれば良いのです。
それこそ、現実世界で一緒に何かをするということが前提になるわけではなく、ネット上だけで完結する関係でも構いません。
- 何かを教えてくれるような「上級者」
- 互いに高め合えるライバル的な「中級者」
- こっちから何かを教えてあげられる「初級者」
繋がりはどういうものでも、学習する中で必ず助けになるそうです。
矢野和男氏(株式会社日立製作所 中央研究所)の著作である「データの見えざる手」には、”運”を上げる一つの方法論として「人との出会い」「コミュニケーション」を増やすということが、最新の研究データに基づいて非常にロジカルに記述されています。
この本で定義されている”運”とは、「確率的に起こる好ましい現象」であり、ビジネスにおいてより詳しく定義すると
「確率的に、自分が必要とする知識や情報や力を持っている人に出会うこと」
「データの見えざる手」p137より引用
人と関わり、コミュニケーションをとるという行為は、自分の”運”を上げることにも繋がるのです。
プログラミング学習で大切なコト
今回、彼らから教えて貰ったことは、プログラミングに限らず様々な学習においても言える大切なことです。
人は、漠然としたゴールに向かって走るよりも、明確なゴールに向けて走るほうが得意な種族です。
マラソンも、ゴールまでの距離が明確になっているから、ペース配分を考えながらゴールまで走り切ることが出来ます。
ゴールまで何キロあるかわからないけど走って下さい、と言われたら、自分の走りなんか出来るはずもありません。
だからこそ、自分のやりたいことを明確にするというのは大事なことなのです。
- 創りたいもの、やりたいことを明確に
- 何でも楽しむこと、困難は成長の源泉
- 繋がりを創り、仲間を増やす
実際にこれらを体現して、やりたいことへ向けて頑張っている姿を見ると、何よりも説得力があります。
今の高校生は想像以上に大人だな……
というよりも、目標をもって何かに取り組むことが、人の成長スピードを引き上げるのかもしれないですね。
プログラミング 無料体験