誰にも見えないブログ

雑なメモ。まとまってない文章等

CSに対する認識が変わりつつある

元々は転職して一年たったという記事を書いてて、その中の一項目だったが、会社のことを外向けにダラダラ書き連ねるのもよくないと思ったのでその中で会社関係ないこの項目だけ抜き取って記事にしてみた。

メインブログに投稿しようと思ったけど、あまり文章にまとまりなく、書いたり消したりしてるのでサブブログに投稿。 ここに書いてあることは短い人生の中で狭い知見で見聞きして、考えた私の一意見です。世間的にこういう文章を公開する意義はないと思うけど、あの時の自分はこんなことを考えていたんだと振り返るために書き残しておきます。


まず話題に入る前に私はコンピュータサイエンスの定義をうまく言語化できていない。特にエンジニアリングとの違いの部分。イメージとしては以下のものが近いと思う。

www.slideshare.net

エンジニアリングとコンピュータサイエンスは密接な関係にあるが、別物。

  • コンピュータサイエンス的な要素がふんだんに使われたものを「作る」スキルと「使う」スキルは全くの別物であるということ
  • 後者の需要がそれなりにあること

今の会社に入社した直後、ちょうどIPAの情報安全確保支援士(旧セキュリティスペシャリスト)に受かったことを雑談に出すと、「お前楕円*1書けるの?」と言われた。使う側だけでなく、作る側の素養があるか試されていたのだろう。

今の会社に来る前はコンピュータサイエンス=低レイヤー+データ構造とアルゴリズム、みたいな雑な理解だった。"コンピュータサイエンス"というワードが入ったポエムを乱読して受けた印象としては多分普通のプログラマー、SEはこんな感じで理解している人がほとんどだと思う。

世間的にはコンピュータサイエンスを学ぼう、的な機運が高まってきていると思うが、個人的に逆の印象を抱いている。

主に実際に仕事でTaPLとかweikum本を片手にコード書いてる人見て認識が変わった。

CSは教養・エンジニアの嗜みというふうなものではなく、

CSはそれを知らないと作れないようなものを作るために学ぶのだと思う。

型システム入門 −プログラミング言語と型の理論−

型システム入門 −プログラミング言語と型の理論−

産業界でコンピュータサイエンスを理解して物作りに生かすのはかなり特殊な職業だと思う。

仕事で暗号化処理やコンパイラ、データベースを作るような人はごくごく限られている。

私のようなアプリ側を主に書くようなエンジニアにとってはコンピュータサイエンスの学習コストは割に合わないと思う。

前職までの勉強は理論の本質的な部分を理解するための勉強ではなく、ツールや言語の使い方になれるためのトレーニングに終始していた。勿論エンジニアリングのトレンドは変わっていくので、そういうトレーニングは今後も続けていく必要がある。

一方で文系SEの人とか、大学時代ちゃんと勉強していなかった理系の私みたいな人が、社会人になってからCS的なものを本気でガッチリやっていくのはどうなんだろうと思うことはある。

  • 知っておいた方がいい
  • 役に立つ

みたいな説がされているが、役に立たない知識や知ってて損する知識なんてほぼない(そんなものは面白い映画のネタバレくらいだろう)。

FE(基本情報)レベルの知識が理解*2できていて業務で使う可能性のある言語2,3個を一通りかければ、あとは工業簿記とか折半スキルとかを磨いていったほうがいいんじゃないかと思う。

まぁ勉強してて面白い分野だと思うのでしばらく趣味で続けますけど。

↓こういう本を読んでます&いきます

論理学をつくる

論理学をつくる

Computational Complexity

Computational Complexity

  • 作者:Christos H. Papadimitriou
  • 出版社/メーカー: Addison Wesley
  • 発売日: 1993/11/30
  • メディア: ペーパーバック

論理と計算のしくみ (岩波オンデマンドブックス)

論理と計算のしくみ (岩波オンデマンドブックス)

Computational Complexity: A Modern Approach

Computational Complexity: A Modern Approach

Computational Complexity

Computational Complexity

  • 作者:Christos H. Papadimitriou
  • 出版社/メーカー: Addison Wesley
  • 発売日: 1993/11/30
  • メディア: ペーパーバック

組合せ最適化 第2版 (理論とアルゴリズム)

組合せ最適化 第2版 (理論とアルゴリズム)

プログラミング原論

プログラミング原論

白と黒のとびら: オートマトンと形式言語をめぐる冒険

白と黒のとびら: オートマトンと形式言語をめぐる冒険

*1:楕円曲線暗号のこと

*2:私はFE、AP、SEを持っているがFEのあの広大なカリキュラムを完全に理解してるかと言えばそうでもない