月: 2022年12月

コンピュータサイエンス

https://anond.hatelabo.jp/20221129085814

なかなか面白いテーマだと思った。実際のところ、平常の仕事で必要かどうかでいうと全然必要ないんだよね。知っておく必要は特にない。もちろんフレームワークを作ったりプログラミング言語を作ったり、いろいろ必要な局面がありうるとは思うけど、たいていのソフトウェア技術者のたいていの仕事には必要な局面はごく稀。それは別にbigtechの従業員でも同じと思う。

そういえば圏論についてこんなことを書いたことがあった。これは今でも間違っていないと思う。https://qr.ae/pr7ITC

なのでまあ必要に応じて学んでいけばいいし、永遠に必要にならないこともたくさんある。そもそも学部レベルで学ぶような内容は(大学にもよるでしょうが)そこまで広い範囲でもなくカバーしていない分野も多いし、一方ですごく深く理解できるようになるかというとそこまででもないという気もする。

けど実際のところ体系的に学んでいないと必要に応じて学ぶというアクションを取ることができないというか、そのような選択肢に思い至らなくていろいろおかしくなってしまうということがあるんじゃないかなぁ。という気がする。

そういえば昔こんなことがあった。Google日本語入力チームで働いていたとき、軽く雑談しましょうとのちのPFNの人たち(当時PFI?設立前?どっちだったか)と話したことがあった。その雑談の中で、こんなふうに辞書データを圧縮していてこういうデータ構造を使ってるんですよね、まあこれが最適かどうかはわからないんですけど……みたいな話をちょっと話したところ、岡野原さんがさっと立ち上がって、軽く計算してみましょうか、とホワイトボードにざっくりとした概算を計算しはじめ、理論的な下限がこのくらいだからかなりいいんじゃないですか、みたいなことをパッと言ったのだった。

CSの学位があればこういうことができるかというとそれだけではないわけだけど(こちらもCS系の学位を持っている人はたくさんいた)、ないとできないようなタイプの議論とか考え方というものはあるのだと思った。