大人がプログラミンング教育の現状を知り成功パターンを理解する(特に組織の幹部達)

プログラミングの重要性をだれが理解するべきか

結論は、今の大人達、特には組織の幹部達です

いま世界で広くプログラミングの教育学習に使われているツール「Scratch(スクラッチ)」は子供たちが学習するものと考えている貴方(大人)へ、プログラミング教育の現状と現在の学習方法との共通点、相違点をまとめてみます。驚くべき進化しているエストアの現状につては別の機会にご紹介します。

2020年から小学校でプログラミングの必修化

2016年(平成28年)6月16日政府は、2020年から小学校でプログラミング学習の必修化を決めました。

プログラミング教育とは「プログラミングができること」が目的ではなく「プログラミング的思考」ができることを目的としていると書かれています。

しかし、一般的には「プログラミングができる事が有能な基本」として評価される時代になったことは間違いありません。

例えば、オリンピックは参加する事に意義があると言われますが、メダルの取れない国、選手は評価されていない現実もあります。

この記事は、世間は、そんなには甘くない事をご理解頂いている方を対象としています。

「プログラミング」は、学習塾に次ぐ順位

実際に2018年には習い事として「プログラミング」は、学習塾に次ぐ順位へと上昇し、やがては現存する学習塾のような「現代文や数学や英語長文、歴史の記憶など」有名大学に合格するための解法のテクニックを教える学習塾は特殊な存在となり、「自力で創造できる力」が学力であると再定義されました。

その再定義による質的変換を起すのがプログラミング学習であり、子供達への習い事として、今後一番上位になる、又はしているのが、現在の大人達ですが、実はその大人達こそがプログラミングを理解することが重要な時代です。

プログラミングが導入された理由

義務教育にプログラミングが導入された理由としては、身の回りのあらゆるモノがインターネットにつながるIoTや人工知能(AI)の活用が広がり、技術的特異点(ぎじゅつてきとくいてん、英語:Technological Singularity)、またはシンギュラリティ(Singularity)という未来学上の概念が現実化する今、「創造的に問題を解決する力」がこれからの世代にとって必須だと考えられているからです。

プログラミングの一般的認識の現状

ただ、すぐそこに、そんな未来が来ているにも関わらず「小学校からプログラミングを学んでどうなるのか」と感じている状況がまだ一般的な認識であり、大人である自分が、本や話には聞くが自ら学び直しするなんて認識は皆無に近いのが現状です。

1)大人がプログラミングを学ぶ必要性

学力の定義が「自ら計画、創造していく力」に再定義されたことです。つまり、生きる力や仕事の能力がプログラミング力に再定義されたということです。

ここがポイントです。

注意しないといけないのが、環境変化に対応できないのは子供達でなく我々大人達なのだということです。

今求められているコミュニケーション能力が「あらゆるジャンルの対象」に対して「どのようにデジタル化、自動化するのか、又はあえてデジタル技術をアナログ的に感じてもらうか」の検討を行うコミュニケーション能力が重要です。

そんな時代に入ったにも関わらず、「社内の部下や上司や役員やOB会」で社内情報の収集能力できる事をコミュニケーション能力だと勘違いしている組織の幹部(大人)がまだ多く存在していることが非常に痛いところです。

→対策は

原則ビジネスの上ではその様な無駄は一切関係を断つことが正しい選択です。ここでも「嫌われる勇気」が必要となります。

すくなくとも「好んでその集団に入らない」ことが大事になってきました。

ルールや仕組みをデジタル処理する為の能力とその為に継続して考える力を伴わなずに、単に上司からの引き上げで幹部になる時代は終わました。

プログラミングによる自動化の変化は猛スピードで拡大される今、その準備、認識は大人(特に組織幹部、候補)にこそ求められる時であり、子供達の問題ではないと言うことです。

それでは何を学び直しすべきか

①論理的能力を学び直しする

→PDCA

・計画する(目的、目標)(Plan)
・問題点の整理、対策立案(Do)
・進捗確認(Check)
・修正する(Action)

