ブログ,プログラミング

実際のところ、現在行われている
プログラミングの学習方法や教育方法に
関しては、現在もまだ試行錯誤は
続いています。

教育手法の成果は短期間で判断できないものも
多いので、「このように教えれば最適だ。
完璧だ。」といった、100%の正解は
まだ存在しません。

一般向けのプログラミング教育は、
始まって数年なので、受講の第一期生も
現時点でまだ20代前半です。

彼ら・彼女らが今後、受けてきた
プログラミング教育の成果が発揮されるまで
にはもう数年必要なのかもしれません。

そういった意味で、学校で習っているような
数学や国語、物理といった、歴史の長い
学問よりも、学習方法に関する経験値が
少ないのは事実です。

しかし、その一方で、プログラミングに
関しては、その必要性が非常に高いことも
あり、世界規模・数千万人単位で
さまざまな実証実験や研究が行われています。

このため、改善のスピードが驚異的に
速く、徐々にその成果も表れはじめています。

ブログ,プログラミング

プログラミングの教育という面からみると
どうでしょうか?

世界に目を向けてみると、イギリスや
フィンランド、オーストラリアでは
すでにプログラミング科目が小学校から
必須科目になっています。

韓国でも中学校から授業に取り入れられる
見込みになっています。また、アメリカには
実践的なプログラミング・スキルを学ぶ
ことのできる学校が多数存在します。

これほどまでに、世界中でプログラミング・
スキルが求められているのです。

一方、日本の状況はどうかといううと、
近年までは、小中学校でプログラミングを
教えることはまれでした。

高校でも「社会と情報」といった科目に
よる一般常識程度、大学ですら理系の学部に
進学しないとカリキュラムとして
プログラミングを学ぶ機会はありませんでした。

このような状況が、日本の「エンジニア不足」の
大きな一因となっています。

そのため、国家プロジェクトとしてスキルのある
エンジニアを育てることが急務の課題として
挙がってきています。

このため、日本でもいよいよ、2020年から
小学校でのプログラミング科目の義務教育化が
検討され始めましたが、2017年現在、
教えることのできる教員があまり存在しません。

このように、世界単位、かつ政府主導で
「プログラミング・スキルの養成」が
一大プロジェクトとして動き始めています。

ブログ,プログラミング

プログラミング教育の話題となると、
新聞や雑誌が取り上げる対象の中心となるのは
小学生や中学生であることが多いのですが、
その学習メソッド(方法)は、当然、大人に
対しても有効です。

小学生や中学生にのみ有効であるようなもの
ではありません。その内容は日々進化して
います。

プログラミング・スキルを、より効率的に、
より効果的に習得できるように、さまざまな
研究が行われ、それが学習メソッドに
反映されています。

このことから、実際にどのような教育が
行われているかを知ること、および最新の
学習メソッドで学ぶことは、大人も子供も
関係なく、「はじめてプログラミングを
学ぶ人」すべてに有効です。

この点はぜひ覚えておいてください。

小学生に混じって授業をうけることは
さすがに抵抗があるとは思いますが、
今では社会人向けのプログラミング
習得セミナーや、無料で使えるアンライン
学習サービスもあるので、ご安心くださいね。

社会人の一般教養として、プログラミング・
スキルを習得したい人、プロのエンジニアを
目指す学生さん、定年後の新しいチャレンジと
してプログラミングを習得したい人、
それらすべての人にとって、最新のプログラム
教育は活用できます。

ブログ,プログラミング

5.アイデアを実際の形にできる

日本を代表するソフトウェア技術者の一人で
あり、プログラミング言語「Ruby(ルビー)」の
設計者でもある、まつもとゆきひろ氏は
「プログラミングはコンピュータへの翻訳
作業ではなく、自身のアイデアを表現する
もの」といっています。

アイデアをプログラムへ落とし込むことで、
思考が整理され、さらにルールさえ作って
しまえば、コンピュータが自分の代わりに
作業してくれるなど、自身の力を何倍に
拡張できるのが、プログラミングを学ぶ
ことの最大のメリットの1つです。

プログラミングを学ぶということは、
100年前にはあり得なかった次の3番目の
方法を使える時代になったということです。

1.自分でやる
2.人にやってもらう
3.コンピュータにやらせる

自分でプログラミングをしない人(他人の
作ったソフトウェアを使うだけの人)は、
誰かが決めたルールや、誰かが決めた
仕組みの中でしか作業したり、遊んだりする
ことしかできません。

一方、プログラミングを学べば、その世界
(ソフトウェア)のルールや仕組みを自分で
決められます。

大切なことは、アイデアをプログラムへ
落とし込む際の肝となる「考え方」や
「実現方法」を、みなさん自身が
”イメージできる状態”になることです。

プログラミングを学習することで、表現力や
コミュニケーション能力、検索力(必要な
情報をインターネットから探し出すスキル)
など、今後を生きていくために必須となる
さまざまなスキルを得ることが可能です。

未分類

4.問題解決力が身につく

プログラミングを学ぶと「問題解決力が身に
つく」とよくいわれています。

なぜなら、何らかの問題や課題をコンピュータを
使って解決するのは、あらゆることを正確に
把握したうえでコンピュータに指示しなければ
ならないからです。

問題や課題の内容には大小がありますが、
解決に至る工程(ルート)は、おおむね
次のとおりでしょう。

問題の認識→情報収集→分析→
方針の検討→実行

この工程に、行動力やコミュニケーション能力
などが加わって高い問題解決力につながって
きます。

プログラミングの作業工程には、前記の
問題解決の工程と重なる部分が多くあります。

