自分用備忘録 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