スクリーンショット_2020-02-10_8

ハッカーになろう

俺は長年、自分をプログラマーと名乗ってきたのだが、突然、ハッカーのほうが正しいのではないかと思うようになった。

きっかけは遠藤さんとのドライブで、「天才プログラマーは必ずしもハッカーではない」という話がでたことだ。

未踏ソフトウェア創造事業は、もともと「ハッカー」を発掘するためのプロジェクトだった。

しかし、公的機関において、ハッカーという言葉がコンピュータ犯罪者と誤解されている状況において、「国家認定ハッカー」を出現させることに抵抗があったのか、「国家認定天才プログラマー」に落ち着いた。

したがって我が国では、長い時間、「ハッカー」と「天才プログラマー」は同一視されていた。

しかし当たり前だが、天才的なプログラマーがすべてハッカー的であるわけではない。

ハッカーがプログラミングできる場合、おそらく天才的なプログラマーと言って良いが、その逆は成立しない。

何を言ってるのかわからないのかもしれないが、要は、「天才プログラマー」と認定される人々には、以下の二種類がいるということだ。

・超人的な忍耐力で少人数で大規模なプロジェクトを成功させた者
・超人的な発想で非連続的な進化をもたらす者

このどちらもが「天才プログラマー」として認定される条件にあてはまると思う。少なくとも僕ならそれを条件にする。

しかし、ハッカーと呼んでいいのは後者だけだ。

なぜならハッカーとは「手間を省く者」だからだ。

逆に言うと、ハッカーの中にも、天才的な人とそうでない人がいる。ただ、ハッカーであることは明らかに価値があるのに、ハッカーであることがあまり評価されないのは、良くないのではないか。

そしてハッカー的な人、すなわちハッカーだが、ハッカーはプログラマーであるとは限らない。本来、未踏が発掘したかったのはこっちの人材ではないだろうか。

なぜハッカーと名乗る人が少なかったのかと言うと、ハッカーは尊称だと考えられていたからだ。

日本でハッカーという言葉を広めるきっかけになったスティーブン・レヴィの「ハッカーズ」には様々な偉大なハッカーが登場する。従って、ハッカーと呼ばれるためには偉大な人物でなければならないという誤解が広まった。この本の中には、例えばこんな人物がハッカーであると紹介される。

「アセンブリ言語でprint関数を書ければ、ハッカーを名乗って良い」

もともとハッカーとは、MITの鉄道模型クラブの人たちのことだった。彼らは目的を達成することではなく、目的を達成するプロセスそのものを楽しむ人々だった。これがハッカーの本当の定義だ。

つまり、実際にはハッカーはヒッピーみたいなもので、人間がもつ一つの性質を意味するに過ぎない。

僕はもっとハッカーの定義を広げていいと思う。

そして「ハック」とは、「退屈なプロセスを省略する」ことだ。

だとすると、たとえば「マンガ 教養としてのプログラミング講座」に出てくるスガハルは、プログラマーというよりもハッカーである。ハックのためにプログラミングの手法を応用しているに過ぎない。

スクリーンショット 2020-02-10 8.40.15

つまり、「退屈なプロセスを省略しようとする人」すべてをハッカーと呼んで良いはずだ。それは天才的な人だけに限られない。

プログラミングはハックのための手段に過ぎないと捉えないと、プログラミングの本質を忘れてつまらないことに人生の時間を浪費することになる。

真に価値があることはハックであり、プログラミングはその手段にすぎない。

そしてあらゆる人々がハッカーになれば、人類は退屈なプロセスから開放される。

AIの適用として考えても、AIを適用することで仕事が増えてしまっては意味がない。退屈なプロセスを省略することにAIの価値がある。

つまり、道具をハックの手段として捉えるか、それとも道具を使うことそのものを目的にするか、そこが肝心なのである。

同じことは、英語にも言える。

井口尊仁の英語をみんなが笑う。俺も笑う。だけど彼は実際にその拙い英語力でも、シリコンバレーで資金を調達できている。つまり、目的は達成しているし、そのための手段として英語を話しているにすぎない。

それはTOEICで900点を取るよりも遥かに重要なことだ。

英語の学習そのものを目的にすると、永遠に学習は終わらない。その意味で、日本人の英語コンプレックスは絶望的だ。

大事なのは、英語がアメリカ人のように喋れることではなく、手段として英語を使って目的を果たすことだ。英語のみを学習するというのは、目的を欠いているので永久に終わらないし永久に上達しない。

「この人と話したい」と思える人もおらず、「この本が読みたい」というモチベーションもなければ、英語はいつまでたっても実用的な道具にはならない。

プログラミングも一緒で、「これがしたい」という目的がある場合は上達が早いが、学ぶことそのものが目的になっているといつまで経っても自分の道具にならない。

何かを学ぶための「教材」があるというのは、実は錯覚であって、教材を手段と捉えないと実際には上達しない。

パンを焼きたいと思った時に、パンを焼くための教材を探す人はいないだろう。パンのレシピを探して、レシピどおりに作るだけだ。レシピというのは再現するための手段であり、良いレシピであればそれに従うだけで美味しいパンが焼ける。

パンを焼く目的は食べるか、食べさせるためで明確だ。人間はなにかを食べずには生きていられない。

ところが英語やプログラミングになると、急に意識が変化してしまう。パンを作ることを目的としてしまう。それは退屈なプロセスであり、退屈なプロセスを省略しないのはハッカー的ではない。

大事なのはハッカーになることだ。

そのためにハックすることだ。

でもそれはけっこう簡単で、意識を少し変えるだけでいい。

ハッカーというのは生き方でしかないのだから。