優れたIT技術者を育てるには

2012年08月02日 09:41

「デジタルネイティブ」というのは、デジタル機器とネットに囲まれて育った人たちの
ことを指すらしい。 「アプリ開発私塾に小学生、スマホが迫るIT教育の変革」を読むと。こういったデジタルネイティブ世代へのIT教育に対する期待が熱く語られている。この記事の主張を要約すると

(1) 優れたプログラマーの人材需要は拡大している。

(2) iPhoneのような新しい道具を日常生活でどのように使うか。ITで世界と繋がり、創造的なモノを生み出す力を育てることが重要だ。

(3) 従って、IT教育の強化が重要だ。

ということである。

確かにITでは米国が独走しており、日本はITにおいて劣勢に立たされている。 早期からのIT教育は、この状況を改善するのに有効なのだろうか?


どんな人材が必要なのか

この問題を考えるのには、まず、優秀なプログラマーとは、どんな人材なのかを、はっきりさせる必要がある。 Googleを例にとって考えてみよう(米国のプログラマーは、日本のようにSE(システムエンジニア)とプログラマーに分かれておらず、プログラマーが企画、設計、運用、コーディング全てを行う点は大きく異なる)。 

優れたアルゴリズムを構築するのには、高い論理能力が要求される。実際、「Googleの面接試験、一体どのような質問をされるのか」を見ると、どのような人材が必要とされているかは、一目瞭然だ。 それでは、Googleの面接試験の質問を見てみよう:

1.スクールバスにゴルフボールは何個入るか?

2.あなたは5セントコインほどのサイズに縮んでしまう。現在のあなたの身体の密度を保ったまま、身長に比例して質量は小さくなる。そしてあなたはガラスのミキサーに投げ込まれる。ミキサーの刃は60秒で動き出す。さぁ、あなたはどうする?

3.シアトルのすべての窓ガラスを洗浄するとして、あなたはいくら請求しますか?

4.マシンのスタックがメモリ内で増えるか減るかしているのをどのようにして見つけ出しますか?

5.あなたの8歳の甥にデータベースについて3つの文で説明しなさい

6.時計の長針と短針は一日に何回重なりますか?

7.あなたはA地点からB地点に行かなくてはならない。そこに到着できるかどうかは知りません。どうしますか?

8.シャツでいっぱいの戸棚があるとします。特定のシャツを見つけるのは非常に難しいです。簡単にシャツを見つけるためにどのように整理しますか?

9.この村には100組の夫婦がいて、夫は全員浮気しています。妻たちは自分の夫以外が浮気しているとすぐに気付きますが、自分の夫が浮気しているかどうかはわかりません。そしてこの村の掟では浮気や姦通は許されていません。また、どの妻も自分の夫が浮気していると知ればその日のうちに自分の夫を殺すという掟があります。この村の女たちは掟には背きません。ある日、村の女王が「この村には浮気をしている男が少なくとも1人いる」と言いました。さて、この村に何が起きますか?

10.ある国では人々は生まれてくる子には男の子だけを欲しがりました。そのため、どの家族も男の子を産むまで子供を作り続けました。この国では男の子と女の子の人口比率はどうなりますか?

11.高速道路で30分間に自動車が存在する確率が0.95である場合、10分間では確率はどれぐらいになりますか?(確率は一定であると仮定します)

12.時計を見ると3時15分でした。長針と短針の間の角度は?(ゼロではありません)

13.4人の人々がぐらぐらするロープの吊り橋を渡って夜にキャンプへ戻る必要があります。不幸にも懐中電灯は一つしかなく、17分しか使えません。吊り橋は懐中電灯なしで渡るにはあまりにも危険で、吊り橋は同時に2人しか渡れません。しかも、各人は歩くスピードが違います。ある者は橋を渡るために1分かかり、別の者は2分かかり、3番目の者は5分かかり、最後の者は10分かかります。どのようにすれば17分で全員が渡りきることができますか?

14.あなたは友人たちなどとパーティをしており、全員であなたを含めて10人います。友人の一人が賭を提案してきました。あなたと同じ誕生日の人がこの中にいればあなたは1ドルもらえます。あなたと同じ誕生日の人がいない場合には友人が2ドルもらいます。あなたはこの賭を受け入れますか?

15.全世界でピアノの調律師は何人いますか?

なるほど、これは、論理能力を確かめるには、良い質問だ。完全な解答を要求するのは、少々酷だろうが、その人の論理能力、特に論理的思考により瞬時に解答の道筋を見つけられる人物かは、かなり正確に判定できるだろう。

優秀なプログラマーになるために必要なのは、コンピューター言語に習熟するといったレベルの話ではなく、よいアルゴリズムを素早く書ける高度な論理能力、瞬時に問題を把握し、的確な解決方法を提案できる能力だろう。

有効なIT教育とは

それでは、こういった論理能力を身に着けるには、どうしたらよいのだろうか? 

私の考えは、早期のIT教育は、役に立たないだろう、ということである。 確かに、プログラミングなどITへの関心を早くから持つことは、悪いことではないだろう。

しかし、プログラミングを始めから学習することが、良いことだとは、私には思えない。なぜならプログラミング能力、とりわけ、アルゴリズムを構築する能力は、その人の論理能力、頭の回転の速さに依存している。即ち、プログラミングは、論理能力の応用の場である。だから、優秀なプログラマーを育てようと思うのなら、高い論理能力を持った人材を育てなくてはならない。

これは、ピアノの演奏に喩えると分かり易い。ピアノの演奏技術を習得するのには、少なくとも数年、多くは10年以上といった極めて長い時間が掛かる。初めは両手の10本の指を均一化するために、退屈ではあるが、指の運動(ハノンピアノ教則本など)、スケールの練習、アルペジオの練習などを延々と続けなくてはならない(これはプロになっても続く)。 そのあとで、漸く、曲らしい曲を弾くことができるのである。初めから曲を弾くことは効率的な演奏技術の習得には繋がらない。

プログラミングも同じで、初めからプログラミングに特化するより、数学、国語といった基礎をしっかり磨くことが大事だろう。 私の見る限り、プログラミングを勉強しても、高度の論理能力が身に付くようには思えない。 早期のIT教育は有効ではないように思えてならない。 

急がば回れということではないだろうか。

アゴラの最新ニュース情報を、いいねしてチェックしよう!

アクセスランキング

  • 24時間
  • 週間
  • 月間

過去の記事

ページの先頭に戻る↑