Compilation of Computer Science courses, books, blog posts and videos.
- The Fundamentals (this list) - "classic" resources recommended to me by someone or popular in the internet. Focuses on the most fundamental and important concepts in Computer Science.
- Further Reading - short blog posts, articles from the internet, more specific resources. Less fundamental, more practical (and typically up-to-date).
- Machine Learning - everything related to Machine Learning and its domains (Natural Language Processing, Reinforcement Learning, Computer Vision, etc).
- 📖 Introduction to Algorithms ("CLRS" — Cormen, Leiserson, Rivest, Stein, 2001)
- 🎥 Introduction to Algorithms (course with assignments and solutions)
- 📖 The Algorithm Design Manual (Skienna, 2020)
- 📖 The Art of Computer Programming (Donald Knuth)
- 🔗 CP-Algorithms
- 🎥 MIT Distributed Systems (Spring 2023)
- 🎥 Paxos & TLA+ Turing Award lectures (shorter videos with the core concepts, 2020)
- 📄 The Anatomy of a Large-Scale Hypertextual Web Search Engine ("The Google Paper", Brin, Page, 1998)
- 📄 The Google Filesystem (2003)
- 📄 MapReduce: Simplified Data Processing on Large Clusters (Jeffrey Dean and Sanjay Ghemawat, 2004)
- 📄 The Chubby lock service for loosely-coupled distributed systems (2006)
- 📄 Dremel: Interactive Analysis of Web-Scale Datasets (2010)
- 📄 The Byzantine Generals Problem (Lamport et al., 1982)
- 📄 The Part-Time Parliament ("The Paxos Paper", Lamport et al., 1998)
- 📄 Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services ("The CAP Theorem" proof, 2002)
- 📄 Time, Clocks, and the Ordering of Events in a Distributed System
- Distributed Computing in Practice: The Condor Experience (2005)
- 📄 CAP Twelve Years Later: How the "Rules" Have Changed (2012)
- 📄 In Search of an Understandable Consensus Algorithm ("The Raft Paper", 2014)
- 🎥 CMU Database courses
- Intro to Database Systems, (Andy Pavlo, 2024, lectures + assignments)
- Advanced Database Systems (Andy Pavlo, 2023, lectures + assignments)
- 📖 Designing Data Intensive Applications (2015)
- 📄 A Case for Redundant Arrays of Inexpensive Disks (RAID) (Patterson, 1988)
- 📄 Bigtable: A Distributed Storage System for Structured Data ("The Bigtable Paper", 2006)
- 📄 Spanner: Google's Globally-Distributed Database ("The Spanner Paper", 2012)
- 📄 F1: A Distributed SQL Database That Scales ("The F1 paper", 2013)
- 📄 Dynamo: Amazon's Highly Available Key-value Store (2007)
- "Effective C++" series by Scott Meyers
- 📖 The Rust Programming Language — the official Rust introduction book
- 🔗 rustlings (a set of exercises for learning Rust)
- 🎥 MIT's Operating System Engineering
- 📖 Computer Architecture: A Quantitative Approach
- 📖 Modern Operating Systems (Tanenbaum, 2001)
- 📖 The UNIX TimeSharing System
- 📖 Reverse Engineering for Beginners
- 📖 The UNIX Programming Environment (Kernighan, Rob Pike)
- 📖 Crafting Interpreters (2021)
- 📖 Compilers: Principles, Techniques, and Tools ("The Dragon Book", Aho, Sethi, Ullman, 1986)
- 📖 Structure and Interpretation of Computer Programs ("SICP", 1996)
- 🎥 + 📖 Computer Networking: A Top-Down Approach
- 📖 Computer Networks (Tanenbaum, 2021)
- 📖 The Protocols (TCP/IP Illustrated) (1993)
- 🎥 Performance Engineering of Software Systems (MIT, 2018)
- 🎥 Computer Systems Security (MIT, 2014)
- 🎥 Introduction to Computer Graphics (MIT, 2020) (+ assignments)
- 🎥 Machine Vision (MIT, 2020)
- 🎥 Computer Systems Security (MIT, 2014)
- 📖 Concrete Mathematics: A Foundation for Computer Science (Graham, Knuth, Patashnik, 1994)
- 📖 Domain-Driven Design (2003)
- 📖 Test-Driven Development (2002)
- 📖 The Pragmatic Programmer (2019)