2007-08-04

東大卒の俺がプログラマになった理由

http://anond.hatelabo.jp/20070802021749

東大卒の俺がプログラマになった理由は二つある

理由1: プログラミングってすごい楽しい

理由2: プログラミングは食べてける程度には儲かる

種明かしをしよう。

東大情報系を卒業する頃には、

"ゼロから"

CPUの設計ができて、プログラミング言語を設計し、コンパイラが書けて、OSを載せて、

その上で例えばレイトレーシングを動かせるくらいの力量がつく。

が、しかしそれらは全てやり方さえ知ってれば普通高校生でもできる。

簡単なことを単語を難しくかえて書いただけだ。

C言語をマスターしてるかどうかを低レベルな話なんていってるほうが低レベルである。

SQL構文暗記してる?」くらいのレベルの低さだ。

C言語って意外と奥が深い。C99なんてもう何が何だかさっぱりだ。

4年生の卒論でやるのは、例えば、とあるLISP処理系GCを、

ある仮説を立てて、その仮説のもとで最適なアルゴリズムを設計し、

実際に処理系組み込み、仮説が現実にどれくらいあっているかを検証することで、

そのアルゴリズムの良さを測る、といったレベルだそうだが、これは平たく言えば

「ご本に書いてあることをその通りやって、キッチンタイマーで時間はかったら短くなりました!」

というレベルだ。卒論なんて東大といえどもそんなにレベルは高くない。

上記のことは普通プログラマーなら半年も訓練してれば簡単なことである。

また、ここで注意していただきたいのは、プログラミングなんて誰がやっても同じということだ、

という奴がかくコードは非常に雑であることが多いと言うことだ。

機械語を書く際の冗長な作業を軽減するためのプログラミング言語であり、

もっともプリミティブな部分が定義されていれば、あとはそれを別表現で定義すればいい。

だが、対象を別の対象へ写像して調べる表現論というのものは、数学の1分野にもなってる

ぐらい複雑な分野で、これを中学生でもできるとかいってる人の底の浅さがうかがい知れる。

ここ5年くらいの情報系での流行機械学習だ。

DSで使われている手書き文字認識や、

銀行で使われている静脈認証、

DNA解析、

携帯電話などの無線通信で使われている符号化、

動画エンコードで使われている圧縮技術などが関連している。

機械学習に関する情報のページ

http://ibisforest.org/index.php?FrontPage

東大生はこういうことを仕事にしている人もいる。

だが、開発をしてる東大生も意外と多い。

そして、こういうことを仕事にすると、

プログラマーの倍の労働時間で、同等の給料を稼げる。

もちろん、全くコードを書かないわけではない。

誰がやっても同じ部分であるプログラミングは外注する。

R&Dが高給だと思ってる人は一回民間に就職してる人に

聞いてみよう。給料はほぼ同等か少し高いぐらいで

毎日研究午前様労働となる。


もちろん、大規模なプログラムの設計は重要だ。

だけど、設計と吠える人ほど設計センスがないという現実がある。

本当に難しい部分の設計というのは、例えば、NTT Dataにいる東大生が丸投げしている。

あるいはSuicaのようなシステムならば、日立東大生。

JRのダイア自動制御システムJR東大生。

他にも大規模システムの例はいくらでもある。

だが、別に東大生だけがやってるわけではない。NTT Data、日立JR等は東大生の

推薦枠が大きいので東大生が多いだけである。特にNTT Dataは東大生は

推薦がとれなかったら学歴フィルターで落とされることが多いのも有名である。

だがどっちにしろ重要なのは、この辺の企業がほんとに重要な部分を設計

してるのではなく、丸投げしているということ。


あとがき

上の文章は特に誇張してません。

東大にいる80%の人は本気を出せばそれくらいのポテンシャルがある。

だけど、同様に一般人の78%の人も本気を出せばそれぐらいのポテンシャルはあります。

上位5%は常に本気。こういう人はほんとにすごいです。

でも下位95%はやる気がない。4年次に行列式の定義とか聞くと答えられる人はほとんどいません。

アメリカへつれていき、いきなり英語でスピーチをさせたら無難にこなすレベルもいるけど、

語学は人による差が激しいのでなんともいえません。

あとは・・・C言語をマスターしてるレベルといったら、東大工学部を連れてくると、丁度いいかもしれない。

だけど、文系の人はC言語なんて教えてもほとんどわかりませんよ。




そういや東大教養課程で扱うプログラミング言語Rubyになるらしいね。LLの適度なヌルさは教育向きだと思う。

情報系には別のカリキュラムがありますが、多分上位15%しか理解していません。

そもそも計算機プログラミングJavaだったころにも本当に理解してたのは上位15%程度でした。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん