/free-textbooks-for-amateur-or-professional-programmers

A list of carefully selected free online textbooks for amateur and professional programmers who want to learn fundamental theories on CS.

Introduction

This is a book list for amateur programmers - and also professional ones - who want to learn the fundamental theories on CS. Only the best of free textbooks and lecture notes are collected. They are introductory, accessible, entertaining and with beautiful typography.

A good guide can be found here. A (way) more comprehensive list of textbooks that are freely available online can be found here.


Math

Calculus by Gilbert Strang

Gilbert Strang wrote the famous Introduction to Linear Algebra. Though the calculus book is less famous, it is also an excellent text with sophisticated insights.

Link

Seeing Theory: A Visual Introduction to Probability and Statistics

Link

Notes on Discrete Mathematics

This is the most humorous lecture notes I have ever read.

Link

Theory of Computation

Introduction to Theoretical Computer Science (still WIP)

Link

Data Structures and Algorithms

Open Data Structures

Link

Algorithms by Jeff Erickson

Link

Programming Languages and Compilers

Structure and Interpretation of Computer Programs

This prestigious text is freely available online. Here is a better good looking one, and an interactive one.

Crafting Interpreters

Link

Operating Systems

Operating Systems: Three Easy Pieces

Link

Database

The Alice Book

Link

Red Book

Link

Computer Networks

Computer Networks: A Systems Approach

Link