まぁ、下っ端プログラマには要らないだろうけど、いわゆるシステムエンジニアとかアーキテクトとか言われるレベルの仕事するには、なるべく知っとかないといけないよね。
オレの場合は、大学はかろうじて理系の一角だったけど、学問的にコンピュータサイエンスを学んだことはなくて、某IT会社でなかば業務上の必要に迫られ、なかば趣味的な興味本位もありで、ちょっとずつ勉強した。
で、もう20年くらい前だし、すでに廃止されてる(と思う)ので、守秘義務違反とかの面倒なことにならなそうだと想定してぶっちゃけると、大手携帯会社のショップで各店舗独自のプロモーション打ったりするためのWebシステムの開発に関わったことがある。
顧客の(および自分とこの)エライ人なんかに、システムの設計の根拠(この方式が最善なのか?もっと安く早くやれる方法はないのか?などなど)を常に問いかけられ、説明説得しなきゃならない。そこでコンピュータサイエンスに基づいて理路整然と話をすると、ちゃんと信頼してもらえるし、納得してカネ払ってもらえるw
そこで使ったのが、以下のような各種理論だ:
などなど... 自分史上最高に残業させられたこの仕事やってた年の年収は、900万円台おしくも1000万には届かなかったねぇw
--追記--
コンピュータサイエンスがらみの思い出でもう一個面白い(とオレが思う)ネタがあるので、ついでに書いとこうw
これは、上で書いた携帯会社のシステムよりだいぶ前のことになるが、とあるグループウェアの開発に関わってたとき、メールをFAXに向けて出力するドライバを書いたことがある。昔のことなのでオープンソースもあんまり普及してないし、タダでお手軽に使えるライブラリが見つからなかったので、「車輪の再発明」っぽいけど自分でハフマン符号化によるデータ圧縮のアルゴリズムを勉強して作ったのだ。
Win32のAPIとか呼び出して、ビットマップにテキストを描画させたとこから、ドットをちまちま数えて、白のドットがいくつ続いてたらこのコード、黒がいくつ続いてたらあのコード...って可変長のビットパターンをつなぎ合わせてファイルに書き出す...みたいな。これが理論通りにうまいこと動作して、FAXから文書が出てきた時はとっても楽しかったw