Yukarinoki's Blog

自分用備忘録 CS自学者のために(Teach Your Self Computer Science)

June 22, 2020

概要

Teach Your Self Computer Science : https://teachyourselfcs.com/
のうちの自分が興味のある部分を自分用備忘録としてまとめておく。

言語・コンパイラ

インタプリタを作る crafting interpreters : https://craftinginterpreters.com/contents.html
ドラゴンブックをやる: https://smile.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811
ドラゴンブックの補足として: https://www.edx.org/course/compilers

ドラゴンブックをわかれば、わかっておくべきことのほとんどすべてはわかっていると言っても良い。

分散システム

まずこの本を読むべき: Designing Data-Intensive Applications
動画がいいなら: MIT’s 6.824 https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB
動画のテキストは: https://pdos.csail.mit.edu/6.824/schedule.html

そしたら、論文を読めばいい
読むべき論文リストは: http://dsrg.pdos.csail.mit.edu/papers/

コンピュータネットワーク

まず、やる本: Computer Networking: A Top-Down Approach
この本のExcersizeだけでもやるべき(オンライン上で完璧に提供されている): http://www-net.cs.umass.edu/wireshark-labs/

データベース

このコースを見よう: recordings of CS 186 https://www.youtube.com/user/CS186Berkeley/videos
RDBがなにやってるかはこの本をみる: Architecture of a Database System http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf

それが終わったら論文まとめ: the databases “Red Book” http://www.redbook.io/

Operating System

基本の教科書: http://pages.cs.wisc.edu/~remzi/OSTEP/

OSの個別論
Unix: Lions’ Commentary on Unix
MacOS: Mac OS X Internals: A Systems Approach
Linux: Linux Kernel Development

そしたら、xv6を実際にみて機能を追加してみる
xv6: https://pdos.csail.mit.edu/6.828/2016/xv6.html
追加する機能の例: http://pages.cs.wisc.edu/~remzi/OSTEP/lab-projects-xv6.pdf
追加する機能例はここでも見れる: https://github.com/remzi-arpacidusseau/ostep-projects


Written by yukarinoki
© 2022, Built with