そのため、「プログラミングを学ぶこと=
問題解決をシミュレーションすること」となり、
継続的にプログラミング学習を繰り返すことに
よって問題解決力が向上していくのです。

問題に対する解決実現方法は1つでは
ありません。何通りもあります。答えが
1つしかないのは、受験勉強までです。

こうした”考える作業”を繰り返すことに
よって、問題解決力が継続的に向上して
いきます。

「プログラミング」というと、コード
(複雑な文字列)を書くイメージが強い
のです。

しかし、実際には「問題を解決するための
仮設作り」や「より良く実現するための
仕組み作り」「矛盾しないためのルール
設定」といった”実現するための方法”を
考える時間のほうが圧倒的に強いです。

ブログ,プログラミング

3.論理的思考力(ロジカルシンキング)の向上
  全社会人に必須のビジネス基礎力の1つで
  ある論理的思考力(ロジカルシンキング)は、
  一般的には、頭の中で考えていることを紙に
  書いたり、相手の立場になって物事を考える
  ことによって鍛えられるといわれています。

  論理的思考力(ロジカルシンキング)とは、
  端的にいえば「物事を、筋道を立てて
  きちんと考える力」です。

  この力はプログラミングを学習することで
  必然的に身につきます。

  プログラミングとは、実作業においては
  「小さな命令をいくつも組み合わせ、
  全体で何らかの目的を達成する作業」です。
 

  そのため、プログラミングの学習を進めて
  いくと必然的に、論理を組み立てることが
  トレーニングされ、論理的思考力の向上に
  つながります。

  コンピュータを使って自身の頭の中にある
  イメージを具体化するには、「どのように
  指示をだすのか」「どのように表現すれば
  よいか」を考えながら、形にしていくことが
  求められます。

  そのため、プログラミングを学習する過程で
  論理的思考力や表現力が高まります。

ブログ,プログラミング

2.世の中の仕組みを理解できる
  ITがここまで普及した時代において、
  コンピュータの仕組みを理解していない
  ことは、すなわち世の中の仕組みを
  理解できないことに直結します。

  現在では、電気、水道、ガスはもちろんの
  こと、自動車や医療機器など、ほとんどの
  ものがコンピュータによって管理・制御
  されており、ソフトウェアがないと
  世の中が動きません。

  そのソフトウェアを生み出すスキルである
  「プログラミング」は、世の中の仕組みを
  理解する上で不可欠といっても過言では
  ないでしょう。

ブログ,プログラミング

1.新しい考え方を習得できる
  Appleの創業者スティーブン・ジョブスは、
  プログラミングを学ぶことん重要性に
  ついて、次のように語っています。

  
  アメリカ人は全員コンピュータの
  プログラミングを学ぶべきだと思う。

  なぜなら、コンピュータ言語を学ぶ
  ことによって考え方を学ぶことが
  できるからだ。

  ロースクールに行くようなものだよ。

  全員が弁護士になるべきだといわないけれど、
  現実にロースクールに通うことは人生に
  役立つはずだ。

  一定の方法で物事の考え方を学べるからね。

  実際にスティーブン・ジョブス自身も
  「プログラミングから”考え方”を学んだ」と、
  Code.orgのどうがのなかでいっています。

ブログ,プログラミング

プログラミングを学ぶことの直接的な
メリットは「プログラミングすることによって
新しいソフトウェアやアプリケーションを
制作できる」というものですが、それだけ
ではありません。

プログラミングの基礎を学ぶと、論理的
思考力(ロジカルシンキング)や問題
解決力などが向上することがわかって
います。

ITリテラシの向上も大きなメリットの
1つでしょう。

これらのスキルはエンジニアに限った
ものではなく、子どもから大人まで、
広く一般的に身につけておくべき
「基本スキル」です。

次回から、プログラミングを学ぶことの
5つのメリットについて書いていきます。

ブログ,プログラミング

プログラミングの楽しみは、下記の3つが
挙げられます。

(1)課題をクリアしたときの達成感
   プログラムを作る作業は、難しい数学を解く
   過程に似ています。

   難解な問題を解くにはたくさんの公式が
   必要ですが、それらをうまく組み合わせて
   正解を導く楽しみ、よりスマートな解き方が
   見つかったときの喜びは、課題が難しいほど
   大きいものです。

   同じような達成感をプログラミングでも
   得られます。

   プログラミングでは、思った通りに
   動作しないことがほとんどです。

   突然ひらめいたアイデアを実行して正解した
   ときの達成感は、ふだんの生活でもなかなか
   味わえません。

(2)充実な子分ができる喜び
   パソコンを使っていると、たとえば複数の
   Excelファイルをひとつにまとめたり、
   写真を人物ごとにカテゴリー分けしたりなど、
   同じ操作を繰り返す場面があります。

   プログラムを作れば、そうした作業を
   パソコンにまかせてしまい、自分は自由に
   時間を使うことができます。

   自分は、実行の命令を出すだけで、どんなに
   量が多くて単純な作業でもパソコンが
   終わらせてくれます。忠実な子分ができた
   ようなものです。

(3)アイデアが形になる楽しさ
   プログラミングは、設計から完成まですべての
   工程を自分で行えます。そのプロセスは料理を
   したり、日曜大工で家具を作ったりする感覚に
   似ており、クリエイティブな行為といえます。

   「もっとよくしたい」という欲が生まれ、
   それがさらなる進化につながって行くのも
   同じことです。

   何か作るというのは、クリエイティブな行為
   です。プログラミングも同じで、産みの苦しみ
   から完成したときの達成感まで味わうことが
   できます。