ボクココ

個人開発に関するテックブログ

私の考える最高のプログラミング教育

ども、@kimihom です。

エンジニアの方でプログラミング教育に深い関心を持っている方が多いようだ。私も、未来のエンジニアを増やすためにどうしたらいいかみたいなことはよく考えていて、本記事ではプログラミング教育に関する持論を展開していこうと思う。

プログラミングはどうしたら身につけられるか

何より私自身がエンジニアであるので、どんな時期に自分のエンジニアスキルが急成長したかはだいたいわかる。私が一番成長できた時には、その技術を学んで使わなければならない明確な目的があった。例えば Web アプリケーションで作りたいアイディアがあるから、そのために必要な Rails を習得したし、それを公開するために必要な Heroku の知識を学んだ。作りたい Android アプリがあったから(私が Androidユーザー)、 Java を一から学び直した。

このようにエンジニアとして飛躍的に成長するには、勉強する理由が自分から沸き起こるモチベーションでないといけないと思う。学校の授業のように受け身の姿勢のままでは、いつまで経っても教養の範囲を超えることができない。

プログラミングの場合は、誰でもすぐに始めることができる。誰だって自分のノートPCにプログラミング環境をインストールして "Hello World" のプログラムから書き始めることができる。最近はWeb上で全部できるようなサービスもあるので、ブラウザで特定のページにアクセスして始めるケースだってある。プログラミングの学習は誰がどんな状況でも始められる魅力がある。

特にプログラミングの世界ではそうだけど、新しい情報がとても大事になってくる。今まで実現が難しかったような技術が、新しい技術で一瞬で解決されることだってあるし、Alexa のような今まで実現不可能だった技術を扱えるようになったりする。そうした技術を習得することで、今まで実現できなかったようなことが実現できるようになる。

であるにも関わらず、プログラミングを受け身の姿勢で学ぼうとしている人が多すぎるように見える。誰かから教えてくれるってのは学校教育で慣れているものだからってのがあるけど、プログラミングの世界ではその程度のレベルでは例えプログラミングのテストで100点が取れたとしても優秀だとは言えない。プログラミング系の資格が色々あるけど、それを持っているからといって優秀なエンジニアであることの証明にはならないのだ。受け身で得られたスキルは最低限の一般教養があるくらいの参考情報に過ぎない。それよりも、新しく出てくる技術に対して貪欲に主体的に学び続けられるスキルが何より重要だ。

次の世代に向けて自発的な学習をどうやって増やすか

私はそうした考えを持っているため、プログラミング教育っていうもの自体に懐疑的である。そもそもプログラミングは誰かに"教えて"もらうのではなく、自分から"学んで"いくものであるべきなのだ。

その人がアプリ開発に興味があるなら Swift や Kotlin などの勉強から始めてもいいだろうし、Web であれば HTML、機械学習なら Python といったように目的によって最初のスタートが分かれる。未来のエンジニアを生み出したいと願う私たちに必要なのは、彼らにそれを学びたいと思ってくれるようなモチベーションの提供と、その入り口の指南をすることのように思う。

特に私は前者のモチベーションの提供が大事だと考えている。実際、モチベーションさえ持てば、私たちがプログラミングの入り口を指南することをせずとも、彼らは勝手にインターネットで検索して勝手に学び始めることができる時代になってきている。だからこそ、なぜプログラミングを学ぶのかってところをいかに訴求させるのかに関して私は最大の課題を感じている。

今の学生にとってそのモチベーションの一つとなっているのが、就職に困らないといった内容だ。まぁ確かにこれも一つの材料としてはあるんだけど、モチベーションというよりかは資格の一つくらいな保守的な立ち位置になってしまっていて、どうも好きではない。

プログラミングは自分のアイディアで日本中/世界中の人と繋がりが持てる、もっと大きな可能性を実現できる手段なのだ! そこについてしっかりと語ることができて、確かな説得力を与えられるロールモデル(以降、HERO と呼ぶ)となる人が出てくるべきだと思う。HERO は決してプログラミング学習者に対して"教える"という行為はしないだろう。HERO はいつまでも若者に背中を見せ続ける存在でいるのだ。そして若者はHERO の背中を追い、いつかは追い越すというマインドを持って成長していくものだ。そんなモチベーションを持った人てのは、今後間違いなく成長する。誰かから教わってぬるま湯で成長した人とは比べ物にならないくらいに。例え同じ成長を辿ったとしても、今後のプログラミングの使い方として、間違いなく自分から学んだ人の方がプログラミングを有効活用できることを保証する。受け身で学んだ人は給料や安定のためにプログラミングを活用し、前のめりで学んだ人は自分の夢の実現のためにプログラミングを利用するのである。

プログラミング界の HERO が少ないことに課題を感じている私は、まずは私自身が目標とされるような存在となって共に走り続けられる存在でありたいと思っている。数少ない読者ではあるけどもボクココを読んでくれた人へ希望を与えられるような存在であり続けたいということだ。そうした活動によって日本のプログラミング教育の発展に貢献していけるはずだと確信している。

終わりに

今回はプログラミング教育について私なりの持論を展開した。実は私は学生の頃に塾講師をやっていたこともあり、生徒達の成長について多く考える機会があった。いい生徒ってのは勉強を言われてやらされるのではなく、自分から進んでやっていく素質があった。彼らには勉強をやる理由ってのが明確にあったのだ。そんな生徒(全体の1%満たない) は未来を語り、目を輝かせるのである。

そんな未来を語れるエンジニアを増やしていくためにも、私自身が未来を、夢を語れる存在であり続けたいと強く思う。