├── README.md ├── further-reading.md └── machine-learning.md /README.md: -------------------------------------------------------------------------------- 1 | # Computer Science Resources 2 | 3 | Compilation of Computer Science courses, books, blog posts and videos. 4 | 5 | - _**The Fundamentals**_ (this list) - "classic" resources recommended to 6 | me by someone or popular in the internet. Focuses on the most fundamental and 7 | important concepts in Computer Science. 8 | - [_**Further Reading**_](/further-reading.md) - short blog posts, articles 9 | from the internet, more specific resources. Less fundamental, more practical 10 | (and typically up-to-date). 11 | - [_**Machine Learning**_](/machine-learning.md) - everything related to Machine 12 | Learning and its domains (Natural Language Processing, Reinforcement Learning, 13 | Computer Vision, etc). 14 | 15 | ## Algorithms and Data Structures 16 | 17 | - [ ] 📖 [Introduction to Algorithms](https://www.goodreads.com/book/show/108986.Introduction_to_Algorithms) (_"CLRS"_ — Cormen, Leiserson, Rivest, Stein, 2001) 18 | - [ ] 🎥 [Introduction to Algorithms](https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/) (course with assignments and solutions) 19 | - [ ] 📖 [The Algorithm Design Manual](https://www.algorist.com/) (Skienna, 2020) 20 | - [ ] 📖 [The Art of Computer Programming](https://www-cs-faculty.stanford.edu/~knuth/taocp.html) (Donald Knuth) 21 | - [ ] [Volume 1 – Fundamental Algorithms](https://www.goodreads.com/book/show/112247.The_Art_of_Computer_Programming_Volume_1) 22 | - [ ] [Volume 2 – Seminumerical Algorithms](https://www.goodreads.com/book/show/112246.The_Art_of_Computer_Programming_Volume_2) 23 | - [ ] [Volume 3 – Sorting and Searching](https://www.goodreads.com/book/show/363999.The_Art_of_Computer_Programming) 24 | - [ ] [Volume 4A – Combinatorial Algorithms, Part 1](https://www.goodreads.com/book/show/9412211-the-art-of-computer-programming-volume-4a) 25 | - [ ] 🔗 [CP-Algorithms](https://cp-algorithms.com/index.html) 26 | 27 | ## Distributed Systems 28 | 29 | - [ ] 🎥 [MIT Distributed Systems](http://nil.csail.mit.edu/6.824/2021/schedule.html) (Spring 2021) 30 | - [ ] 🎥 [Paxos & TLA+ Turing Award lectures](https://lamport.azurewebsites.net/tla/paxos-algorithm.html) (shorter videos with the core concepts, 2020) 31 | - [ ] 📄 [The Google Filesystem](https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf) (2003) 32 | - [ ] 📄 [MapReduce: Simplified Data Processing on Large Clusters](https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf) (Jeffrey Dean and Sanjay Ghemawat, 2004) 33 | - [ ] 📄 [The Chubby lock service for loosely-coupled distributed systems](https://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf) (2006) 34 | - [ ] 📄 [Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf) (2010) 35 | - [x] 📄 [The Byzantine Generals Problem](https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Byzantine-Generals-Problem.pdf) (Lamport et al., 1982) 36 | - [ ] 📄 [The Part-Time Parliament](https://lamport.azurewebsites.net/pubs/lamport-paxos.pdf) (_"The Paxos Paper"_, Lamport et al., 1998) 37 | - [ ] 📄 [Paxos made simple](https://lamport.azurewebsites.net/pubs/paxos-simple.pdf) 38 | - [ ] 📄 [Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services](https://users.ece.cmu.edu/~adrian/731-sp04/readings/GL-cap.pdf) (_"The CAP Theorem"_ proof, 2002) 39 | - [ ] 📄 [Time, Clocks, and the Ordering of Events in a Distributed System](https://lamport.azurewebsites.net/pubs/time-clocks.pdf) 40 | - [ ] [Distributed Computing in Practice: The Condor Experience](https://chtc.cs.wisc.edu/doc/condor-practice.pdf) (2005) 41 | - [ ] 📄 [CAP Twelve Years Later: How the "Rules" Have Changed](https://sites.cs.ucsb.edu/~rich/class/cs293b-cloud/papers/brewer-cap.pdf) (2012) 42 | - [ ] 📄 [In Search of an Understandable Consensus Algorithm](https://raft.github.io/raft.pdf) ("The Raft Paper", 2014) 43 | - [ ] 🔗 [raft.github.io](https://raft.github.io/raft.pdf) 44 | 45 | ## Databases 46 | 47 | - [ ] 🎥 CMU Database courses 48 | - [ ] [Intro to Database Systems](https://15445.courses.cs.cmu.edu/fall2024/), (Andy Pavlo, 2024, lectures + assignments) 49 | - [ ] [Advanced Database Systems](https://15721.courses.cs.cmu.edu/spring2023/) (Andy Pavlo, 2023, lectures + assignments) 50 | - [ ] 📖 [Designing Data Intensive Applications](https://www.goodreads.com/book/show/23463279-designing-data-intensive-applications) (2015) 51 | - [ ] 📄 [Spanner: Google's Globally-Distributed Database](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/39966.pdf) (_"The Spanner Paper"_, 2012) 52 | - [ ] 📄 [F1: A Distributed SQL Database That Scales](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41344.pdf) (_"The F1 paper"_, 2013) 53 | 54 | ## Programming Languages 55 | 56 | ### Rust 57 | 58 | - [x] 📖 [The Rust Programming Language](https://doc.rust-lang.org/book/) — the official Rust introduction book 59 | - [x] 🔗 [rustlings](https://github.com/rust-lang/rustlings) (a set of exercises for learning Rust) 60 | 61 | ### Python 62 | 63 | - [ ] 📖 [Fluent Python](https://www.goodreads.com/book/show/60733158-fluent-python) 64 | 65 | ## Systems Programming (Operating Systems, Low-Level Primitives, Hardware) 66 | 67 | - [ ] 🎥 [MIT's Operating System Engineering](https://pdos.csail.mit.edu/6.S081/2022/schedule.html) 68 | - [ ] 📖 [Computer Architecture: A Quantitative Approach](https://www.goodreads.com/book/show/70135.Computer_Architecture) 69 | - [ ] 📖 [Modern Operating Systems](https://www.goodreads.com/book/show/166195.Modern_Operating_Systems) (Tanenbaum, 2001) 70 | 71 | ### Networking 72 | 73 | - [ ] 🎥 + 📖 [Computer Networking: A Top-Down Approach](https://gaia.cs.umass.edu/kurose_ross/online_lectures.htm) 74 | - [ ] 📖 [Computer Networks](https://goodreads.com/book/show/166190.Computer_Networks) (Tanenbaum, 2021) 75 | - [ ] 📖 [The Protocols (TCP/IP Illustrated)](https://www.goodreads.com/book/show/505560.The_Protocols) (1993) 76 | 77 | ## Miscellaneous 78 | 79 | - [ ] 🎥 [Computer Systems Security](https://ocw.mit.edu/courses/6-858-computer-systems-security-fall-2014/) (MIT, 2014) 80 | - [ ] 🎥 [Introduction to Computer Graphics](https://youtube.com/playlist?list=PLQ3UicqQtfNuBjzJ-KEWmG1yjiRMXYKhh) (MIT, 2020) (+ [assignments](https://ocw.mit.edu/courses/6-837-computer-graphics-fall-2012/pages/assignments/)) 81 | - [ ] 🎥 [Machine Vision](https://ocw.mit.edu/courses/6-801-machine-vision-fall-2020/) (MIT, 2020) 82 | - [ ] 📖 [Concrete Mathematics: A Foundation for Computer Science](https://www.goodreads.com/book/show/112243.Concrete_Mathematics) (Graham, Knuth, Patashnik, 1994) 83 | - [ ] 📖 [Test-Driven Development](https://www.goodreads.com/book/show/387190.Test_Driven_Development) (2002) 84 | - [x] 📖 [The Pragmatic Programmer](https://www.goodreads.com/en/book/show/4099.The_Pragmatic_Programmer) (2019) 85 | -------------------------------------------------------------------------------- /further-reading.md: -------------------------------------------------------------------------------- 1 | # Further Reading 2 | 3 | [Competency 4 | Matrix](https://sijinjoseph.netlify.app/programmer-competency-matrix/) contains 5 | a good overview of what the good expertise in most areas of Software 6 | Engineering are. 7 | 8 | ## Algorithms and Data Structures 9 | 10 | - [ ] 🎥 [Algorithms and Data Structures courses at IFMO](https://youtube.com/playlist?list=PLrS21S1jm43igE57Ye_edwds_iL7ZOAG4) (2020-2021) 11 | - [ ] 🔗 [An introduction to lockless algorithms](https://lwn.net/Articles/844224/) 12 | 13 | ## Systems Programming (Operating Systems, Low-Level Primitives, Hardware) 14 | 15 | - [ ] 🎥 [Build a 6502 computer](https://eater.net/6502) 16 | - [ ] 📄 [What every programmer should know about memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) (Paper and [LWN post series](https://lwn.net/Articles/250967), 2007) 17 | - [ ] 🔗 [Computer Networking Introduction - Ethernet and IP (Heavily Illustrated)](https://iximiuz.com/en/posts/computer-networking-101/) 18 | 19 | ## Distributed Systems 20 | 21 | - [ ] 📖 [Patterns of Distributed Systems](https://martinfowler.com/articles/patterns-of-distributed-systems) 22 | - [ ] 📄 [Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications](https://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcomm.pdf) (2001) 23 | - [ ] 📄 [Spanner, TrueTime & The CAP Theorem](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45855.pdf) (2017) 24 | 25 | ## Miscellaneous 26 | 27 | - [x] 🎥 [Blockchain and Money](https://ocw.mit.edu/courses/15-s12-blockchain-and-money-fall-2018/) (MIT, 2018) 28 | - [x] 📄 [Bitcoin: A Peer-to-Peer Electronic Cash System](https://bitcoin.org/bitcoin.pdf) (Satoshi Nakomoto, 2008) 29 | - [ ] 📖 [Is Parallel Programming Hard, And, If So, What Can You Do About It?](https://arxiv.org/abs/1701.00854) 30 | - [ ] 📖 [Software Engineering at Google](https://abseil.io/resources/swe-book) 31 | - [ ] 📖 System Design by Alex Xu 32 | - [ ] [Part 1](https://www.goodreads.com/book/show/54109255-system-design-interview-an-insider-s-guide) 33 | - [ ] [Part 2](https://www.goodreads.com/book/show/60631342-system-design-interview-an-insider-s-guide) 34 | - [ ] 📖 [Physically Based Rendering](https://www.pbr-book.org/) (2023) 35 | - [ ] 📖 [Systems Performance: Enterprise and the Cloud](https://www.brendangregg.com/blog/2020-07-15/systems-performance-2nd-edition.html) 36 | - [ ] 📄 [Literate Programming](http://www.literateprogramming.com/knuthweb.pdf) (Knuth, 1984) 37 | - [ ] 🔗 [literateprogramming.com](http://www.literateprogramming.com) 38 | - [ ] 📄 [What Every Computer Scientist Should Know About Floating-Point Arithmetic](https://docs.oracle.com/cd/E19957-01/800-7895/800-7895.pdf) (Goldberg, 1991) 39 | - [ ] 🔗 [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/) (2013) 40 | - [ ] 🔗 [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)](https://tonsky.me/blog/unicode/) (2023) 41 | - [ ] 🔗 [Coding for SSDs](https://codecapsule.com/2014/02/12/coding-for-ssds-part-1-introduction-and-table-of-contents/) 42 | - [ ] 🔗 [Distributed Systems Challenge](https://fly.io/dist-sys/) 43 | 44 | ### Single videos 45 | 46 | - [ ] 🎥 [Real-Time Delivery Architecture at Twitter](https://www.infoq.com/presentations/Real-Time-Delivery-Twitter/) 47 | - [ ] 🎥 [Exciting Directions in Systems for Machine Learning](https://mlsys.org/virtual/2024/invited-talk/2592) (Jeff Dean) 48 | 49 | ## Other 50 | 51 | - [Papers We Love](https://github.com/papers-we-love/papers-we-love) is an extensive collection of Computer Science papers. 52 | - [Papers with code](https://paperswithcode.com/) 53 | -------------------------------------------------------------------------------- /machine-learning.md: -------------------------------------------------------------------------------- 1 | # Machine Learning 2 | 3 | ## 📖 Books 4 | 5 | - [ ] [Deep Learning Foundations and Concepts](https://www.bishopbook.com/) (Christopher Bishop, Hugh Bishop, 2023) 6 | - [ ] Probabilistic Machine Learning (Kevin Murphy) 7 | - [ ] [An Introduction](https://probml.github.io/pml-book/book1.html) 8 | - [ ] [Advanced Topics](https://probml.github.io/pml-book/book2.html) 9 | - [x] [Introduction to Probability for Data Science](https://probability4datascience.com/) 10 | - [ ] [Statistical Rethinking](https://xcelab.net/rm/) + lectures and code 11 | - [ ] [Jax scaling book](https://jax-ml.github.io/scaling-book/) 12 | - [ ] [The Ultrascale Playbook](https://huggingface.co/spaces/nanotron/ultrascale-playbook) 13 | - [ ] [RLHF book](https://rlhfbook.com/) 14 | - [ ] [Learning Theory from First Principles](https://www.di.ens.fr/~fbach/ltfp_book.pdf) (2024) 15 | - [ ] [Multi-Agent Reinforcement Learning](https://www.marl-book.com/) (2024) 16 | 17 | ## 🎥 Courses 18 | 19 | - [x] [Deep Learning Specialization](https://www.deeplearning.ai/courses/deep-learning-specialization/) (Coursera, DeepLearning.ai) 20 | - [ ] IAP Diffusion courses (MIT, 2025) 21 | - [ ] [A Practical Introduction to Diffusion Models](https://www.practical-diffusion.org/) 22 | - [ ] [Introduction to Flow Matching and Diffusion Models](https://diffusion.csail.mit.edu/) 23 | - [ ] [Language Modeling from Scratch](https://stanford-cs336.github.io/spring2025/) (Stanford, 2025) 24 | - [ ] [Advanced NLP](https://cmu-l3.github.io/anlp-spring2025/) (CMU, 2025) 25 | - [ ] [TinyML and Efficient Deep Learning Computing](https://hanlab.mit.edu/courses/2023-fall-65940) (2024, MIT) 26 | - [ ] [Transformers United](https://web.stanford.edu/class/cs25/) (2024, Stanford) 27 | - [ ] [Deep Generative Systems](https://www.youtube.com/playlist?list=PLoROMvodv4rPOWA-omMM6STXaWW4FvJT8) (2023, Stanford) 28 | - [ ] [Machine Learning with Graphs](https://snap.stanford.edu/class/cs224w-2021/) + [lectures](https://www.youtube.com/playlist?list=PLoROMvodv4rOP-ImU-O1rYRg2RFxomvFp) (2021, Stanford) 29 | - [ ] [Foundation Models & Generative AI](https://www.futureofai.mit.edu/) (2024, MIT) 30 | 31 | ## Misc 32 | 33 | - [ ] 🎥 [GPU Mode](https://github.com/gpu-mode/lectures) 34 | - [ ] [CUDA Puzzles](https://github.com/srush/gpu-puzzles) 35 | - [ ] [PMPP](https://www.amazon.com/Programming-Massively-Parallel-Processors-Hands-dp-0323912311/dp/0323912311) 36 | - [ ] [LeetGPU](https://leetgpu.com/challenges) 37 | - [ ] [awesomeMLSys](https://github.com/gpu-mode/awesomeMLSys) 38 | - [ ] [Andrej Karpathy videos](https://www.youtube.com/@AndrejKarpathy/videos) 39 | --------------------------------------------------------------------------------