これは大人(組織幹部、候補)が常に要求されていることですが、型をもう一度、順番に確認することが大事です。恐らく80%の方はいい加減に取り扱っています。

「改善活動」を推進する幹部達も今後求められる改善のノウハウを持っていいるとは言えません。先ず自ら「能力が無いこと」を認め、自らの変革お優先しなければならない時代です。

②PDCAをプログラミンング的に表現する

→ロボットを動かすこと
・計画する(Plan)

例)A地点で右折、真っすぐ50cm南下し、B地点左折させて50cmで止める

・問題点の整理(Do)
「A地点で右折させる」「50cm進ませる」「B地点で左折させる」「50cmで止める」です。

・進捗確認(Check)

動かしてみて問題のある部分を確認する

・修正する(Action)

問題のでた部分、例えば右折の角度が悪い、40cmしか南下しないなどの部分のプログラムを修正します。

そして、これらのPDCAを繰り返して目的・目標を達成させる為にプログラムを修正することが再度フォーカス(改めて重要視)されてきます。

また、再度フォーカスされる中で勘違いしてしまう幹部達がいます。つまりエクセル、PPT(パワーポインター)、VBAマクロ、スマホ利用、インスタグラム、ツイッター、フェイスブックを使いこなすことが今後の環境に対応できていると高をくくっている方々です、

使いこなすのでなく、利用しているツールがどのようなスキルで作られているかを実際に学び基礎から経験することが重要だという認識に至らない組織幹部達です。

また、プログラミングを本で読んで理解したと勘違いしている方々です。まったく無意味です。重要なことは、プログラミングを自分で書いて、どこでプログラムが動かないのかという原因を突き止めて修正することだからです。

スポーツの本を読んでもスポーツは全くできないわけです。ゴルフの本を読んでもゴルフを理解したことにならないことは理解できていてもプログラミングは自分でなく「子供達」には必要で自分には関係ないと思い込んでいる幹部達やそのことにも気づいていない方々はもう完全に時代錯誤だという認識が必要です。

→対策

無駄な付き合いは放棄して、今後の共通言語であるプログラミングを経験し書いてみて理解して、プログラミングを理解した幹部達が自動化、効率化の事業展開する場合にはどこが問題になるかのPDCAをコミュニケーションし実行することです。

③プログラミングを経験してみる

本を読んで知っていると勘違いしているかたも多くいると思いますが、上述したとおりプログラミングは書いてみること以外に理解することはできません。子供たちはもう小学校からその教育を受け正しいPDCAを理解していきます。

現在、中学生以上の人は中途半端な時代に生きています。難関大学合格の為に従来の学習塾通い、受験テクニックを記憶するという本質的に必要のない時間を消費するからです。

→対策

ブランドとしての難関大学を目指すのではなく、プログラミング学習の強い高校、大学を選択し、そのスキルを更にレベルUPできる会社に就職しスキルを磨き独立する。この生き方が、再定義された今、日本だけでなく世界中で実践されている成功パターンです。

2)大人がプログラミングできるメリットは

①老後の生活費に対する心配を削減させる技術が得られる

自分の経験やスキルをデジタル化できれば副業がでスキルの公開により老後の生活費に心配がなくなります。また本業化できれば無駄な上司から解放され、通勤ラッシュから解放されます。

これは夢ではなく、BYTIF(ブログ、ユーチューブ、ツイッター、インスタグラム、フェイスブック)の何れか、または複数を3年間継続して毎日書き続けることができれば、その夢は必ず実現できるのが現在のネット社会です。

現在のネット社会では、自分のもつ体験や知識がBYTIF(ブログ、ユーチューブ、ツイッター、インスタグラム、フェイスブック)により拡散できるようにPDCAを構築し、プログラミング力により顧客のクリック(または音声指示他)だけで相手にサービス、情報、商品が届けられるという付加価値を確立すれば良いわけです。

また、その確立のための初期費用は30万円程度ではないでしょうか。パソコン、スマホはほぼ全員お持ちですので、あとは独自ドメイン(年間数千円)、プログラミン知識の導入書籍(4冊1万円)、WEB学習費用(25万円前後)、WordpressなどでWebサイト構築(年間4万円前後)で開始できます。

