エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

プログラミングは「教わる」ものか、「学ぶ」ものか?【連載:中島聡】

公開

 
中島聡の「端境期を生きる技術屋たちへ」

UIEvolution Founder
中島 聡

Windows95/98、Internet Explorer 3.0/4.0のチーフアーキテクトを務めたエンジニア。NTTに就職した後、マイクロソフト日本法人(現・日本マイクロソフト)に移り、1989年、米マイクロソフトへ。2000年に退社後、UIEを設立。経営者兼開発者として『CloudReaders』や『neu.Notes+』、教育アプリ『neu.Tutor』といったiOSアプリを開発する。シアトル在住。個人ブログはコチラ

今回は、脚光を集めるようになってきた「プログラミング教育」について、わたしなりに考えをまとめてみました。

日本では、政府が今年6月に成長戦略「世界最高水準のIT社会の実現」の素案としてプログラミングの義務教育化を提唱したり(参照記事)、プログラミング教育事業を始める企業が増えたりと、官民双方で教育熱が高まっていると聞いています。

アメリカでも、非営利団体の『Code.org』がビル・ゲイツやジャック・ドーシーら有名起業家を起用し、「コンピュータプログラミングを学校の必修科目にすべき」と訴えるキャンペーンを展開するなど(動画は下)、慢性的に続くプログラマー不足を解消するための草の根運動が話題になりました。

そこで編集部からもらったのが、「そもそもプログラミングは“教わる”ものなのか、それとも“学ぶ”ものなのか?」 というお題。

わたしの答えは、「“教わる”のではなく“学ぶ”もの」です。

わたし自身が、独学でやってきましたから。高校生のころ、『TK-80』を組み立てて初めてプログラムを書くようになってからずっとです。大学ではプログラミングを“教わる”授業も受けましたが、残念ながら仕事には何も役に立ちませんでした。

社会人になってMicrosoftでWindowsの開発にかかわった時も、まずやったのはひたすらソースコードを読む作業。誰かにプログラミングを教わったという記憶がありません。

しいて“教わる”に近かった出来事を挙げるなら、同僚とコードレビューをしたくらい。今でも新しい開発環境が出たら、直接リファレンスを見ながら独学しています。

とはいえ、学校でプログラミング教育を行う構想が出てきたり、民間企業が小中高生にプログラミングを教えるようになってきたのは、悪くない流れだと思っています。

学校の必修科目にすべきかどうかは議論の余地があるとして、子どもが早いうちにプログラミングに触れる機会を作るのは、「プログラマーに向いている子」を発掘する上でとても有益だからです。

全体の5%いるかどうかの「向いている子ども」を育てるには

このテーマで書き進める前提として、わたしは、プログラマーには向き・不向きがあると思っています。そして、本当に「向いている人」というのは、全体の5%いるか、いないかでしょう。

ある学校に50人のクラスがあったとして、その中でプログラマーに向いている子は、2~3人いればよい方だということ。仮に義務教育化したところで、50人全員がプログラムを書けるようになることは絶対にあり得ません。

nakajima-11-image

From CEThompson
子どもはさまざまな可能性を持っているが、それがどんなジャンルで発揮できるのか見極めるのは難しい

プログラミングに限らずどんな世界でも、「向いている人」というのはこのくらいの割合しかいないのだと思います。

体育や音楽は以前から小中学校の科目に入っていますが、授業を受けたからといって、全員がスポーツ選手やミュージシャンになれるとは限りませんよね。大人になってからプロになれるのは、ごくごく少数です。

でも、自分が小中高生だったころを思い返しても、同学年に1人か2人くらい、ズバ抜けて運動ができる子や、すごく音楽が得意な子がいたものです。

なぜ、彼らがほかの子よりも秀でていたのかと考えると、たいていの場合は「3度の飯よりスポーツが好き」とか「何をするより楽器を弾くのが好き」とか、本当に没頭できるものだったからです。

だから、少年・少女向けのプログラミング教育を、将来プログラマーを生業にできそうな「5%の向いている子」が、「没頭できる対象」を見つけるきっかけとして考えれば、悪くない話だと思うのです。

それに、小中学生くらいの年齢でプログラミングに触れるのは、脳の発達度合いから考えても効果的です。

前段で“教わる”ものではないと書いたように、プログラミングとは常に「解き方そのものを考える」作業なので、算数の鶴亀算に近いところがあります。それゆえ、方程式や微分積分の思考法に毒されていない頭の柔らかい時期、だいたい小学校5~6年生くらいの時期に基礎を学ぶのがベストでしょう。

もしわたしが小中学校の校長で、プログラミング教育を実践する立場になったとしたら、学内に専用の開発環境を用意した上で、「教科書にあるサンプルコードを打ち込むだけで簡素なゲームが作れる」というカリキュラムを組むと思います。授業数は、美術や音楽と同じくらいか、もっと少なくてもいい。

それくらいの内容とコマ数であれば、学校も専任の先生を確保できるでしょうし、「すごく楽しい!」とのめり込む子どもを見つけられます。

そして、授業に没頭していたり、いろいろ質問してくる子どもに向けて、放課後教室のような形で少し難しいプログラムを自ら“学べる”環境を用意してあげる。

これが、プログラマー人口を増やすためのベターな教育方法だと思います。あくまで私見ですが、これらの過程で見つけた「5%の向いている子」たちには、中・高・大学の受験勉強よりプログラミングの学習に時間を割いてあげる方がいいとも思っています。

「好きだから勉強する」という素地を持たない大人の身の振り方

snakajima-11-image-2

From Dennis from Atlanta
技術には流行り廃りがある。求められる開発で必要な最新技術があれば、自ら学ぶ必要があるが…

ちなみに、読者の多くは大人だと思うのであえて書くと、「向いている人は5%」の法則は社会人プログラマーにも当てはまります。

つまり、「楽しいから没頭する」、「好きだから勉強する」という素地を持たないプログラマーは、いずれ限界が来る。

コンピュータプログラムはある意味で楽器に近い性質を持っていて、誰でも「音」は鳴らせますが、「商売としての売れる曲」を奏でられるのは一部の人間だけです。

プログラマーの需要は年々大きくなっているので、ミュージシャンのように一流になれないと食べていけない世界ではありませんが、少なくともプログラミングを楽しみながら学べない人は長くプロとしてやり続けるのが難しいでしょう。向いていない仕事をやっていると、どこかで不幸な結果を招いてしまいます。

1980~90年代、IT業界は人手不足を理由に大量のコーダーを採用・育成しましたが、それによってITゼネコンの下層で働くしかないプログラマーも増えてしまった。その中には、「お金が稼げる」、「就職しやすいから」という理由だけでプログラマーになった人もいたはずです。

どんな職業を選択するかは個人の自由ですが、需要と供給の理屈だけでプログラマーの仕事を選んだ人は、おそらく好きでやっているプログラマーには一生勝てません。

であれば、手遅れにならないうちにプログラマー以外の仕事に鞍替えするのも、長い職業人生を考えれば前向きな選択になるのでは、と思います。

どんな仕事も、プロと呼ばれる人たちは好きだから大変でも続けるし、楽しいからこだわるし、息をするように学び続ける。もしかしたら、心からそう思える職業がプログラマーなのかどうかを早いうちに見極められるという点でも、小中高生へのプログラミング教育は「アリ」なのかもしれません。