2007年08月05日
東大卒がプログラマにならない理由は、自分の仕事の範囲でのプログラマしか見ていないから
なんかレイヤ的にも業界的にも、全然違う世界の話をしているような気がする。
別の業種で言うなら、橋・トンネル・ダムだの超高層ビルだの、そういった巨大建設・土木プロジェクトに携わるエリート技術士が、ぼくらは自分でCAD図面を起こすような仕事はしないんだとか何とか言って、自分でCADを描く建築家を馬鹿にしているとか、なんかそんな構図に見える。
確かに、東大卒の彼が書いているようなエリートが自分でコードを起こさずに理論だけ考えて、実際にコード化するのはその下で働くプログラマ(というか、コーダというべきか)という世界は存在するし、それで回ってる。
例を挙げるなら私の前職も、非常に機密性の高い案件で、マジで諜報機関とかでも使えるレベルでの「○×MINT(Kissmintじゃないよ)」システムの開発とかやってたんだけど、そこで情報の加工・分析を行う理論・アルゴリズムの検討・議論なんかは、開発側も客先担当も含め、自分ではコーディングなんかしない(中にはできない奴も含まれる)東大京大卒のエリート集団だった(ちなみに私はそのエリート軍団ではありませんでしたが。私の役職は、喩えるなら国土交通省兼財務省?)。
そういったエリート連中が1年以上もかけて机上で議論・折衝を繰り返して(もちろん途中いろいろ実験も入りますが)決定した理論・アルゴリズムに従い、実装フェーズに入るとあちこちの派遣・請負会社から一束いくらで集められた(俺はこんな表現したくはないが実際そんな感じの扱いだった)何十人ものコーダ達が、力技で実装するという感じの世界だった。
他の例でも、俺の同期にはJAXAでロケット制御の開発をしている奴もいれば、逆にそれを受注する側のロケット製造会社で同様に制御設計をしている奴もいる。
どいつをとってもその世界では一人者になりつつある優秀な連中だ。
が、そいつらも別に自分でコードを書いているわけではないだろうし、それどころかWindowsの設定すら難しくてよく判らないという奴すらいる。
そういう世界もあるわけだが、そんな世界で暮らしていてそしてそれだけが世界だと思い込んでいれば、自分達は自由に新しい事案に適用する理論やアルゴリズムを考察・検討できて、下で働くプログラマは創意工夫の余地もなくそれを形にするだけ、それでいて自分達の年収は彼らのン倍、そりゃプログラマになんかならないよ、という発想になるだろう。
だがそういう奴は気付いていないのだ。
自分達のシステムの、オリジナル部分は確かに彼らが考案しコーダに作らせたものかもしれないが、それだけでは動かない、前提となるOS、言語、ライブラリ、そういったものがどのような形で作られてきて、今も改善され続けているか、ということに。
今オープンソースやWeb2.0といったムーブメントで脚光を浴びている「プログラマ」は、彼らの下で働く「コーダ」ではなく、そういったムーブメントを自発的に起こせる本当の意味での「プログラマ」であるということに、気付いていないのだろう。
或いは気付いている上で、大学の講義であらゆることは学んでいるから、やる気にさえなればそんな「花形プログラマ」のやってるようなことは俺でもできるんだYO!とか言いたいのかもしれない。
確かに、大学では「CPUの設計ができて、プログラミング言語を設計し、コンパイラが書けて、OSを載せて、その上で例えばレイトレーシングを動かせるくらい」のことは学ぶだろう。
電気系卒の俺ですら上で書かれていることのさわり位は学んできているので、情報系卒だともっと深いところまでもやるのだろう。
でも、原理を知っていることと、それを形にすることは全然違うということに彼は気付いていない。
例えば俺でも、原理は学んできてるから、仕事辞めて全人生棒に振った上で、いろいろ書籍ひっくり返しながら試行錯誤して実装してみれば、MS-DOSの出来損ない程度のOSなら作れるだろう。
でも、同じ事を、コーラ片手にパパパッと片手間で実装してしまえる(大学で理論など学んでいなくても)人間もいるのだ、ということに彼は思いがいたっていないのではないか。
彼は「ある仮説を立てて、その仮説のもとで最適なアルゴリズムを設計し、実際に処理系に組み込み、仮説が現実にどれくらいあっているかを検証することで、そのアルゴリズムの良さを測る...実践うんぬんと言っているが、上記のことは普通のプログラマーには実践すらできないだろう。また、ここで注意していただきたいのは、プログラミングなんて誰がやっても同じということだ。」とか書いているけど、理論先行で実践がない大学研究室が作ったシステム等では、IPAの未踏に通るレベルのプロジェクトでも、その成果をいざエンタープライズに持ち込んで実サービスに投入しようとした途端、プログラムがスパゲッティで拡張性・応用性もなく困っちゃってる、という話も友人から聞いたことがある。
所定の新しい価値が実現できていれば、あとの部分は誰が実装しようと同じ、等ということは絶対にないだろう。
また「大規模なプログラムの設計は重要だ。だけど、設計と吠える人ほど設計センスがないという現実がある。本当に難しい部分の設計というのは、例えば...Suicaのようなシステムならば、日立の東大生。」等と書いているが、そのように自慢する大規模システムとやらが、決して「かしこい設計」にはなっていないという現実。
Suica(類似仕様なのでPASMOも含むが)が、相互乗り入れしているにも関わらず、Suicaには私鉄の、PASMOにはJRの定期設定はできないというこのクソ現実。
おかげで、せっかくお財布ケータイで定期も何も全て済むようにできたと思ってたのに、私鉄通勤になった途端またPASMO持たないといけなくなってしまった。
さらには、PASMOの定期設定は2鉄道業者乗り換えまでしか設定できない設定のせいで、3業者乗り換えで通勤しているような本当の意味でPASMOが役立つようなユーザが、PASMOの恩恵から外されているという現実。
いかにセキュアかつロバストに金銭決済を実現する機構がすばらしかろうと、こんなクソ仕様を放置している時点で、何が設計センスか、という話だ。
別にどっちが上とか下とか、なりたいとかなりたくないとかの問題ではない。
社会システムの中枢を担う大規模プロジェクトの中で理論設計を行う人材も、オープンソースOSやライブラリの開発等を通じて社会全体の基盤を間接的に支える人材も必要だし、また前者の元で働くコーダの方々まで含めて、みな社会に欠けてはいけない人材であるわけだし、各人の興味や熱意、適性等に応じて適職につけばよいだけの話。
んでもってそれぞれが敬意をもって他の職種と連携しつつ、それぞれの場でベストを尽くせばよいだけのことを、それをどっちが上だとか下だとか、自分の狭い世界の中だけで順列付けようとするから香ばしいエントリーになってしまう。
以前のエントリで
2つ目は、この技術分野だけで閉じてしまって、他の技術分野との協調発展の方向性が閉ざされてしまうのではないかということ。
今までGeek、Geekと書いてきましたが、正確には「情報科学分野のGeek」なわけなんですよね。
......
そういう人達は情報技術には疎いわけなので当然今のネットワーク社会上ではサイレント・マイノリティなわけですが、しかし専門分野ではすごい技術の持ち主なので、ソフト・情報科学のGeekと連携できればすごいことができる可能性だってある。
その可能性が、情報科学のGeekばかり突っ走りすぎてることで機会が失われてやしないか?というのが私の心配する点であったりするのです。
といった感じで、「プログラマ=情報技術(というかWeb界隈)のGeek」が自分達に見える世界だけで突っ走ってしまうために他分野との連携が出来なくなってしまうのではないか、という危惧を書いた事があるが、今回はその「他分野」の方での同じような病理を目にすることが出来た、という感じがします。
![[ここギコ!]](http://kokogiko.net/logo.png)





・外部BlogをMixi日記にしつつ内部Mixi日記を書く方法(glennacov)
・3Dどきゅめんと…って何?点字文書?(levfelikeinadew)
・3Dどきゅめんと…って何?点字文書?(Snegovt)
・在日参政権問題の根本解決はサンフランシスコ平和条約後の措置を白紙に戻すしかあり得ない(A)
・普天間基地移設が軍事的に見て県外移設はあり得ないとかの議論について(チカズミ)
・馬鹿の言動は確かにJSF氏に責任はないのだけれど、良識に訴えたい(774)
・馬鹿の言動は確かにJSF氏に責任はないのだけれど、良識に訴えたい(SIRO)
・馬鹿の言動は確かにJSF氏に責任はないのだけれど、良識に訴えたい(fnorder)
・馬鹿の言動は確かにJSF氏に責任はないのだけれど、良識に訴えたい(名無し)