クリックする顧客は、あらゆるロングテール情報へのアクセスが可能な状態になったことでニッチでも便利なサービスを構築できれば大きなリスクなしに富を得られる時代にパラダイムシフトされたと言えます。

②老後の長い時間を有意義に使える

人生100年時代に突入した今、収入を得なければならない年齢は60歳から65歳へさらには75歳といわれていますが、健康年齢が90歳になれば少なくとも30年は頭を使って生きる必要性が発生してきたわけです。

蓄積されたその経験やノウハウをブログ、ユーチューブなどBYTIFで発信する大人のほうが世代を超えて共感され自分の喜びにも変わり、ますます有意義に暮らすことができます。

③経験した内容やアイデアをプログラミングしてサービス化する事で稼ぐ

現在の年金制度は破綻はしない保険の制度ですが、年金額は減少する可能性はあります。保険ですので当然なわけです。たくさんの年金が欲しければ、若いときからたくさん支払えばよいだけですが、払わずしてたくさん欲しいというわけにはいかないのが現実です。

そこで今あるスキルを情報に変えることで稼ぐ仕組みを構築すれば良いわけです。その仕組みの構築にはプログラミング力が不可欠ですが、外注するにも最低限度の理解は必要です。

3)プログラミングで挫折する理由

①エクセルができるからと勘違いしている

エクセルでかなりの大規模分析ができる事やVBAマクロで自動化プログラム少し理解できる事やパワーポインターでプレゼンできること、スマホでいろいろ情報を入手できることができても全くプロミングは歯が立たないのが現実です。

ゲームで遊ぶことができてもゲームを作れないのと同じことです。本を読めても作家にはなれないのとも似ています。アイデアマンでもそのアイデアをビジネスモデル特許にまでのアイデアではないこととも似ています。英語の文法を知っていても英会話はできない、英会話はできてもビジネス会話はできないのと同じでしょう。

基本的には全て「一からの学び直し」の覚悟が必要です。小学生にも簡単に負けることを覚悟する必要があります。ただし、一番早く身につくスキルでもあります。現に小学生でもできてしまいす。特別な才能なんて必要なく、単に「学び直し」する覚悟と継続力だけが必須事項だと思います。文系も理系も関係ありません。やる気持ちだけです。

②独学でしようとする

私も、2年間は迷いに迷いJAVA,C#,PHPの本を色々読みました。また関連する本に書かれた「プログラミングは書かないと理解できない」と誰もが書いてあるなか、プログラムを書かずに本だけ読んで独学しようとしました。

この2年間が意味がなかったわけではなく寄り道した結果、独学では、これ以上理解はできないと判断しTECKACADEMYの「フロントエンドコース」でHTML,CSS,Javascriptの知識を3か月で手に入れることに決めました。

たったの3か月での進歩は計り知れないレベルになれます。当然プログラミングは初体験ですが、事前に本で色々知識は入れながらも実際は全く書けないので苦労したのは間違いありませんが、たったの3か月間です。

渡りきる覚悟があればWeb上のテキストとメンター(指導担当者)に従い10課題を提出するなかで本当に多くの気づきをします。細かなことで言えば、タグ「<div>」1つ抜けているだけでプログラムが動かないことに衝撃を受けます。どこが抜けているのかがわからず非常に焦る場面に遭遇しますが、その焦燥感はチェックする力を付けてくれます。ある意味必要な失敗で誰もがする通過点でもあります。

③独学のプログラミング学習には課題提出期限がない

先ほど書いたように、タグ1つが抜けているだけで動かないわけですから頻繁に頭を抱えます。「なぜ!?」「どうして?」「どこがダメ?」を繰り返すことが論理的思考を鍛えます。

会社でもよく言われました。改善策は「なぜ、なぜ、なぜ」を3回繰り返せと。

