Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンピュータサイエンスのすべての分野に精通していると何が嬉しいか

 コンピュータサイエンスのすべての分野に精通していると何が嬉しいか

2019-07-05 社内LT会で発表した内容です。

typewriter / takuya

July 05, 2019
Tweet

More Decks by typewriter / takuya

Other Decks in Technology

Transcript

  1. CSのすべての分野に
    精通していると
    何が嬉しいか
    2019/07/05 たいぷらいたー
    コンピュータサイエンス

    View full-size slide

  2. たいぷらいたー @no_clock
    すき: 京都(訪ねた寺社: 70以上)
    百合(昨年読んだ漫画: 80冊)
    (あとC#, Ruby, Vimとか)
    2

    View full-size slide

  3. お手柔らかに
    3
    この分野は素人
    なのですが

    View full-size slide

  4. ▷語源
    ▷CSとはなにか
    ▷何が嬉しいか
    ▷たのしいCS
    CSのすべての分野に
    精通していると何が嬉しいか

    View full-size slide

  5. 語源: Job – Preferred Networks
    https://www.preferred-networks.jp/ja/job
    (2017/9/16時点, Internet Archive Wayback Machineによる復元)
    5

    View full-size slide

  6. 語源: Job – Preferred Networks
    https://www.preferred-networks.jp/ja/job
    (2017/9/16時点, Internet Archive Wayback Machineによる復元)
    6
    「コンピュータサイエンスのすべての
     分野、またはハードウェアや制御の
     すべての分野に精通していること」

    View full-size slide

  7. 7
    https://research.preferred.jp/2018/02/27nishikawa/

    View full-size slide

  8. 語源: Job – Preferred Networks
    8
    https://www.preferred-networks.jp/ja/jobs/researcher

    View full-size slide

  9. ▷語源
    ▷CSとはなにか
    ▷何が嬉しいか
    ▷たのしいCS
    CSのすべての分野に
    精通していると何が嬉しいか

    View full-size slide

  10. 10
    コードに深みが出る!
    味のあるコードが書ける!
    CS知ってると
    何が嬉しいんですか?
    ????????
    ????????


    View full-size slide

  11. 11
    ネットワークとか計算量と
    かグラフ理論とか…色々?
    (大丈夫かコイツ…)
    そもそもCSって
         なんですか?
    ????????
    ????????


    View full-size slide

  12. 12
    【株の知識ゼロ】バカが考えた株の漫画 Produced by バーグハンバーグバーグ

    View full-size slide

  13. ▷語源
    ▷CSとはなにか
    ▷何が嬉しいか
    ▷たのしいCS
    CSのすべての分野に
    精通していると何が嬉しいか

    View full-size slide

  14. 14
    プログラマだったら当然知ってるよね?という知識一覧 | anopara
    https://anopara.net/2019/05/11/basics-for-programmers/
    データ構造、計算量、アルゴリズム、
    数値計算、グラフ理論、理論計算機、
    セキュリティ・暗号化、CPU、OS、
    ソフトウェア工学、ネットワーク

    CSとはなにか

    View full-size slide

  15. 15
    CSとはなにか

    View full-size slide

  16. 16
    【株の知識ゼロ】バカが考えた株の漫画 Produced by バーグハンバーグバーグ

    View full-size slide

  17. ▷語源
    ▷CSとはなにか
    ▷何が嬉しいか
    ▷たのしいCS
    CSのすべての分野に
    精通していると何が嬉しいか

    View full-size slide

  18. “The Law of
    Leaky Abstractions
    漏れのある抽象化の法則
    - Joel Spolsky
    (Joel on Software著者)
    18

    View full-size slide

  19. The Law of Leaky Abstractions
    (漏れのある抽象化の法則)
    All non-trivial abstractions,
    to some degree, are leaky.
    自明でない抽象化は、
    ある程度漏れがある
    19
    The Law of Leaky Abstractions – Joel on Software
    https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/

    View full-size slide

  20. ▪ TCP - 信頼性の高い通信の実現
    ▫ 信頼性のない伝送路上で実装
    ▫ 遅かったり、途切れたりする
    →下位レイヤを気にする
     (ping、ケーブル抜き差し…)
    20
    The Law of Leaky Abstractions – Joel on Software
    https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
    The Law of Leaky Abstractions

    View full-size slide

  21. ▪ SQL/ORM - DB問合せの抽象化
    ▫ User.where(type: 'admin').
    order(:last_login_date)
    →「インデックス効いてる?」
    →「nullのソート順はDBMS次第」
    21
    The Law of Leaky Abstractions

    View full-size slide

  22. 22
    理想の抽象化
    Gordon Wrigley (CC BY 2.0)

    View full-size slide

  23. 23
    現実の抽象化
    Gordon Wrigley (CC BY 2.0)

    View full-size slide

  24. 24
    現実の抽象化
    Gordon Wrigley (CC BY 2.0)






    深淵に潜むコンピュータサイエンス

    View full-size slide

  25. 25
    コンピュータサイエンスは
    「抽象化の漏れ」への備え

    View full-size slide

  26. 26
    Vue.js + Firebase
    抽象化された深淵
    PHP/Perl
    MySQL
    Apache
    Linux
    (物理マシン)
    今昔抽象化物語
    すこしむかし  いま

    View full-size slide

  27. 「現代の優れたツールは
     信じられないほどの速さで
     多くの作業をこなせるが、
     ある日突然抽象化が漏れ出して、
     その解決に2週間を費やす」
    27
    The Law of Leaky Abstractions – Joel on Software
    https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
    The Law of Leaky Abstractions

    View full-size slide

  28. 28
    「抽象化の漏れ」への備えに
    コンピュータサイエンスは必要不可欠

    View full-size slide

  29. ▷語源
    ▷CSとはなにか
    ▷何が嬉しいか
    ▷たのしいCS
    CSのすべての分野に
    精通していると何が嬉しいか
    ネットワーク編

    View full-size slide

  30. $ netstat -s してみる(Windows可)
    30
    たのしいCS: 通信データは壊れている

    View full-size slide

  31. 無線LANで他機器と干渉しないために
    →送信前にランダム時間待つ
     (干渉したら2倍待つ)
    「適当に待っとればいつか
     干渉せず送信できるやろ!」
    31
    たのしいCS: IEEE 802.11 CSMA/CA

    View full-size slide

  32. ミリ秒単位で株取引
    ▪ 処理能力重要
    ▪ アルゴリズム重要
    ▪ 場所重要(取引所システムの近く)
    しかし、もしも、
    株価がわかる前に取引できたら…?
    32
    たのしいCS: 超高速取引

    View full-size slide

  33. 1. 株価受信途中に取引情報を送信開始
    (まだ株価はわかっていない)
    33
    たのしいCS: 超高速取引
    Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform
    http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf

    View full-size slide

  34. 1. 株価受信途中に取引情報を送信開始
    34
    たのしいCS: 超高速取引
    Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform
    http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf
    Ethernet frame (データリンク層)
    Dest Src Type データ ???
    ↑このへんで
     株価判明

    View full-size slide

  35. 1. 株価受信途中に取引情報を送信開始
    35
    たのしいCS: 超高速取引
    Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform
    http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf
    Ethernet frame (データリンク層)
    Dest Src Type データ Checksum
    ↑このへんで
     株価判明

    View full-size slide

  36. Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform
    http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf
    1. 株価受信途中に取引情報を送信開始
    2. 株価判明後、取引条件と不一致なら
     不正なチェックサムを送信
    3. 宛先のデバイスで無事に破棄される
    36
    たのしいCS: 超高速取引
    Ethernet frame (データリンク層)
    Dest Src Type データ Checksum

    View full-size slide

  37. 37
    たのしいCS: 超高速取引
    Research Report: The Arista 7124FX Switch as a High Performance Trade Execution Platform
    http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf
    株価受信:
    取引送信:
    0.000000170s

    View full-size slide

  38. CSはおもしろい!
    CSはこわくない!
    CSはすごい!
    さあ、
    CSをはじめよう!
    38

    View full-size slide