Awesome resources for learning about computery things while at (or not at) the Recurse Center.
Legend
Resource Type | Material Level | ||
---|---|---|---|
🔨 | Projects | 🐢 | Beginner (assumes little or no subject matter knowledge) |
📖 | Book | 🐇 | Intermediate (may require some subject matter knowledge or require a moderate amount of work) |
🎥 | Video(s) | 🐎 | Advanced (requires significant background knowledge or requires a significant amount of work) |
🧑🏫 | Online Course | ||
📄 | Paper |
Any resources that do not have a free version accessible (or require physical equipment other than a computer) are marked with a 💲.
- 🧑🏫 🎥 CS50 by David Malan (also available on EdX) - a popular first course in computer science. Accessible to newcomers and also helpful for people with some experience. It even has its dedicated StackExchange forum! Prof. Malan is one of the finest teachers in CS.
- 📖 💲 Computer Science Distilled - a small 180-page book providing a concise yet rigorous introduction to Computer Science
- 🧑🏫 CS50 Web by Brian Hu and David Malan (this is different than the vanilla CS50 mentioned above) - gives you a complete overview of the landscape of full-stack web development using HTML/CSS, Django, SQL, Javascript upto testing and CI/CD
- 🎥 Computer Networks (University of Washington) Networking Lectures taught in a bottom-up fashion
- 📖 Beej's Guide to Network Programming The go-to handbook to network programming
- 🔨 The UChicago X-Projects Project based learning networking. chirouter implements an IP router, chiTCP implements a subset of TCP, and chirc implements a subset of the IRC protocol.
- 📖 Use the Index, Luke Practical guide on database internals and indexing
- 🎥 UCBerkely's CS186 Introduction to Database Systems
- 📖 Crafting Interpreters A handbook for making programming languages.
- 📖 💲 Operating Systems: Three Easy Pieces OS Textbook centered around three concepts: virtualization, concurrency, and persistence.
- 📖 💲 Operating System Concepts (Tenth Edition) Another great OS textbook alternative.
- 🧑🏫 MIT Distributed Computer Systems Engineering (6.824) (notes)
- 📖 💲 Designing Data-Intensive Applications (DDIA)
- 📖 Fundamental Data Structures Wikipedia's book/index of wiki entries on fundamental data structures.
- 📖 Introduction to Algorithms (CLRS) A thorough algorithms textbook.
- 📖 Algorithm Design A great algorithms textbook alternative to CLRS.
- 📖 Algorithms by Jeff Erickson A digestable algorithms textbook with bite-sized chapters.
- 🎥 Algorithm and Data Structures by William Fiset High quality video series on data structures and algorithms.
- 🧑🏫 Stanford's CS166, Data Structures Great slides on data structures.
- 🎥 Harvard's COMPSCI 224, Advanced Algorithms High quality video lectures on advanced algorithms.
- 🧑🏫 🔨 🐇 Dan Grossman's Programming Language course (also on Coursera)
- 📖 🐢 Structure and Interpretation of Computer Programs
- 🧑🏫 🔨 🐢 NAND to Tetris Part I - Build a modern computer from basic logic gates
- 🧑🏫 🔨 🐇 NAND to Tetris Part II - Write a virtual machine, compiler, and an operating system
- 🎥 🔨 💲 Build an 8-bit Computer From Scratch
- 🎥 🐇 Sam Zeloof's channel on semiconductors, lithography, etc
- 🔨 🐇 💲 Knurling Sessions - Learn embedded Rust by building a CO2 sensor and/or a Minesweeper game