会社では会議で発表する機会や期限、上司がいて自分を追い込む必然性がありますが、独学でのプログラミング学習ではそこがなくつい延期して挫折してしまいます。

ところがWebスクールに加入すると提出期限が10回(コースにより少し変わる)設定されていて課題に合格しないと次に行けず、さらには3か月間という期限内しか教えて貰えないという締め切りがあることで自分を追い込むことができます。

4)プログラミングと現代文の共通点と相違点は何か

①共通点は、「ルールの厳守」

・プログラミング言語のルールは絶対

プログラミングは1から100迄全て段取りしていなと動かないという驚くほど融通の利かない作文をしなければなりません。1から100の内、1つでも抜けていたらダメなわけです。恐らく何よりも十分にPDCAを回さなければならないプロジェクトです。

・作者の意見に基づき解答するルールことが絶対の現代文に似ている

プログラミングは国語の現代文と同じでプログラミング言語のルールが絶対です。現代文では作者の意見が絶対ですが、プログラミングは間違うと動かない為、直ぐにわかるところが行き詰まる点でもあり、わかりやすい点でもあります。

解決策は3つあります。1つ目はメンターに確認する、2つはデベロッパツールという機能を活用し自力で修正する、3つ目は両方で解決するです。

・計画、実行、確認、修正のPDCAルールに基づき非論理的な試行錯誤により論理的能力を高める

ビジネスもプログラミング学習でもスポーツでも試行錯誤せずに上手くいくことは現実的にはありません。いかにたくさんの間違いや失敗をすることで気づいた数や内容の量が勝負です。論理的思考力は非論理的な試行錯誤で培われ強化されることは真実でしょう。

②相違点は

・プログラミングは、自分が作者であり、絶対的な立場になる

現代文を作者の言いなりに対して、プログラミングが自分が作者になる為の有益な道具です。自分で定義したボタンは定義した以外の動きは一切しないわけで、自分の決めた内容をボタンクリックするだけで自動で行ってくれた時の爽快感は代えがたい快感です。

どんなものより従順で、役割をしっかり果たし、文句も一切いわないものを自分で創造できるわけですから、これは素晴らしいの一語に尽きます。さらに自分のプログラミング力を強化していけば自分の何億倍もの役割を果たせると考えればわくわくせざるを得ません。

・プログラミングは、現代文を全てを表現する

自分次第でしょうが、恐らく

・プログラミングには、まったく異なる他の言語も必要となる

現代文は日本の作者の意見と質問の理解であり、当然ながら全て母国語ですが、プログラミングは少なくてHTML,CSS,Javascript、PHp(又はRuby)、MySQLの5言語があればほぼオールマイティでしょうが、少なくとも前の3種類は必須と言われています。

6)プログラミング言語の基礎

HTML

HTML(エイチティーエムエル、HyperText Markup Language)は、Webページを作成するために開発された言語です。 現在、インターネット上で公開されてるウェブページのほとんどは、HTMLで作成されています。

CSS

CSS(Cascading Style Sheets、カスケーディング・スタイル・シート)とは、ウェブページのスタイルを指定するための言語です。 ワープロソフトなどで作成される文書も含めて、文書のスタイルを指定する技術全般をスタイルシートといいます。 HTMLやXHTMLなどで作成されるウェブページにスタイルを適用する場合には、スタイルシート言語の1つであるCSSが一般的に利用されています。

javascript

JavaScript(ジャバスクリプト)とは、プログラミング言語のひとつである。Javaと名前が似ているが、全く異なるプログラミング言語である(後述の#歴史を参照)。

ウェブブラウザ上で動作し動的なウェブサイト構築やリッチインターネットアプリケーションの開発に用いられる。また、2010年以降はnode.jsなどのサーバサイドJavaScript実行環境や各種ライブラリの充実により、Web開発の全ての領域で活用されるようになってきている

PHP

PHP(ピー・エイチ・ピー)は “The PHP Group” によってコミュニティベースで開発されているオープンソースの汎用プログラミング言語であり、特にサーバーサイドで動的なウェブページ作成するための機能を多く備えていることを特徴とする

処理系としての特徴

  • サーバーサイドWebアプリケーション構築のための豊富な組み込み関数
  • データベースへの容易なアクセス

MySQL

オープンソースで公開されている関係データベース管理システム(RDBMS) の一つである。

市場シェアではPostgreSQLなどの他のオープンソース・データベースを圧倒している。日本でも2009年になってPostgreSQLを超えるシェアを獲得している。

7)プログラミングで培われる能力は

