CS Fundamentals
How computers, systems and algorithms actually work.
The theory behind everything else. Hardware, operating systems, networks and algorithms, from free university-grade material.
91 resourcesSuggest a resource
Learning path
Work through these in order. Each step builds on the last.
Step 1: How computers work
From logic gates to a working machine.
Step 2: Programming foundations
Step 3: Systems
Operating systems and networking, the layer your code runs on.
Step 5: Build your own curriculum
Self-taught degree plans when you want to go all the way.
Everything in CS Fundamentals
Crash Course Computer Science
Forty short, friendly videos covering how computers work, from transistors to the internet.
youtube.com
Nand2Tetris
Build a computer from NAND gates up to an OS and a game, one layer at a time.
nand2tetris.org
CS50x
Harvard's intro to computer science and programming.
cs50.harvard.edu
Operating Systems: Three Easy Pieces
A free, readable textbook on virtualization, concurrency and persistence.
pages.cs.wisc.edu
Beej's Guide to Network Programming
Sockets and networking explained with humour and working C code.
beej.us
MIT 6.006 Introduction to Algorithms
Full MIT lectures, notes and problem sets on core algorithms and data structures.
ocw.mit.edu
Teach Yourself Computer Science
An opinionated list of the best book and lecture series for each CS subject.
teachyourselfcs.com
OSSU Computer Science
A complete, free CS degree path built from online courses.
github.com
CMU 15-445 Database Systems
How databases work inside, from storage to query execution, with recorded lectures.
15445.courses.cs.cmu.edu
Designing Data-Intensive Applications
The go-to book on how real systems store, replicate and process data.
dataintensive.net
The Missing Semester of Your CS Education
MIT's short course on the shell, Git, editors, debugging and other tools classes never teach.
missing.csail.mit.edu
MIT 6.042J Mathematics for Computer Science
Proofs, graphs, counting and probability for CS, with full lectures and the free textbook.
ocw.mit.edu
Mathematics for Computer Science (Book)
The free MIT textbook on discrete maths, proofs and probability used across many CS programs.
courses.csail.mit.edu
MIT 6.046J Design and Analysis of Algorithms
MIT's follow-up to 6.006 covering advanced algorithm design, with full video lectures.
ocw.mit.edu
MIT 6.004 Computation Structures
Digital logic, processors and memory hierarchies, building up to a working computer.
ocw.mit.edu
MIT 6.824 Distributed Systems
The classic distributed systems course with Raft and key-value store labs in Go.
pdos.csail.mit.edu
MIT 6.828 / 6.1810 Operating System Engineering
Learn OS internals by hacking on xv6, a small Unix-like teaching kernel.
pdos.csail.mit.edu
xv6 Book
A short, readable walkthrough of a real Unix-like kernel and its source code.
pdos.csail.mit.edu
MIT 6.045 Automata, Computability and Complexity
Theory of computation from finite automata to Turing machines and P vs NP.
ocw.mit.edu
MIT 18.404J Theory of Computation
Michael Sipser's own lectures on automata, computability and complexity.
ocw.mit.edu
MIT 6.001 Structure and Interpretation of Computer Programs
The legendary MIT course on abstraction and program design using Scheme.
ocw.mit.edu
Structure and Interpretation of Computer Programs
The classic SICP textbook, free online, on how to think about programs.
mitp-content-server.mit.edu
CS 61A Structure and Interpretation of Computer Programs
Berkeley's intro to programming and abstraction in Python, with labs and projects.
cs61a.org
Composing Programs
The free textbook behind CS 61A, a Python take on SICP.
composingprograms.com
CS 61B Data Structures
Berkeley's data structures course in Java, with lectures, labs and projects.
sp24.datastructur.es
CS 61C Great Ideas in Computer Architecture
Berkeley's machine structures course covering C, RISC-V, caches and parallelism.
cs61c.org
CMU 15-213 Introduction to Computer Systems
CMU's famous systems course with the bomb, attack and malloc labs.
cs.cmu.edu
Computer Systems: A Programmer's Perspective
The CS:APP textbook on how programs run on real hardware, used in 15-213.
csapp.cs.cmu.edu
CMU 15-721 Advanced Database Systems
Andy Pavlo's graduate course on modern analytical database internals.
15721.courses.cs.cmu.edu
CMU Database Group YouTube
Recorded database lectures and talks from Andy Pavlo's group at CMU.
youtube.com
Stanford CS144 Introduction to Computer Networking
Build a TCP implementation from scratch while learning how the internet works.
cs144.github.io
Stanford CS143 Compilers
Lexing, parsing, semantic analysis and code generation, building a compiler for a small language.
web.stanford.edu
Stanford CS106B Programming Abstractions
Stanford's second programming course on recursion, data structures and abstractions in C++.
web.stanford.edu
Crafting Interpreters
Build two complete interpreters for a scripting language, free online and beautifully written.
craftinginterpreters.com
Writing a C Compiler
A hands-on book that walks you through building a real C compiler step by step.
nostarch.com
Build Your Own Lisp
Learn C by building your own small programming language.
buildyourownlisp.com
Computer Networking: A Top-Down Approach
The Kurose and Ross networking textbook site with free lectures, slides and Wireshark labs.
gaia.cs.umass.edu
Computer Networks: A Systems Approach
A free, open-source networking textbook by Peterson and Davie.
book.systemsapproach.org
High Performance Browser Networking
Free book on TCP, TLS, HTTP/2, WebSockets and what makes the web fast.
hpbn.co
How DNS Works
A short illustrated comic that explains DNS lookups from start to finish.
howdns.works
Julia Evans' Zines
Friendly illustrated zines on networking, Linux, Git and debugging.
wizardzines.com
Ben Eater
Build an 8-bit computer on breadboards and learn exactly how CPUs work.
youtube.com
Code: The Hidden Language of Computer Hardware and Software
Charles Petzold's classic, approachable book on how computers work from first principles.
charlespetzold.com
Computer Organization and Design RISC-V Edition
Patterson and Hennessy's standard textbook on processor design and the hardware/software interface.
shop.elsevier.com
Onur Mutlu Lectures
Full computer architecture courses from ETH Zurich and CMU, recorded and free.
youtube.com
CPUlator
A browser-based simulator for ARM, MIPS and RISC-V assembly programs.
cpulator.01xz.net
Compiler Explorer
Type code and instantly see the assembly that dozens of compilers produce.
godbolt.org
Operating Systems by Neso Academy
A popular, beginner-friendly video series covering a full university OS syllabus.
youtube.com
Gate Smashers
Hindi video lectures on OS, DBMS, networks and theory of computation for GATE and exams.
youtube.com
NPTEL Computer Science
Free IIT and IISc video courses on every core CS subject, with optional certification.
nptel.ac.in
OSDev Wiki
The community wiki for writing your own operating system from bootloader up.
wiki.osdev.org
Writing an OS in Rust
A blog series that builds a small x86 kernel in Rust, step by step.
os.phil-opp.com
The Little Book of Semaphores
A free book of concurrency puzzles that teaches synchronization patterns.
greenteapress.com
Linux Kernel Labs
University lectures and hands-on labs for learning Linux kernel development.
linux-kernel-labs.github.io
Database System Concepts
The Silberschatz textbook site with slides and exercises on relational databases.
db-book.com
Use The Index, Luke
A free guide to SQL indexing and query performance for developers.
use-the-index-luke.com
Architecture of a Database System
A classic paper giving a tour of how relational databases are built inside.
dsf.berkeley.edu
Build Your Own Redis
Build a Redis-like server in C++ and learn network programming and data structures.
build-your-own.org
Let's Build a Simple Database
Write a SQLite clone in C to learn how databases store and query data.
cstack.github.io
Build Your Own X
A huge list of tutorials for rebuilding Git, Docker, databases, OSes and more from scratch.
github.com
CodeCrafters
Guided challenges to build Redis, Git, SQLite and an HTTP server yourself.
codecrafters.io
The System Design Primer
The most popular open guide to designing large-scale systems, with exercises.
github.com
ByteByteGo
Short animated videos explaining system design concepts and real architectures.
youtube.com
High Scalability
Long-running blog of real-world architecture write-ups from big companies.
highscalability.com
Awesome Scalability
A curated reading list of articles on scalability, reliability and performance.
github.com
Hello Interview System Design
A free, practical guide to system design interviews with core concepts and worked examples.
hellointerview.com
Distributed Systems Lecture Series (Martin Kleppmann)
Cambridge lectures on consensus, replication, time and consistency by the DDIA author.
youtube.com
Distributed Systems for Fun and Profit
A short free book covering the key ideas behind distributed systems.
book.mixu.net
The Raft Consensus Algorithm
The Raft paper, visualization and implementations, the easiest way into consensus.
raft.github.io
Papers We Love
A community repo of classic and influential computer science papers.
github.com
Introduction to the Theory of Computation (Sipser)
The standard textbook on automata, computability and complexity.
math.mit.edu
Discrete Mathematics by Kimberly Brehm
A clear YouTube course on logic, sets, counting, relations and graphs.
youtube.com
Discrete Mathematics: An Open Introduction
A free, open textbook on counting, logic, graph theory and proofs.
discrete.openmathbooks.org
Book of Proof
A free introduction to writing mathematical proofs, ideal before theory courses.
richardhammack.github.io
Open Data Structures
A free textbook on data structures with analysis and code in Java, C++ and pseudocode.
opendatastructures.org
Algorithms by Jeff Erickson
A free, rigorous algorithms textbook from UIUC with lecture notes.
jeffe.cs.illinois.edu
What Every Programmer Should Know About Memory
Ulrich Drepper's deep dive into caches, RAM and how memory affects performance.
akkadia.org
Latency Numbers Every Programmer Should Know
An interactive chart of how long common operations take, from L1 cache to cross-continent.
colin-scott.github.io
Computer Science Distilled
A short, illustrated book on core CS ideas for beginners.
code.energy
Developer Roadmaps Computer Science
A visual roadmap of CS topics with links to learn each one.
roadmap.sh
Coding Interview University
A popular multi-month CS study plan covering everything from hardware to algorithms.
github.com
Computer Science Video Courses
A huge index of university CS lecture videos available online.
github.com
Free Programming Books
The largest list of free programming and CS books in many languages.
github.com
Low Level
Videos on C, assembly, memory safety and how software meets hardware.
youtube.com
Core Dumped
Animated videos explaining OS concepts like processes, scheduling and memory.
youtube.com
Computerphile
Short videos with researchers explaining CS ideas from compilers to cryptography.
youtube.com
Spanning Tree
Beautifully animated short explainers on algorithms and core CS concepts.
youtube.com
Branch Education
Detailed 3D animations of how CPUs, GPUs, SSDs and the internet physically work.
youtube.com
Hussein Nasser
In-depth videos on backend engineering, databases, protocols and networking.
youtube.com
The Architecture of Open Source Applications
Free books where authors explain the design of famous open source systems.
aosabook.org
Linux From Scratch
Build a complete Linux system yourself from source to see how every piece fits.
linuxfromscratch.org
Nothing here matches those filters.