nculwell.github.io

Computer science

Teach Yourself Computer Science

Another site that recommends some great resources: https://teachyourselfcs.com/

Basic programming and intros to CS

Theory

See also: Logic and Discrete Math

General

Complexity

Data structures and algorithms

Data structures and algorithms are two sides of the same coin. (In 1976, Niklaus Wirth published a book on the subject called Algorithms + Data Structures = Programs.)

Standard topics

These books cover the basics, that is, the core algorithms that everyone needs to know: sorting, tree traversal, etc.

Specialized algorithms

These focus on some more specialized areas of algorithms.

Programming language theory

Compilers and interpreters

Numerical methods

General

Linear algebra

Databases

Cryptography

Practical

Mathematical

Operating Systems

General introductions

Implementation

Specific systems

Systems programming in userspace

Hardware

TODO: Systems, FP, AI