見出し画像

プログラミング教育に大切なこと

最近、英語に続きプログラミングを社員に求める楽天の記事をみました。

具体的にどう社員をトレーニングしていくのかは分かりませんが、おそらく、構文や関数などの基礎から勉強していくのでしょうか。外部トレーニングとかでやるとしたら、すごいお金かかりそうですね。。

基礎から学んでも楽しい人もいるかもしれませんが、私は基礎ばっかりやっていたことがあり、例えば、文字列操作、if/for/while文、関数、など勉強して、なんとなく理解できたけど、結局「それで?何つくれるの?」ってなることが殆どでした。作るものの具体的なイメージが沸かないというか、面白くなくて続かず、、みたいな。。30歳くらいから5〜6年くらいずーっとそんなことして挫折しては「向いてないのかなぁ」と諦め、でももう一度チャレンジし直すといったことを繰り返していました。楽天の方々も私みたいな状態にならないといいですが。。

未だにソフトウェアで本当に役に立つものを作ったと言えるレベルでもない私ですが、やはり「この問題を解決したい」「これを自動化して楽したい」「こんなものを作ってみたい」ということからスタートして先ずは何かを実際に作ってみるのが一番学べる&モチベーションあがるし、何より楽しいと思います。

150人くらい目覚めたら、相当なインパクト

1万7000人もの社員がいる楽天で、全ての社員がプログラミングに興味を持つことは無いと思いますが、最低限のプログラミングリテラシーを持ち、ソフトウェアの中身を理解しておくことを義務化することは良い取り組みかと。また、その中で約1%(150〜200人くらい)の社員がプログラミングに目覚めれば、そのインパクトはかなり大きいです。
 プログラミングに関わることで、ソフトウェアでの仕事効率化はもちろん、論理的思考力が高まり、プログラミング脳になることで如何に効率よく作業するかを考える力が身につくと思います。さらに今後需要が高まる機械学習、深層学習などの人工知能テクノロジーをキャッチアップもできるようになるだろうし、社内ソフトウェアカンパニー作ったりしてしまうのもありかもですね。 英語も義務化しているから、レベルや実態はわからないけど、グローバルカンパニーとして今求められるスキルを伸ばしていきそうです。

ソフトウェアが動く仕組みが分かると、テクノロジーをアルゴリズムの部分からより深くから理解できるので、とても勉強になるし、これからのテクノロジーをどう活用するかも含め、世の中の見え方が変わってくるのではないでしょうか。

小学校でどうやってプログラミングを教えるか

2020年からプログラミング教育が全ての小学校で必修化されるらしいです。プログラミング教育は必要か不要かという議論は不毛で、やらないよりやったほうが良いに決まっています。ですが、誰が教えて、どう教えるのか、何を教えるのかが重要でしょう? 教師が教えることになるのだろうけど、付け焼き刃のスキルで表面的に教えても、優秀なプログラミング教育ができるとは到底思えません。

最近では教師向けのプログラミング教育も話題になるようになってきたものの、やはり、”プログラミングを教える”という考え自体がなんだかしっくりこない。例えば、図画工作で自由課題があったとして、教師は何を、そして、どのように作るかを生徒に教えるのでしょうか。おそらく、生徒たちは自分たちの作りたいものを自由な材料と自由な発想で作るでしょうし、プログラミングはそれに近いと考えています。
 具体的に何か作りたいものを作る、それを教師はサポートする程度が最も効果的でしょうか。週に何度も授業が必要ってわけではなく、週に1回でもいいから、ゲームを作る、ロボットを自由に動かす、グラフィックを描く、など実践的で内容が濃くて、楽しい授業が理想的。本当に楽しければ、子どもたちは自らプログラミングやるはず。なんせゲーム感覚ですから。あと、ないとは思うけど、座学でだらだら構文とかだけは教えるスタイルは絶対にやめてほしいですね。

エンジニアは不足しているのか?

世間ではエンジニア不足という言葉が溢れかえってるようですが、これって本当なんでしょうか?

一応ITエンジニアとして15年ほど働いている私の個人的な感覚だと、凡人エンジニアの自分が言うのは説得力に欠けますが、本当に足りないのは「優秀なエンジニア」だと感じます。まあ、もちろんエンジニアの数自体が増えれば、優秀なエンジニアも増えるのだけど、重要なのは、素晴らしいソフトウェアやシステムは、一部の優秀なエンジニア達によって作られているということ。また、人海戦術的な労働と違って、優秀じゃないエンジニアが大量にいても、グレイトなソフトウェアはいつまで経っても作れるものではないってこと。
 じゃあ、優秀なエンジニアはどうやって生みだされるのか? これは、私が教えて欲しいくらいで、非常に難しい問いになってしまいますね。。ただ、個人的に思うには、小学生、中学生の段階で高い算数力・想像力を身につけ、高校生くらいで自信を持ってその分野が得意だと言える人材を発掘し、その後は、コンピューターサイエンスをおもいっきり学ばせるのが良いのではと思います。要はプログラミング教育が大切ってことではなくて、基礎学力、算数力、論理的思考力をしっかりと身につける教育、それが得意な生徒を発掘することが最も重要なのではないでしょうか。

教育者でもないエンジニアの独り言ですが、また何か思うことがあれば書きたいと思います。ではでは。


今回の"note"を気に入って頂けましたら、是非サポートをお願いいたします!