①自分で定義する力

関数を定義する力に尽きます。簡単な関数の説明はy=F(x)

F()は、ルールや指示内容です。xはあるものです。yは、xをF()というルールの中に入れたときF(x)となり、そのF(x)をyと呼びますということです。数学で学んだ記憶があると思います。

最終的に自分のしたいことを実現するために色々定義していく、決めていく力が必要です。誰も助けてはくれません。

②動かない場合に何故かを問う問題発見力

定義し内容は原則、上から順番に流れていきます。実際のプログラミングではF()のほかにF1()、F2()・・などたくさんの関数を自分で定義したものが絡み合い流していくなかで、設定が間違っているものがあると何も流れなくなります。流れない理由としては自分で定義した内容のほかにタグを1つ書き忘れていた時も同じです。

ここが論理的能力を鍛える場になります。その鍛え方は1つ。「なぜ、どこが」を自問し問題を発見する方法です。単純ですが、自分で定義したものが動かないわけです。これは100%自分の責任です。今までなら問題を考えた先生が間違っているかもしれないという場合もありうるのですが、プログラミングの場合は自分の責任です。

この自問自答を繰り返すことが一番の論理的思考力を強化するわけです。論理的思考は非論理的思考の繰り返しでしか強化されないわえでその意味ではプログラミング学習は最強の教材と言えます。

③小さなたくさんの成功体験を得る

ほんと小さなことでもプログラムは動かなくなりますが、小さなことでも、いくら考えてもわからない場合がありますが、気分を変えたりメンターがいると思えば知らず知らずのうちに思いのほか急に気づき解決できます。

小さな成功体験をたくさん経験することでわからないことに対して向き合う勇気や忍耐力も自然と培われます。また大きな問題も小さなことに分解して考える力と1つずつ解決することで問題の要因が理解できるため、問題発見と解決力が同時に養成されるところが非常に本質的な部分です。

8)プログラミングのできる人の傾向

①課題発見力や解決力が強くなる

大きな問題を細かく分解する論理的思考力と問題解決力があり、かつ忍耐力も備わるはずです。

②現実社会の遅れに拒否反応を起こす

自分で定義したルールがボタン1つで動く経験や自動化の感覚の芽生えが、人間の適当な感覚にあきれて拒否反応を出す場合が多くなる可能性を感じます。

なぜ、「自動化しないのか」、なぜ「こんなに時間がかかる」のか、なぜ「わざわざ面談しにいかないといけない」のかとか今の世界では当たり前の無駄な対応に対してのイラツキはどうしても多く発生させるかもsれません。

③上位者である意識が高くなる

これからの時代で一番重要な要素は「自分で定義できる力」であり、かつ小さな定義の集積体をいくつもつながせてサービスを完成させることのできるプログラマーは、怖いものがなくなるかもしれません。

昔は、難関大学をでた偏差値の高い秀才達が医者や財閥系の一流企業に就職し、またマスコミや官僚や政治家となり、そこでの連携が一部の人たちの情報独占を生んでいた1980年以前とは違い、あらゆる情報や知識はグーグルで検索ができる時代において詰め込み式の知識は価値を失ったわけです。

自分でサービスを生み出し自分で発信するツールが無料で利用できるインフラが整理された今、自分で考えたアイデアをプログラミングできるプログラマーになれば最上位に位置にいると考えることは当然のことでしょう。

学歴不問が標準化するなか「あなたはどんなサービスを提供できるプログラミング力がありますか」の1点だけの質問でよくなります。学校の先生も必要なく、わかる人に自由に学べる非常にシンプルでわかりやすい時代がそこに訪れています。