プログラミングでメシを食うということ

GWの中頃から体調を崩したり、仕事がバタバタしたりで、エントリが滞り気味。いかんいかん。
今週からは更新頻度を上げる・・・つもり。


先日、前職の後輩と会う機会があり、その後輩が「僕はプログラミングが好きなんです。今後もずっとプログラミングをできるような環境にいたいのですが」と言っていた。さらに後輩の話は「日本ではなぜプログラミングだけで生きていける環境が少ないのでしょうか。海外ではMicrosoftGoogleみたいに、何歳になってもエンジニアとしてやっている環境がたくさんあるのに」と続いた。


僕は別にその後輩の話を否定するつもりはない。プログラミングがとても創造的な楽しいものであることは僕も認めるし、海外には確かに40代、50代になっても一線で活躍してるエンジニアが多くいる。
ただ、その後輩の考えには少し誤解があると思ったので、それは伝えておいた。


僕は、プログラミングの世界を自動車運転の世界に近いものだと思っている。自動車の運転を楽しいと思う人は結構多いし、単に自動車を運転することは多くの人ができる。しかし、純粋に自動車の運転技術でメシが食える人は、F1レーサーなどのごく限られた人間でしかない。もちろんタクシーやバスの運転手のように、自動車の運転を手段としてメシを食っている人はたくさんいるが、それは運転技術でメシを食っているのとは違う。


プログラミングも、EXCELで式やマクロを書くことまで含めれば、かなり多くの人ができる。しかし、その技術でメシを食うにはF1レーサー並みのレベルを要求されると思う。プログラミングを手段としてメシを食うことは、比較的容易にできるが、それはプログラミング技術でメシを食っている訳ではない。


海外のトップエンジニアにスポットライトが当たっているのは、自動車運転で言えばシューマッハやハミルトン(ともにF1レーサー)が賞賛されているのと同じようなもの。MicrosoftGoogleにも、下請け的なプログラミングだけをこなしている人はたくさんいる。


後輩が、タクシーやバスの運転手的なものを目指しているのであればいいのだが、僕にはどうしてもF1レーサーを夢見てるようにしか聞こえなかった。
F1レーサーを夢見ることが間違いではない。ただしそのレベルに到達するのには、かなりの才能と努力が必要になる。
その覚悟があるのか?と僕はやんわりと聞いた。


タクシーやバスの運転手は、自分の運転技術が格段に高いものではないことを認識している。だから多少、タクシーやバスの世界で成功しても「自分はF1に行ける」とは思わない。
プログラミングの怖い点は、Javaがうまく書ける、Ajaxができるといったことで「自分はすごい」という幻想を生んでしまうこと。Javaがうまく書けるというくらいのことは、自動車運転で言えば、坂道発進がきれいにできるというくらいのことでしかない。


後輩は僕の意見に少し不満そうだったが、かつて自分もそんな幻想をもったことがある。それだけに、今僕はその考えの甘さをかなり理解している。