プロ野球やプロサッカーの一流選手がよく、子供達が野球やサッカーができる環境を作ってやることが大切だということを力説することがある。
だが、彼らは決して、「普通の子供達に、野球やサッカーを楽しませてやりたい」ことを本当の主眼として言ってるのでは絶対にないのだ。
彼らが善意でそんなことを言っている場合、彼らの本心は、誰でも野球やサッカーができる環境を整えることで、自分達のような天才的な才能のあるごく僅かな特殊な子供が野球やサッカーに巡り合わずに終ってしまうという危険を無くしてやりたいということなのだ。
彼ら(超一流の野球選手やサッカー選手達)は、自分達ですら、野球やサッカーをやれずに終っていた可能性があったことを認識しているのだ。中には、本当に偶然の出来事によって、今の自分があることをよく知っている者もいる。日本最高の野球選手だったと言えるかもしれない王貞治さんだって、彼が草野球をしているところを、たまたまプロ野球のコーチが見て、右打ちをしていた王少年に「左で打ってごらん」と言うことがなければ、王さんがプロ選手になることはなかったというのだ。

最近、コンピュータープログラミング教育について、よく目にするようになった。
アメリカに、「全ての学校でプログラミング教育を」だとか「プログラミングを物理学や化学と同等に扱うようにするべき」と主張する非営利団体Cord.org(コード・オーグ)というものがあり、マイクロソフトのビル・ゲイツ会長や、FacebookのザッカーバーグCEOがそれに参加し、彼ら自身が、プログラミング教育の重要性を力説することもある。
しかし、ゲイツやザッカーバーグらもまた、上に述べた超一流の野球選手やサッカー選手と同じなのだ。
あくまで、天才的な子供が、ちゃんとコンピュータプログラミングに取り組めるようになれば、ソフトウェア産業が発展すると言いたいだけなのだ。
彼らの言うことを素直に聞いていると、コンピュータープログラミングの仕事は沢山あり、コンピュータプログラミングを習得したら人生はハッピーだと言っているように聞こえてしまう。しかし、仕事が沢山あるのは、天才プログラマーなのであり、平凡な能力を持った人間がコンピュータプログラミングを習得したところで、仕事を得るのに苦労することが多く、仕事を得られても、きつい労働であると共に低収入であるし、それどころか、仕事が得られないことも少なくはない。
そのあたりは、Ruby言語を開発したまつもとひろゆき氏や、アメリカの天才プログラマで計算機科学者(ハーバードで博士号取得)の企業家ポール・グレアムは、ちゃんと言っているように思う。
何かで見たが、まつもとひろゆき氏は、「プログラミングは才能であり、学校で教育するようなものではない。大切なことは、才能あるプログラマを探すことだ」と言ってるようであるし、グレアムも、所詮、プログラミング能力とは才能だと、遠回しにだが言っているのだと思う。かつては、ビル・ゲイツだって、プログラミングの才能とは、所詮、IQ(知能指数)だとはっきり言っていたのである。

ゲイツやザッカーバーグ、あるいは、まつもとひろゆき氏やポール・グレアムのような天才達から見れば、私のような平凡な開発者はプログラマには絶対に見えない。
天才は彼らの言うことを聞けば良い。
しかし、平凡な人間が彼らの言うことをまともに聞いて信じてしまったら悲劇(あるいは喜劇)である。
私は才能もないのに、アセンブリ言語からC言語、そして、オブジェクト指向言語を使ってプログラミングをしてきたので、そういったことがよく分かるのである。
Javaのような高級言語とアセンブリ言語の違いは、自動車を運転することに喩えれば、ただハンドルを回し、アクセルを踏むことだけを考えるのが高級言語でプログラミングすることで、一方、ハンドルを回すことで、それが駆動系にどう作用して最終的に車輪の向きを変えるかとか、アクセルを踏むことで、気化されたガソリンがエンジンにどう供給されて燃焼し、それがエンジンをどう動かすかを考えるのがアセンブリ言語でのプログラミングだ。
プロレーサーは、表面的には我々と同じように自動車を運転するが、彼らは車のメカニズムをある程度イメージしながら運転するのであり、コンピュータープログラミングで、そんな風に、コンピュータ内部の動きを考慮しながらも、ある程度簡単に処理内容をコンピューターに指示できるのがC言語だ。
だから、プロの開発者はC言語を使うことが多いし、Ruby言語やPerl言語などのプログラニング言語自体はC言語で書かれている。
しかし、私のような平凡な人間がC言語を使ったところで大したことはできず、多くの場合は、もっと単純な言語(例えばBASIC)を使う方が絶対に合理的である。

