大流行のプログラミング学習サービスに思うこと

次の記事

マイクロソフト、ウォール街予測を上回り、売上174億ドル、1株当たり利益0.60ドル

hacker-dojoなんだか突然、プログラミングがセクシーだと思われる時代がやってきたようだ。Codecademyのオンラインプログラミングチュートリアルには、十万人単位の人が集まっているのだという。「エンターテインメント、教育、その他あらゆることの根本にインターネットというものが存在するようになる。そういう時代に取り残されないようにしているのだ」と、最近のNew York Times(NYT)でも話題になっていた。

NYTのRandall Strossはさらに、コンピュータサイエンスを専攻する大学教授の話も引いている。曰く「あらゆる学部の卒業生は、ソフトウェアの基礎について理解しているべきです」というもの。最近ではどうやら小説を書いたことがあるというよりも、プログラムを書いたことがあるといった方がパーティーなどでのウケもよろしいようだ。ちょっとこれは変な話じゃないかと思うのだ。

これまで虐げられてきたギークの勝利ということになるのだろうか。もしそうなのであれば10歳の頃にプログラミングを始め、以来すっかりハマってしまった私たちのとって目出度いことということになる。しかしどうもこうした大騒ぎに、少々「ビミョー」な空気を感じてしまう。

というのも、以前にもこういうことがあったように思えるのだ。そのときの結末はどうも良いものであったとは思えない。何の話かといえば90年代末の話だ。ハッカーがもてはやされ、世界中でコンピュータサイエンスを学ぶ人が増えた。プログラマに対する需要がとても大きな時代だったのだ。当時のことをご記憶だろうか。企業はともかくプログラミングスキルがあれば良いと、用をなさないコーダーを大量に雇った。当時チームを組んだメンバーの半数は、ただ単にキーボードが打てるといった程度のスキルしかなかった。否、もしかするとそれすら怪しかったかもしれない。結局、満足な仕事ができるようになったのは格好だけのプログラマが去っていった2002年になってからのことだった。

さらに、昨今の「プログラミングって格好良い」ムードを気持ち悪く思うのは、そうした理由だけではないように思う。どうやらコーディングの何たるかがわからない人が、説得力もなくプログラミングについて語っているような気がしてしまうのだ。

たとえば上にあげた記事では、プログラムの「読み書き」ができるようになりたいだとか、「流暢に使いこなしたい」あるいは「理解したい」などと述べる。またそうした理解を通じて「コンピュータ的な問題解決手法」を学ぶこともできるとしている。プログラミングを覚えてどういったことがしたいのかを語る人はおらず、そこに強い違和感を感じるのだ。プログラミングというのは「手段」であって「目的」ではないはずだと思うのだが如何だろうか。プログラミングすること自体を目的にするというのは、フランスに行くことなど決してないと思いながらフランス語を勉強するのに似ている。そういう人は「フランス語を理解した」と思っても、いざフランスに言ってみれば全くコミュニケートできないものだ。プログラミングをしてみたいという人にも、プログラミング知識を活用したいなどと全く考えていない人がいるのは少々驚きだ。曖昧であろうとも、なにかしら目的があってしかるべきだと思うのだ。

ところで先に引用したNYTの記事は「Pythonを話せますか?」(Parlez-vous Python?)という書き出しで始まる。これも少々読んでいて気持ちの悪い表現だ。プログラミングに縁のない人は、プログラミング言語というのを、ひとつひとつ外国語のようなものだとして捉えがちだ。確かにプログラミング自体は大学教授の言うところの「コンピュータ風の思考」を行うもので、これは確かに外国語のようではある。しかし「プログラミング言語」というのは単なる「コマンド」体系に過ぎない。確かにこの「言語」の使い方にも上手い下手はある。しかしいずれのプログラミング言語を用いても、同じような内容は同じような表現形式で示されることになる。

但し、「外国語」に似ている面がないではない。あるいは音楽に似ているとも言えるかもしれない。というのはつまり、学習するには若い頃の方が良いという意味だ。プログラミングを30代になってから習う人がいるが、ものになるのか非常に疑問に思う。あるいは20代でも、ソフトウェアアーキテクチャ-やデザインによって表現される抽象的な概念を理解することができるのかどうか疑問に思う。

Strossはラトガース大学のMichael Littmanの言葉を引いている。曰く「コンピュータの論理形式を教えるのであれば中等教育の時期に教えこむ必要がある。そうでなければコンピュータサイエンスとは名ばかり、補修コースのような内容を教えざるを得なくなるだろう」。Guardianも「子どもにプログラミングを教えるべき理由」というような観点から続きものの、面白い記事を掲載している(ひとつ、残念ではあるが興味深い話も書かれている。というのも、学習者の年齢が上がるに連れ、女子は同性からのプレッシャーによりテック分野から離れていくようになるのだそうだ)。

Codecademyとホワイトハウスは、若い世代を対象とした施策を行おうと協働しているようだ。これはなるほど意味のあることなのだろう。つまりプログラミングの方法を教えるということは、次世代を対象としていくべきなのだろうと思う。全く前提知識を持たず、あるいはまた学生時代にもごく簡単な入門知識も得ずに20代ないしそれ以上となった人にオンラインでプログラミングを教えようというのはどうだろうか。ほとんどの人にとっては役に立たず、結局のところ「遅すぎた」ということになるのではないかと思うのだ。

もちろん何事にも例外はある。たとえばジョセフ・コンラッドが英語を覚えたのは20代になってからだ。しかし英語を縦横に駆使する作家となった。しかし一般的に言えば、言語というのは早い時期に学ぶべきものだ。年を経てから興味を持った人には申し訳ないが、プログラミングもやはり同様だと思うのだ。

Image credit: Jeff Keyzer, Flickr.

原文へ

(翻訳:Maeda, H)