だから、私は、私のような普通の人がコンピュータープログラミングをして、そこそこに良い生活をしたいなら、天才達の言うことは浮世離れしていることを認識し、また、コンピューター雑誌や、コンピューター業界のWebサイトに書かれてあることを真に受けず、天才や華やかな雑誌やサイトでは無視されることが多いExcelやAccessを使い、それに内蔵されているVBA(VisualBasic for Application)言語でプログラミングできるようになりなさいとよく言うのだ。
では、Webシステム開発でよく使われるPerlやPHPはどうだろう?
言っておくが、PerlやPHPを使うなら、それだけができれば良いということは決してない。実際には、ほとんどPerlやPHPしかできずに仕事をしている人もいるが、彼らは収入は少なく、良い思いもしていない。
今は、サーバーを1からインストールすることまでできる必要はないかもしれないが、LinuxなどのサーバーOSの設定やApacheなどのWebサーバーの設定、ネットワークの設定などをあるレベルまではできないとまともな開発者にはなれないし、PerlやPHPでプログラミングするには、HTMLやCSSが自在に使えなければならず、実際にはJavascript言語でのプログラミングもできなければならない。
LinuxやApacheの設定などは、本番システムで気楽にやれるものではなく、下手をしたら、二度とそれらにアクセスできないような状況に簡単になってしまう。LinuxやApacheは、それらを設定するのはプロであることを前提に作られており、ミスで致命的な操作をしても、それを警告もせずに簡単に受け付けてしまう。まるで、「だってあなた、理由は知らないが、システムを壊したかったんでしょ?」とでも言うようなものである。一般の製品であれば、たとえユーザーの操作ミスであっても、ユーザーに被害があった場合、「それを回避する機能を付けなかったメーカーが悪い」となるが、コンピューターのプロの世界は全くそうではない。
コンピュータープログラミングでは、馬鹿なプログラマーがプログラミングすると、ロボットが原子炉の壁を突き破って出て行ってしまうのだ。

私は、コンピュータープログラミングは学校や他人に教育されるものではなく、致命的なリスクを回避できるだけの賢さのある者が、自主的に取り組んで、自分のレベルにあったものを身につけるものであると思う。
私は、才能のある人については何も言わないし、言う理由もない。
しかし、私のような凡人が、もしかしたらプログラミングで食べていけるのかもしれないと思って取り組むなら、ExcelやAccess、あるいは、FikeMakerに取り組むことをお薦めするのである。
しかし、人間とは、自分が凡人ではなく、天才だと思うことが多いものなのである。だから、愚かにも天才達の言うことを自分に適用しようとするが、そこがまた、商売をする者の狙い目である。
人間は確かに、本質においては誰でも大天才である。しかし、天才とは、自我的には自分が凡人だと本当に認めた者である。アインシュタインだって、自分のことに関しては全くの凡人だと本当に思っていたのである。









↓応援していただける方はいずれか(できれば両方)クリックで投票をお願い致します。
人気blogランキングへ にほんブログ村 哲学・思想ブログ 人生・成功哲学へ
  
このエントリーをはてなブックマークに追加   
人気ランキング参加中です 人気blogランキングへ にほんブログ村 哲学・思想ブログ 人生・成功哲学へ