bobeff/programming-math-science
This is a list of links to different freely available learning resources about computer programming, math, and science.
Programming, Math, Science
This is a list of links to different freely available learning resources about computer programming, math, and science.
Table of contents
- AI
- Algorithms
- Art
- Biology
- Command Line and Tools
- Competitions and Interview Preparation Websites
- Compilers and Interpreters
- Computer Graphics
- Computer Networks and Network Programming
- Cryptography
- Data Science
- Debuggers
- Databases
- Demoscene
- Design Patterns
- DevOps
- Digital Signal Processing
- Distributed Systems
- Electronics
- Emulators and Virtual Machines
- Game Programming
- General Programming
- Geographic Information Systems
- GUI Programming
- Hardware
- Information Theory
- IQ Tests
- Logical Games
- Low Level Stuff
- Math
- Algebra
- Analysis
- Calculus
- Category Theory
- Differential Equations
- Game Theory
- General problem solving
- Geometry
- Combinatorics
- High School Math
- Mathematical Finance
- Mathematical Logic
- Measure Theory
- Number Theory
- Numerical Analysis
- Operations Research
- Probability and Statistics
- Proofs
- Theoretical Computer Science
- Topology*
- Multithreading and Concurrency
- Music Theory
- Operating Systems
- Photography
- Physics
- Programming Languages
- Retrocomputing
- Reverse engineering
- Robotics
- System programming
- Technical Writing
- Testing
- Text editors
- Unicode
- Version control tools
- Web programming
- Personal Websites and Blogs
- Other
- Other lists
AI
Agentic Design Patterns by Antonio Gulli
Maths, CS & AI Compendium by Henry Ndubuaku
Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig
Machine Learning
A Brief Introduction to Machine Learning for Engineers by Osvaldo Simeone
A Brief Introduction to Neural Networks by David Kriesel
A Comprehensive Guide to Machine Learning by Soroush Nasiriany, Garrett Thomas, William Wang, Alex Yang, Jennifer Listgarten, Anant Sahai [pdf]
A Course in Machine Learning by Hal Daumé III
A Gentle Introduction to Graph Neural Networks by Benjamin Sanchez-Lengeling, Emily Reif, Adam Pearce and Alexander B. Wiltschko
Algorithmic Aspects of Machine Learning by Ankur Moitra [pdf]
Algorithms for Artificial Intelligence by Robert J. Moss [dpf] [Stanford]
Alice’s Adventures in a differentiable wonderland by Simone Scardapane
aman.ai - The art of artificial intelligence one concept at a time by Aman Chadha
An Illustrated Guide to Automatic Sparse Differentiation by Adrian Hill, Guillaume Dalle, and Alexis Montoison
An Introduction to Statistical Learning by Gareth James, Daniela Witten, Trevor Hastie, Rob Tibshirani
Applied Causal Inference Powered by ML and AI by Victor Chernozhukov, Christian Hansen, Nathan Kallus, Martin Spindler, and Vasilis Syrgkanis
Applied Machine Learning for Tabular Data by Max Kuhn and Kjell Johnson
Computer Vision: Algorithms and Applications, 2nd Edition by Richard Szeliski
Concise Machine Learning by Jonathan Richard Shewchuk [pdf]
Crash Course in Deep Learning (for Computer Graphics) by Jakub Boksansky [alternative link]
Data Science and Machine Learning: Mathematical and Statistical Methods by Dirk P. Kroese, Zdravko I. Botev, Thomas Taimre, Radislav Vaisman
Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control by Steven L. Brunton and J. Nathan Kutz [pdf]
Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville
Deep Learning by Subir Varma and Sanjiv Das
Deep Learning Course by François Fleuret
Deep Learning: Foundations and Concepts by Chris Bishop with Hugh Bishop
Deep Learning: Foundations, Architectures, and Engineering Practice by Amer Hussein [pdf]
Deep Learning Interviews by Shlomo Kashani and Amir Ivry
Deep Learning on Graphs by Yao Ma and Jiliang Tang
Deep Learning with Python, Second Edition by François Chollet [pdf]
Foundations of Computer Vision by Antonio Torralba, Phillip Isola, and William Freeman
Foundations of Machine Learning by Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar [MIT]
GNN From Scratch by **
Harvard's undergraduate course in Machine Learning by William J. Deuschle
Introduction to Flow Matching and Diffusion Models by Peter Holderrieth and Ezra Erives
Introduction to ggml by Xuan Son NGUYEN, Georgi Gerganov and slaren
Introduction to Machine Learning by Alex Smola and S.V.N. Vishwanathan [pdf]
Introduction to Machine Learning by Sanjeev Arora, Simon Park, Dennis Jacob and Danqi Chen [Princeton]
Introduction to Machine Learning [pdf] [MIT]
Introduction to Machine Learning Interviews by Chip Huyen
Introduction to Machine Learning Systems by Vijay Janapa Reddi
Learning Theory from First Principles by Francis Bach [pdf]
Lecture Notes for Machine Learning and Data Science Courses Information School, University of Washington by Ott Toomet [pdf]
Lecture Notes for Machine Learning Theory by Tengyu Ma [pdf]
Machine Learning Engineering Open Book by Stas Bekman
Machine Learning Lecture Notes by Andrew Ng and Tengyu Ma [pdf] [Stanford]
Machine Learning Systems by Vijay Janapa Reddi
Machine learning with neural networks by Bernard Mehling [pdf]
Neural Networks and Deep Learning by Michael Nielsen
Natural Language Processing by Sanjiv Ranjan Das
Notes on AutoGrad by Anton Schreiner
Patterns, Predictions, and Actions: A story about machine learning by Moritz Hardt and Benjamin Recht
Physics-based Deep Learning by N. Thuerey, P. Holl, M. Mueller, P. Schnell, F. Trost, K. Um
Probabilistic Artificial Intelligence by Andreas Krause, Jonas Hübotter
Probabilistic Machine Learning: An Introduction by Kevin Patrick Murphy
Probabilistic Machine Learning: Advanced Topics by Kevin Patrick Murphy
Speech and Language Processing, 3rd edition by Daniel Jurafsky and James H. Martin
Statistical Learning Theory by Percy Liang [pdf]
The Elements of Differentiable Programming by Mathieu Blondel and Vincent Roulet
The Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani, and Jerome Friedman
The Engineer's Guide To Deep Learning by Hironobu Suzuki
The Little Book of Deep Learning by François Fleuret
The Little Book of Generative AI Foundations: An Intuitive Mathematical Primer by Tianhua Chen
The Most Important Machine Learning Equations: A Comprehensive Guide by Chizoba Obasi
The Principles of Deep Learning Theory by Daniel A. Roberts, Sho Yaida, Boris Hanin
The Principles of Diffusion Models: From Origins to Advances by Chieh-Hsin Lai, Yang Song, Dongjun Kim, Yuki Mitsufuji, Stefano Ermon
Theory of Deep Learning by Zhao Song [pdf]
Tutorial on Diffusion Models for Imaging and Vision by Stanley H. Chan
Undergraduate Fundamentals of Machine Learning by William J. Deuschle
Understanding Deep Learning by Simon J.D. Prince
Understanding Machine Learning: From Theory to Algorithms by Shai Shalev-Shwartz and Shai Ben-David
Large Language Models
A Visual Guide to Quantization: Demystifying the Compression of Large Language Models by Maarten Grootendorst
Defeating Nondeterminism in LLM Inference by Horace He
Foundations of Large Language Models by Tong Xiao and Jingbo Zhu
How to Scale Your Model: A Systems View of LLMs on TPUs by Jacob Austin, Sholto Douglas, Roy Frostig, Anselm Levskaya, Charlie Chen, and Sharad Vikram
How to run LLMs on PC at home using Llama.cpp by Tobias Mann
Language Models Interview Handbook by Lamhot Siagian [pdf]
Quantization from the ground up by Sam Rose
The Big Book of Large Language Models by Damien Benveniste
Machine Learning Online Courses
Neural Networks: Zero to Hero - A course by Andrej Karpathy
Mathematics for Machine Learning
Linear Algebra for Computer Vision, Robotics, and Machine Learning by Jean Gallier and Jocelyn Quaintance [pdf]
Mathematical Analysis of Machine Learning Algorithms by Tong Zhang
Mathematical Foundations of Machine Learning by Robert Nowak [pdf]
Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory by Arnulf Jentzen, Benno Kuckuck, Philippe von Wurstemberger
Mathematics for Artificial Intelligence Lecure Notes by Gilles Blanchard [pdf]
Mathematics for Machine Learning by Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong
Mathematics for Machine Learning by Garrett Thomas [pdf]
Mathematics for Inference and Machine Learning by Marc Deisenroth and Stefanos Zafeiriou [pdf]
Mathematics of Machine Learning by Philippe Rigollet
Mathematics of Machine Learning by Rajen D. Shah
Mathematics of Neural Networks by Bart M.N. Smets
Matrix Calculus (for Machine Learning and Beyond) by Paige Bright, Alan Edelman, and Steven G. Johnson
Optimization for Data Science by Bernd Gartner, Niao He and Martin Jaggi [pdf]
Pen and Paper Exercises in Machine Learning by Michael U. Gutmann
The Matrix Calculus You Need For Deep Learning by Terence Parr and Jeremy Howard
Reinforcement learning
A Little Bit of Reinforcement Learning from Human Feedback by Nathan Lambert
Deep Reinforcement Learning by Aske Plaat
Distributional Reinforcement Learning by Marc G. Bellemare, Will Dabney and Mark Rowland
Mathematical Foundations of Reinforcement Learning by Shiyu Zhao
Multi-Agent Reinforcement Learning: Foundations and Modern Approaches by Stefano V. Albrecht, Filippos Christianos and Lukas Schäfer
Reinforcement Learning: An Introduction, Second Edition by Richard S. Sutton and Andrew G. Barto
Reinforcement Learning: An Overview by Kevin Murphy
Computer Games AI
Artificial Intelligence and Games by Georgios N. Yannakakis and Julian Togelius
Game AI Pro by Steve Rabin
Programming Starcraft AI by Peter Kis
Vibe Coding and Spec-Driven Development
AI-Assisted Coding: A Practical Guide for Software Engineers by Durgesh Rajubhai Pawar
Basic Claude Code by Harper Reed
Disciplined AI Software Development by Jay Baleine
Diving Into Spec-Driven Development With GitHub Spec Kit by Den Delimarsky
How I program with Agents by David Crawshaw
How I program with LLMs by David Crawshaw
How I Use Every Claude Code Feature by Shrivu Shankar
My LLM codegen workflow atm by Harper Reed
Spec-driven development with AI: Get started with a new open source toolkit by Den Delimarsky
The complete guide to Codex by Flavio Copes
Vibe Coding Terminal Editor by Alex Kladov
Algorithms
A First Course on Data Structures in Python by Donald R. Sheehy
Advanced Algorithms by Anupam Gupta [pdf] [CMU]
Advanced Algorithms by Mohsen Ghaffari [pdf] [ETH]
Advanced Algorithms by Prof. Michel Goemans [MIT]
Advanced Algorithm Design by Sanjeev Arora [Princeton] [Fall 2015]
Advanced Algorithm Design by Pravesh Kothari and Christopher Musco [Princeton] [Fall 2018]
Advanced Data Structures by Erik Demaine
Algorithms by Jeff Erickson
Algorithms by Sariel Har-Peled [pdf]
Algorithms Course by Prof. Frank Stajano [Cambridge]
Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
Algorithms and Data Structures by Kurt Mehlhorn and Peter Sanders [pdf]
Algorithms Books by Mykel J. Kochenderfer
- Algorithms for Optimization by Mykel J. Kochenderfer, and Tim A. Wheeler
- Algorithms for Decision Making by Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray
- Algorithms for Validation by Mykel J. Kochenderfer, Sydney M. Katz, Anthony L. Corso, and Robert J. Moss
Algorithms Design (in C) by Paulo Feofiloff
Algorithms for Inference by Prof. Devavrat Shah
Algorithms for Massive Data by Nicola Prezza
Algorithms for Modern Hardware by Sergey Slotin
Algorithms in C by Robert Sedgewick [pdf]
An Open Guide to Data Structures and Algorithms by Paul W. Bible and Lucas Moser
Approximation Algorithms by Chandra Chekuri [pdf]
Book of All-pairs Shortest Paths by Oleg Karasik
Clever Algorithms: Nature-Inspired Programming Recipes by Jason Brownlee
Collision Detection by Jeff Thompson
Data Structure Visualizations by David Galles
Data Structures & Algorithm Analysis by Clifford A. Shaffer
Data Structures & Algorithms in C++, Second Edition by Michael T. Goodrich, Roberto Tamassia, and David M. Mount [pdf]
Data Structures for Data-Intensive Applications: Tradeoffs and Design Guidelines by Manos Athanassoulis , Stratos Idreos and Dennis Shasha [pdf]
Design and Analysis of Algorithms by Nima Anari and Moses Charikar
Essential Coding Theory by Venkatesan Guruswami, Atri Rudra, and Madhu Sudan
Exact String Matching Algorithms by Christian Charras and Thierry Lecroq
Foundations of Data Science by Avrim Blum, John Hopcroft, and Ravindran Kannan [pdf]
Functional Data Structures and Algorithms: A Proof Assistant Approach by Tobias Nipkow, Jasmin Blanchette, Manuel Eberl, Alejandro Gómez-Londoño, Peter Lammich, Christian Sternagel, Simon Wimmer, Bohua Zhan
How does B-tree make your queries fast? by Mateusz Kuźmik
Introduction to Algorithms: A Creative Approach by Udi Manber [pdf]
Introduction to Multi-Armed Bandits by Aleksandrs Slivkins
Introduction to Parallel Algorithms by Guy E. Blelloch, Laxman Dhulipala, and Yihan Sun [pdf]
Kalman Filter from the Ground Up by Alex Becker
Lecture Notes on Quantum Algorithms by Andrew M. Childs [pdf]
Let's build a Full-Text Search engine by Artem Krylysov
Matters Computational: Ideas, Algorithms, Source Code by Jörg Arndt [pdf]
Monte-Carlo Graph Search from First Principles by David J Wu
Notes on Algorithms by James Aspnes
Notes on Data Structures and Programming Techniques by James Aspnes
Notes on Randomized Algorithms by James Aspnes [pdf]
Open Data Structures by Pat Morin
Planning Algorithms by Steven M. LaValle
Principles of Algorithmic Problem Solving by Johan Sannemo
Problem Solving with Algorithms and Data Structures using Python by Brad Miller and David Ranum
Purely Functional Data Structures by Chris Okasaki [pdf]
Sequential and Parallel Data Structures and Algorithms: The Basic Toolbox by Peter Sanders, Kurt Mehlhorn, Martin Dietzfelbinger, and Roman Dementiev
The Little Book of algorithms by Duc-Tam Nguyen
The Skyline algorithm for packing 2D rectangles by Julien Vernay
Think Data Structures by Allen B. Downey
Bloom Filters
Bloom Filters by Eli Bendersky
Let's implement a Bloom Filter by Onat Yiğit Mercan
Date-time
- A Very Fast 64–Bit Date Algorithm by Ben Joffe
Diff Algorithms
Building Git by James Coglan
- The Myers diff algorithm
- Myers diff in linear space
- Merging with diff3
- Why merges fail and what can be done about it
- The patience diff algorithm
- Implementing patience diff
Myers Diff Algorithm - Code & Interactive Visualization by Robert Elder
Art
- Pixel art articles and tutorials by Pedro Medeiros
Biology
The Algorithmic Beauty of Plants by Przemyslaw Prusinkiewicz and Aristid Lindenmayer [pdf]
Command Line and Tools
A deep dive into Ghostty by Flavio Copes
A deep dive into tmux by Flavio Copes
Command Line Handbook by Petr Stribny
Driving Compilers by Fabien Sanglard
Getting started with tmux by ittavern
How I'm still not using GUIs: A guide to the terminal by Lucas Fernandes da Costa
How is a binary executable organized? Let's explore it! by Julia Evans
Learn Makefiles: With the tastiest examples by Chase Lambert
rsync: Series by Michael Stapelberg
SSH for developers by Flavio Copes
Terminal colours are tricky by Julia Evans
Use Midnight Commander like a pro by Igor Klimer
Write a Shell in C by Stephen Brennan
Writing Programs with NCURSES by Eric S. Raymond and Zeyd M. Ben-Halim
Writing Your Own Simple Tab-Completions for Bash and Zsh by Li Haoyi
Curl
Curl Exercises by Julia Evans
Mastering curl: interactive text guide by Anton Zhiyanov
Linux command line
Effective Shell by Dave Kerr
GameShell: a "game" to teach the Unix shell by Pierre Hyvernat
Linux command line for you and me by Kushal Das
The Linux Command Handbook by Flavio Copes
The Linux Command Line by William Shotts
Nix
NixOS & Flakes Book - An unofficial book for beginners by Ryan Yin
Wombat’s Book of Nix by Amy de Buitléir
Competitions and Interview Preparation Websites
Math
Preparation Resources
Easy Putnam Problems [pdf]
Mathematical Problem Solving by Darij Grinberg
My Putnam Problems by Avinash Sathaye [pdf]
Putnam Training Problems [pdf]
Physics
Programming
Advent of Code - An Advent calendar of small programming puzzles by Eric Wastl
Code Golf - A site for recreational programming competitions.
CodingBat - A free site of live coding problems to build coding skill in Java and Python.
Kaggle - ML specific.
LabEx - Learn Linux, DevOps & Cybersecurity with Hands-on Labs.
Rosalind - A platform for learning bioinformatics through problem solving.
Preparation Resources
Competitive Programmer's Handbook by Antti Laaksonen
Competetive Programming by Steven Halim [pdf]
Competitive Programming in Python: 128 Algorithms to Develop your Coding Skills by Christoph Dürr and Jill-Jênn Vie
Compilers and Interpreters
A Compiler Writing Journey by Warren
A practical introduction to parsing by Jan Procházka
Advanced Compilers: The Self-Guided Online Course by Adrian Sampson
Build Your Own Lisp by Daniel Holden
Building a Toy Programming Language in Python by Miguel Grinberg
Building the fastest Lua interpreter.. automatically! by Haoran Xu
Compiler Design in C by Allen I. Holub
Compiling to Assembly from Scratch by Vladimir Keleshev
Crafting Interpreters by Robert Nystrom
Creating the Bolt Compiler by Mukul Rathi
Essentials of Compilation: An Incremental Approach by Geremy G. Siek
Graal Truffle tutorial by Adam Ruka
How Clang Compiles a Function by John Regehr
How LLVM Optimizes a Function by John Regehr
Introduction to Compilers by Andrew Myers
Introduction to Compilers and Language Design by Prof. Douglas Thain
Introduction to parser combinators by James Coglan
Let's Build a Compiler by Jack Crenshaw
Let's make a Teeny Tiny compiler by Austin Z. Henley
Let's Write a Compiler by Brian Robert Callahan
Low-Level Software Security for Compiler Developers by Bill Wendling, Lucian Popescu, and Anders Waldenborg
Make A Language - A series about making a programming language called Eldiro using the Rust programming language.
Writing a C compiler in 500 lines of Python by Theia Vogel
Writing a C Compiler, in Zig by Rahman Sibahi
Static Program Analysis
Principles of Program Analysis by Flemming Nielson, Hanne Riis Nielson, and Chris Hankin
Secure Programming with Static Analysis by Brian Chess and Jacob West
Static Program Analysis by Anders Møller and Michael I. Schwartzbach
Computer Graphics
3D Gaussian Splatting in a Weekend by Benjamin Feldman
3D Math Primer for Graphics and Game Development by Fletcher Dunn and Ian Parberry
A fast and precise triangle rasterizer by Kristoffer Dyrkorn
A trip through the Graphics Pipeline by Fabian Giesen
A Quick Introduction to Workgraphs by Kostas Anagnostou
Building Real-Time Global Illumination by Jason McGhee
Computer Graphics from Scratch by Gabriel Gambetta
Crash Course in BRDF Implementation by Jakub Boksansky
FrostKiwi's Secrets by Wladislav Artsimovich
Introduction to Computer Graphics by David J. Eck
Noise is Beautiful: Part 1: Procedural textures by Stefan Gustavson [pdf]
Noise is Beautiful by Stefan Gustavson
Radiometry: Overview by Christoph Peters
GPU Gems Books Series
GPU Performance for Game Artists by Keith O’Conor
GPU Programming Primitives for Computer Graphics by Daniel Meister, Atsushi Yoshimura, and Chih-Chen Kao
Implementing a tiny CPU rasterizer by Nikita Lisitsa
Implementing Order-Independent Transparency by Rubén Osorio López
Lode's Computer Graphics Tutorial by Lode Vandevenne
Matrix Compendium by Łukasz Izdebski - The main purpose of this article is to gather information in the field of transformation in computer graphics and put it in one place.
Ocean Rendering, Part 1 - Simulation by Robert Ryan
Optimizing Software Occlusion Culling by Fabian Giesen
Order Independent Transparency by Kostas Anagnostou
Physically Based Rendering in Filament by Romain Guy and Mathias Agopian
Physically Based Shading in Theory and Practice by Laurent Belcour, Naty Hoffman, Alain Hostettler, Peter Kutz, Kentaro Suzuki, Hajime Uchimura, Andrea Weidlich, *Kenichiro Yasutomi *
Probability Theory for Physically Based Rendering by Jacco Bikker
Rasterising a triangle by Jason Tsorlinis
Recreating Nanite by Xavier Niochaut
Software rasterizing hair by Marcin Matuszczyk
Texture-less Text Rendering by Tim Gfrerer
The Geometry Behind Normal Maps by Shlomi Nissan
Creative Coding
Curves and Surfaces
Cubic spline interpolation by Eli Bendersky
Curves and Surfaces by Bartosz Ciechanowski
DirectX 12
A Gentle Introduction to D3D12 by Alex Tardif
All Sources of DirectX 12 Documentation by Adam Sawicki
Compute with DirectX 12 by Stefan Pijnacker
Getting Started With DirectX Raytracing by Seppe Dekeyser
GPU Work Graphs mesh nodes in Microsoft DirectX® 12 by Max Oberberger
Ten Years of D3D12 by Matt Pettineo
Image Processing
Dithering
Atkinson Dithering by John Earnest
Dithering in Colour by Niklas Oberhuber
Dithering on the GPU by Alex Charlton
Ditherpunk — The article I wish I had about monochrome image dithering by Surma
Image Dithering: Eleven Algorithms and Source Code by Tanner Helland
Writing My Own Dithering Algorithm in Racket by Amanvir Parhar
Metal
Drawing Graphics on Apple Vision with the Metal Rendering API by Georgi Nikolov
Metal Tutorial by Will Martin
OpenGL
Learn OpenGL by Joey de Vries
Learning Modern 3D Graphics Programming by Jason L. McKesson
OGLdev: Modern OpenGL tutorials by Etay Meiri
Ray Tracing
A raycasting engine in 7 easy steps by Austin Z. Henley
Demystifying multiple importance sampling by Nikita Lisitsa
How to build a BVH by Jacco Bikker
Introduction of the Raytracing Technology
Physically Based Rendering: From Theory To Implementation by Matt Pharr, Wenzel Jakob, and Greg Humphreys
Ray-Casting Tutorial For Game Development And Other Purposes by F. Permadi
Ray Tracing Gems by Eric Haines and Tomas Akenine-Möller
Ray Tracing Gems II by Adam Marrs, Peter Shirley, and Ingo Wald
Ray Tracing in One Weekend: The Book Series by Peter Shirley
Ray Tracing with Voxels in C++ by Jacco Bikker
Shaders
A Beginner's Guide to Coding Graphics Shaders by Omar Shehata
A Journey Into Shaders by Antoine Mayerowitz
GM Shaders - All about shaders for GameMaker!
Introducing GPU Reshape - shader instrumentation for everyone by Miguel Petersen
Introduction to Shaders by Karl Bittner
Learn Shader Programming with Rick and Morty by Daniel Hooper
Mesh Shaders on RDNA™ Graphics Cards by Max Oberberger, Bastian Kuth and Quirin Meyer
No More Shading Languages: Compiling C++ to Vulkan Shaders by H. Devillers, M. Kurtenacker*, R. Membarth, S. Lemme, M. Kenzel3, Ö. Yazici1, and P. Slusallek [pdf]
Shaders For People Who Don't Know How To Shader by Manuela Malasaña
The Best Darn Grid Shader (Yet) by Ben Golus
The Book of Shaders by Patricio Gonzalez Vivo and Jen Lowe
Vulkan
A Vulkan introduction by Nikos Papadopoulos
I Am Graphics And So Can You - a series of blog posts about implementing a Vulkan renderer for Doom 3 by Dustin H. Land
How I learned Vulkan and wrote a small game engine with it by Elias Daler
NVIDIA Vulkan Ray Tracing Tutorial by Martin-Karl Lefrançois, Pascal Gautron, Nia Bickford, David Akeley
Vulkan Tutorial by Alexander Overvoorde
Vulkan Tutorial (Rust) by Kyle Mayes
WebGPU
Learn WebGPU by Elie Michel
Learn Wgpu by Ben Hansen
Migrating from WebGL to WebGPU by Dmitrii Ivashchenko
WebGPU Unleashed: A Practical Tutorial by Shi Yan
Your first WebGPU app by Brandon Jones and François Beaufort
Computer Networks and Network Programming
A comprehensive guide for Linux Network (Socket) programming
An Introduction to Computer Networks by Peter L. Dordal
Computer Networks: A Systems Approach by Larry Peterson and Bruce Davie
Computer Networking : Principles, Protocols and Practice, 4th edition by Olivier Bonaventure
Concurrent Servers by Eli Bendersky
HTTP2 Explained by Daniel Stenberg
HTTP/3 explained by Daniel Stenberg
Implementing fast TCP fingerprinting with eBPF by Alberto Ventafridda
Implementing TCP In Rust by Ghvst Code
Let's code a TCP/IP stack by Sami Niiranen
Mediocre Engineer’s guide to HTTPS by Devon Peroutky
MQTT broker from scratch by Andrea Baldan
Networking 101 by Internal Pointers
Serving files over HTTP three ways: synchronous, epoll, and io_uring by Phil Eaton
Topics in High-Performance Messaging by Robert A. Van Valzah, Todd L. Montgomery, and Eric Bowden
Cryptography
A Graduate Course in Applied Cryptography by Dan Boneh and Victor Shoup
Advanced Topics in Cryptography: From Lattices to Program Obfuscation by Vinod Vaikuntanathan
All I Know About Certificates by Ke Pi
An Intensive Introduction to Cryptography by Boaz Barak
Coding Theory & Cryptography by John C. Bowman [pdf]
Cryptography: An Introduction (3rd Edition) by Nigel Smart [pdf]
Practical Cryptography for Developers by Svetlin Nakov
The Beginner's Textbook for Fully Homomorphic Encryption by Ronny Ko
Data Science
Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies by Rafael A. Irizarry
Data Science at the Command Line by Jeroen Janssens
Data Science: Theories, Models, Algorithms, and Analytics by Sanjiv Ranjan Das
Fundamentals of Data Visualization by Claus O. Wilke
Hands-On Data Visualization by Jack Dougherty and Ilya Ilyankou
Introduction to Data Science: Data Wrangling and Visualization with R by Rafael A. Irizarry
Mathematical Methods in Data Science (with Python) by Sebastien Roch
Mining of Massive Datasets by Jure Leskovec, Anand Rajaraman, and Jeff Ullman
Mining Social Media by Lam Thuy Vo
Topics in Mathematics of Data Science by Dr. Afonso Bandeira
Towards Data Science - The world’s leading publication for data science, AI, and ML professionals.
Debuggers
A Field Guide to Bugs by Stephen Diehl
How Does a C Debugger Work? by Kevin Pouget
Writing a Linux Debugger by Sy Brand
Writing a Debugger From Scratch by Tim Misiak
Databases
Database Design for Google Calendar: a tutorial by Alexey Makhotkin
Database Fundamentals by Tony Solomonik
The Theory of Relational Databases by David Maier
Databases Development
B-trees and database indexes by Benjamin Dicken
Build Your Own Database From Scratch in Go by James Smith
Build your own SQLite by Geoffrey Copin
Build Your Own Redis with C/C++ by James Smith
Concurrency Control and Recovery in Database Systems by Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman
How Does a Database Work? by Connor Stack
Jacob's blog: On database building blocks by Sherin Jacob
Let's Build a Simple Database by Connor Stack
NoSQL
SQL
SQL Tutorial - Master SQL quickly and effectively with clear concepts, hands-on examples, and interactive quizzes.
SQL for the Weary by Greg Wilson
SQLBolt - Learn SQL with simple, interactive exercises.
SQLZap - Learn SQL with for Free.
SQLZoo - SQL Tutorial.
MySQL
MySQL for Developers by Aaron Francis
PostgreSQL
PostgreSQL 14 Internals by Egor Rogov
The Internals of PostgreSQL by Hironobu Suzuki
Oracle
Demoscene
Graphics Tricks from Boomers - Technical details about a 4096 bytes Atari-STE intro, by Arnaud Carré.
How a 64k intro is made by Pekka Väänänen
The making of Immersion
Design Patterns
Building abstractions using higher-order functions by Eli Benderski
Data-Oriented Design by Richard Fabian
Design Patterns & Refactoring SourceMaking
Design Patterns in Python blog posts series by Racey Chan
Discovering observers by Sandor Dargo
The expression problem and Rust by Alisa Sireneva
From design patterns to category theory by Mark Seemann
Game Programming Patterns by Robert Nystrom
Handles are the better pointers by Andre Weissflog
Indices, not Pointers by Joe Mckay
Multiple Dispatch Series by Eli Bendersky
Plugins Series by Eli Bendersky
DevOps
Digital Signal Processing
Digital Signals Theory by Brian McFee
Online Textbooks and Course Materials by Julius Orion Smith III
PySDR: A Guide to SDR and DSP using Python by Dr. Marc Lichtman
Software-Defined Radio for Engineers by Travis F. Collins, Robin Getz, Di Pu, and Alexander M. Wyglinski [pdf]
The Scientist and Engineer's Guide to Digital Signal Processing by Steven W. Smith, Ph.D.
Distributed systems
Distributed Systems by Dr. Martin Kleppmann [pdf]
Distributed systems for fun and profit by Mikito Takada
Implementing Raft by Eli Bendersky
Implementing the Raft distributed consensus protocol in Go by Phil Eaton
Linearizability in distributed systems by Eli Bendersky
Notes on Theory of Distributed Systems by James Aspnes [pdf]
Patterns of Distributed Systems by Unmesh Joshi
Principles of Blockchains by Prof. Pramod Viswanath [Princeton]
Rewriting Kafka in Rust Async: Insights and Lessons Learned in Rust by Rex Wang
Testing Distributed Systems - Curated list of resources on testing distributed systems by Andrey Satarin.
Electronics
ANALOG SEEKrets: DC to daylight … a master class in electronics design by Leslie Green [pdf]
Emulators and Virtual Machines
5 Days To Virtualization: A Series On Hypervisor Development by Daax Rynd, Aidan Khoury and Nick Peterson
[Emulators writing tutorials] by Alexander Dickson
- JavaScript Chip-8 Emulator
- Write a NES Emulator with JavaScript
GameBoy Emulation in JavaScript by Imran Nazar
Hypervisor in 1,000 Lines by Seiya Nuta
Roll your own JavaScript runtime by Bartek Iwańczuk
The Art of CHIP-8 by John Earnest
Write your Own Virtual Machine by Justin Meiners and Ryan Pendleton
Writing NES emulator in Rust by Rafael Bagmanov
Game Programming
2D Game Development: From Zero To Hero by Daniele Penazzo
3D Game Engine Programming by Jeremiah van Oosten
Game Frame Breakdown Articles collection by Nikolaos Papadopoulos
Game Engineering by David Galles
How to program a text adventure in C by Ruud Helderman
Isometric Projection in Game Development by Gustavo Pezzi
Isometric Tutorials by Clint Bellanger
Procedural Content Generation in Games by Noor Shaker, Julian Togelius, and Mark J. Nelson
Procedural Island Generation by Chema Guerra
Programming Vehicles in Games by Wassim Alhajomar
Retro Rampage - A tutorial series in which you will learn how to build a Wolfenstein-like game from scratch, in Swift by Nick Lockwood
Roguelike Tutorial - In Rust by Herbert Wolverson
Terrain programmig by Shamus Young
The guide to implementing 2D platformers by Rodrigo Monteiro
[Scroll Back: The Theory and Practice of C`ameras in Side-Scrollers](https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub) by Itay Keren
A First-Person Game in 2KB by Grant Handy
Game Engines
Bevy game development by Nolan Tait
C# and Shader Tutorials for the Unity Engine by Jasper Flick
Godot Engine 4 Tutorials by Jasper Flick
Game Physics
2D Cloth Simulation in Odin with raylib by Marian Pekár
Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artists by Shahriar Shahrabi
iforce2d - A collection of programming resources, mainly focusing on 2D games development with Box2D.
Simulating Fluids, Fire, and Smoke in Real-Time by Andrew Chan
Ten Minute Physics by Matthias Müller
General Programming
Lists of programming projects to try to implement
Writing Toy Software Is A Joy: Why you should write more toy programs by Joshua Barretto
Geographic Information Systems
Building Vector Tiles from scratch by Andre Debuisne
Computational Modelling of Terrains by Hugo Ledoux, Ken Arroyo Ohori, Ravi Peters, and Maarten Pronk
Introduction to Python for Geographic Data Analysis by Henrikki Tenkanen, Vuokko Heikinheimo, and David Whipp
GUI Programming
A Book about Qt5 by Jürgen Bocklage-Ryannel and Johan Thelin
Minimal Cross-Platform Graphics by Serge Zaitsev
Sol on Immediate Mode GUIs by Jari Komppa
X Window System Basics by Jasper St. Pierre
Hardware
Architecture of Consoles by Rodrigo Copetti
Computer Architecture, Fifth Edition: A Quantitative Approach by John L. Hennessy and David A Patterson
Modern Microprocessors: A 90-Minute Guide! by Jason Robert Carey Patterson
What Every Programmer Should Know About Memory by Ulrich Drepper [pdf]
Zen, CUDA, and Tensor Cores by Casey Muratori
Information Theory
Information and Entropy by Prof. Paul Penfield and Prof. Seth Lloyd
Information Theory, Inference, and Learning Algorithms by David MacKay
Statistics and Information Theory by John Duchi [pdf]
IQ Tests
Logical Games
Hex: A Strategy Guide by Matthew Seymour
The World's Fastest Scrabble Program by Andrew W. Appel and Guy J. Jacobson [pdf]
Low Level Stuff
A gentle introduction to two's complement by Michael Doornbos
Beginner's Guide to Linkers by David Drysdale
Computer Science from the Bottom Up by Ian Wienand
CPU performance optimization guide - Preface by Hui Zhang
Floating Point Visually Explained by Fabien Sanglard
Group Borrowing: Zero-Cost Memory Safety with Fewer Restrictions by Evan Ovadia
How To Write Shared Libraries by Ulrich Drepper [pdf]
It's OK to compare floating-points for equality by Nikita Lisitsa
Memory Profiling by Denis Bakhvalov
Onboarding floating-point by Mike Acton
Performance Analysis and Tunning on Modern CPUs by Denis Bakhvalov
Pointer Tagging in C++: The Art of Packing Bits Into a Pointer by Caden Parker
Stack frame layout on x86-64 by Eli Bendersky
Static Machine Code Analysis by Frank Tetzel
Understanding Memory Management by Eric Rescorla
What Every Computer Scientist Should Know About Floating-Point Arithmetic [pdf]
Matrix Multiplication Optimization Article Series by Amanzhol Salykov
Virtual Memory: A Deep Dive into Page Tables, TLBs, and Linux Internals by Abhinav Upadhyay
GPU and TPU Programming
Basic facts about GPUs by Damek Davis
Inside NVIDIA GPUs: Anatomy of high performance matmul kernels by Aleksa Gordić
Introduction to CUDA Programming With GPU Puzzles by Henry Ko
TPU Deep Dive by Henry Ko
SIMD programming
Accelerating copy_if using SIMD by Chaitanya Kumar
Cuckoo hashing improves SIMD hash tables by Reiner Pope
Designing a SIMD Algorithm from Scratch by Miguel Young de la Sota
SIMD: A Practical Guide by Caden Parker
SIMD for C++ Developers [pdf]
Math
A Gentle Introduction to Tensors by Boaz Porat [pdf]
A Gentle Introduction to the Art of Mathematics by Joe Fields
A Programmer's Introduction to Mathematics by Jeremy Kun
Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning by Jean Gallier and * Jocelyn Quaintance* [pdf]
An animated introduction to Fourier Series by Andrei Ciobanu
An Infinite Descent into Pure Mathematics by Clive Newstead
An Infinitely Large Napkin by Evan Chen [pdf]
An Introduction to Tensors for Students of Physics and Engineering by Joseph C. Kolecki [pdf]
-
- Advanced Calcululs [pdf]
- Dynamical Systems [pdf]
- Lie algebras [pdf]
- Semi-classical analysis by Victor Guillemin and Shlomo Sternberg [pdf]
- Semi-Riemann Geometry and General Relativity [pdf]
- Theory of functions of a real variable [pdf]
Courses and lecture notes by Jeffrey Robert Chasnov
- Applied Linear Algebra and Differential Equations [pdf]
- Calculus for Engineers [pdf]
- Differential Equations for Engineers [pdf]
- Differential Equations: Review with YouTube Examples [pdf]
- Differential Equations [pdf]
- Fibonacci Numbers and the Golden Ratio [pdf]
- Flow Around a Cylinder [pdf]
- Mathematical Biology [pdf]
- Matrix Algebra for Engineers [pdf]
- Numerical Methods for Engineers [pdf]
- Numerical Methods [pdf]
- Scientific Computing [pdf]
- Vector Calculus for Engineers [pdf]
Cournse Notes and Books by Curtis T. McMullen [Harvard]
- Books
- Course Notes
- Advanced Complex Analysis [pdf]
- Advanced Real Analysis [pdf]
- Algebra and Dynamics [pdf]
- Complex Analysis on Riemann Surfaces [pdf]
- Ergodic theory, geometry and dynamics [pdf]
- From Conformal Invariants to Percolation [pdf]
- Probability Theory [pdf]
- Real Analysis [pdf]
- Riemann surfaces, dynamics and geometry [pdf]
- Sets, Groups and Knots [pdf]
- Topology [pdf]
-
- Abelian Varieties [pdf]
- Algebraic Geometry [pdf]
- Algebraic Number Theory [pdf]
- Class Field Theory [pdf]
- Complex Multiplication [pdf]
- Fields and Galois Theory [pdf]
- Group Theory [pdf]
- Lectures on Etale Cohomology [pdf]
- Lie Algebras, Algebraic Groups, and Lie Groups [pdf]
- Modular Functions and Modular Forms [pdf]
- Reductive Groups [pdf]
Course notes by Kenneth R. Davidson
- Measure Theory [pdf]
- Nest Algebras
- Real Analysis [pdf]
- Rigorous Calculus [pdf]
Course notes by Rajen Shah [Cambridge]
-
- Category theory
- Fourier analysis [pdf]
- Galois theory
- General topology [pdf]
- Linear algebra by [pdf]
Everything You Always Wanted To Know About Mathematics by Brendan W. Sullivan with Professor John Mackey [pdf]
Feynman's Trick a.k.a. Differentiation under the Integral Sign & Leibniz Integral Rule
Foundations of Mathematics by Florent P. Baudier [pdf]
Intermediate Calculus and Linear Algebra by Jerry L. Kazdan [pdf]
Introduction to Applied Mathematics by Jan Glaubitz [pdf]
Introduction to Homotopy Type Theory by Egbert Rijke
Introduction to the Modeling and Analysis of Complex Systems by Hiroki Sayama
Introduction to Stochastic Calculus by Ji-Ha
-
- A crash course in complex analysis [pdf]
- A crash course in interpolation theory [pdf]
- Derivation of the fluid equations [pdf]
- Fluid-solid interaction [pdf]
- From Stokes flow to Darcy's law [pdf]
- Gamma-convergence of the Ginzburg-Landau energy [pdf]
- Linear constant coefficient ordinary differential systems [pdf]
- Monstrous Functions [pdf]
- Quasilinear symmetric hyperbolic systems [pdf]
Lecture Notes by Jacob Shapiro
-
- Calculus Lectures [pdf]
- Fundamentals of Numerical Linear Algebra [pdf]
- Heterogeneity in Computational Environments [pdf]
- Linear Algebra with Applications [pdf]
- Mathematical Foundations of Machine Learning [pdf]
- Numerical Analysis and Applications with Music [pdf]
- Numerical Methods for Partial Differential Equations [pdf]
- Programming Basics and AI with Matlab and Python [pdf]
Math Alive by Ingrid Daubechies and Shannon Hughes - lecture notes on:
- Cryptography
- Error correction & compression
- Probability & Statistics
- Birth, Growth, Death & Chaos
- Graph Theory
- Voting & Social Choice
Mathematics Its Contents Methods And Meaning, Volumes 1 - 3 by A. D. Aleksandrov, A. N. Kolmogorov, M. A. Lavrent'ev
Mathematical Methods for Computer Vision, Robotics, and Graphics by Justin Solomon [pdf]
Mathematical Methods for Physics by Dmitry Turaev [pdf]
Mathematics for the Physical Sciences by Herbert S. Wilf
Menthal Math Tricks by John D. Cook
Paul's Online Math Notes by Paul Dawkins
-
- Mathematical Structures [pdf]
- Introduction to Algebra [pdf]
- Linear Algebra [pdf]
- Algebraic Structures **[pdf]* Number theory [pdf]
- Combinatorics [pdf]
- Probability [pdf]
- Cryptography [pdf]
- Complexity [pdf]
- A Crash Course on Group Theory [pdf]
- Notes on Advanced Combinatorics
Precalculus by Carl Stitz and Jeff Zeager
Real Not Complex - Discover Incredible FREE Resources to Study MathemF comilatics.
Street-Fighting Mathematics - Course teaches the art of guessing results and solving problems without doing a proof or an exact calculation by Sanjoy Mahajan
The Lost Art of Logarithms by Charles Petzold
The Mathematics in Toys and Games by Jing Li, Prof. Erik Demaine, and Melissa Gymrek
The Matrix Cookbook by Kaare Brandt Petersen and Michael Syskind Pedersen
The Princeton Companion to Mathematics by Timothy Gowers - editor [pdf]
The Tensor Cookbook by Thomas Dybdahl Ahle
Trigonometry by Michael Corral
Umnov A.E. and Umnov E.A's Educational Materials [MIPT]
- Subjects Included:
- Elementary Mathematics
- Intoduction to Calculus
- Multy-dimentional Analysis. Integrals and Series
- Analytic Geometry
- Linear Algebra
- Multiple integrals and field theory
- Harmonic Analysis
- Parametric Sets of Second-Order Lines on a Plane
- Subjects Included:
University Mathematics by Ole Witt-Hansen
Algebra
Abstract Algebra taughy by Yum-Tong Siu, notes by Dongryul Kim [pdf]
Abstract Algebra: Theory and Applications by Thomas W. Judson
Advanced Modern Algebra by Joseph J. Rotman [pdf]
Algebra: Abstract and Concrete by Frederick M. Goodman
Beginning and Intermediate Algebra by Tyler Wallace
Elements of Abstract and Linear Algebra by Edwin H. Connell
Intermediate Algebra by Saylor Academy
Introduction to Abstract Algebra by Alexander Paulin [pdf]
Introduction to Modern Algebra by David Joyce [pdf]
Learn you Galois Fields for Great Good by Anthony Bonkoski
Lectures on Abstract Algebra by Richard Elman [pdf]
The Rising Sea: Foundations Of Algebraic Geometry Notes by Ravi Vakil
Linear Algebra
Graphical Linear Algebra by Pawel Sobocinski
Immersive Linear Algebra by J. Ström, K. Åström, and T. Akenine-Möller
Interactive Linear Algebra by Dan Margalit and Joseph Rabinoff
Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares by Stephen Boyd and Lieven Vandenberghe
Linear Algebra by David Cherney, Tom Denton, Rohit Thomas and Andrew Waldron [pdf]
Linear Algebra, Fourth edition by Jim Hefferon [pdf]
Linear Algebra Done Right by Sheldon Axler
Linear Algebra Done Wrong by Sergei Treil
Linear Algebra for Computer Science by Manoj Thulasidas
Linear Algebra Lecture Notes by Terence Tao [pdf] [UCLA]
Notes for Computational Linear Algebra by Jessy Grizzle [pdf]
Numerical Linear Algebra by Bärbel Janssen [pdf]
The Little Book of Linear Algebra by Duc-Tam Nguyen
Analysis
Classical Real Analysis Books by Andrew M. Bruckner, Judith B. Bruckner, and Brian S. Thomson
Complex Analysis by Russell W. Howell and John H. Mathews
Complex Analysis by Dmitry Belyaev [pdf]
Harmonic Function Theory by Sheldon Axler, Paul Bourdon, and Wade Ramey
How We Got from There to Here: A Story of Real Analysis by Eugene Boman and Robert Rogers
Introduction to Real Analysis by William F. Trench
Principles of Mathematical Analysis by Walter Rudin [pdf]
Real Analysis by Dr. Casey Rodriguez
Real Analysis by Gary Towsley
Visual Complex Analysis by Tristan Needham [pdf]
Calculus
Advanced Multivariable Calculus by Alex Wang [pdf]
Basic Analysis: Introduction to Real Analysis by Jiří Lebl
Calculus by Gilbert Strang
Calculus 1 for Honours Mathematics by Barbara A. Forrest and Brian E. Forrest [pdf]
Calculus in Context by James Callahan, Kenneth Hoffman, David Cox, Donal O’Shea, Harriet Pollatsek, and Lester Senechal [pdf]
Calculus: Basic Concepts for High Schools by L.V. Tarasov
Calculus for Mathematicians, Computer Scientists, and Physicists by Andrew D. Hwang [pdf]
Calculus with Julia by John Verzani
CLP Calculus Textbooks by Joel Feldman, Andrew Rechnitzer and Elyse Yeager
Derivatives, Gradients, Jacobians and Hessians by Alan Wolfe
Differential Calculus: From Practice to Theory by Eugene Boman and Robert Rogers
Elementary Calculus by Michael Corral
Integration Theory by Johan Jonasson [pdf]
Introduction to Calculus by Paul Lutus [pdf]
Multivariable Calculus Lectures by Richard J. Brown [pdf]
Pre-Calculus by Salah Abed, Sonia Farag, Stephen Lane, Tyler Wallace, and Barbara Whitney
Precalculus: An Investigation of Functions by David Lippman and Melonie Rasmussen
Vector Calculus
Lectures on Vector Calculus by David Tong
Vector and Complex Calculus for the Physical Sciences by Fabian Waleffe [pdf]
Vector Calculus by Andrea Moiola [pdf]
Vector Calculus by B. C. Allanacha and J.M. Evansa [pdf]
Vector Calculus by Michael Corral
Category Theory
Category Theory for Programmers by Bartosz Milewski
Category Theory for Programming by Benedikt Ahrens and Kobe Wullaert
Category Theory Illustrated by Boris Marinov
Category Theory in Programming by Noah Ma
Category Theory: Lecture Notes and Online Books - collection by Peter Smith
Notes on Category Theory with examples from basic mathematics by Paolo Perrone
Pragmatic Category Theory by Dmitrii Kovanikov
Seven Sketches in Compositionality: An Invitation to Applied Category Theory by Brendan Fong and David I. Spivak
Differential Equations
Elementary Differential Equations with Boundary Value Problems by William F. Trench
Fourier Series & PDEs by Philip Maini [Oxford]
Notes on Diffy Qs: Differential Equations for Engineers by Jiří Lebl
Game Theory
Game Theory (Open Access textbook with 165 solved exercises) by Giacomo Bonanno
Game Theory with Engineering Applications by Prof. Asuman Ozdaglar
Introduction to Game Theory: a Discovery Approach by Jennifer Firkins Nordstrom
Lecture Notes for 1st Year Ph.D. Game Theory by Navin Kartik [pdf]
General problem solving
- How to Solve It by George Pólya [pdf]
Geometry
Euclidean and Non-Euclidean Geometries: Development and History by Marvin Jay Greenberg [pdf]
Geometry with an Introduction to Cosmic Topology by Michael P. Hitchman
Geometry: Euclid and Beyond by Robin Hartshorne [pdf]
Planes in 3D space by Alex Harri
The Foundations of Geometry by David Hilbert [pdf]
The Four Pillars of Geometry by John Stillwell [pdf]
Differential Geometry
Differential Geometry: A First Course in Curves and Surfaces by Theodore Shifrin [pdf]
Functional Differential Geometry by Gerald Jay Sussman and Jack Wisdom with Will Farr [pdf]
Introduction to Smooth Manifolds by John M. Lee [pdf]
Lecture Notes on Differential Geometry by Mohammad Ghomi
Manifolds and Differential Forms by Reyer Sjamaar [pdf]
Open Problems In Geometry Of Curves And Surfaces by Mohammad Ghomi [pdf]
What is differential geometry: curves and surfaces by Anton Petrunin and Sergio Zamora Barrera
Combinatorics
Algebraic Combinatorics by Alexander Postnikov
Analytic Combinatorics by Philippe Flajolet and Robert Sedgewick [pdf]
Combinatorics Through Guided Discovery by Kenneth P. Bogart
Enumerative Combinatorics, Volume 1, Second Edition by Richard P. Stanley [pdf]
Graph Theory
An introduction to graph theory by Darij Grinberg [pdf]
Graphs and Geometry by László Lovász [pdf]
Graph Theory, Sixth Edition, 2025 by Reinhard Diestel
Graph Theory and Additive Combinatorics by Yufei Zhao
Graph Theory Lecture Notes by Christopher Griffin [pdf]
Introduction to Random Graphs by *Alan Frieze" and **ALAN FRIEZE and Michał Karonski [pdf]
Large networks and graph limits by László Lovász [pdf]
Spectral Graph Theory by David P. Williamson
High School Math
Mathematical Problems And Puzzles from the Polish Mathematical Olympiads by Stefan Straszewicz
Solving Problems In Algebra And Trigonometry by V. Litvinenko and A. Mordkovich
Solving Problems In Geometry by V. Gusev, V. Litvinenko, and A. Mordkovich
The USSR Olympiad Problem Book by D. O. Shklarsky, N. N. Chentzov, and I. M. Yaglom
Mathematical Finance
A Practical Guide to Quantitative Finance Interviews by Xinfeng Zhou [pdf]
Financial Machine Learning by Bryan T. Kelly and Dacheng Xiu
Mathematical Foundations for Finance by Prof. Dr. Beatrice Acciaio
- Probability Theory by Prof. Dr. Alain-Sol Sznitman [pdf]
- Mathematical Foundations for Finance Lecture Notes by M. Schweizer and E. W. Farkas [pdf]
Statistical Method in Economics by Prof. Anna Mikusheva
Topics in Mathematics with Applications in Finance by Dr. Peter Kempthorne, Dr. Choongbum Lee, Dr. Vasily Strela, and Dr. Jake Xia
Trade Signal by Lucas Downey
Mathematical Logic
A Concise Introduction to Logic by Craig DeLancey
A Friendly Introduction to Mathematical Logic by hristopher Leary and Lars Kristiansen
forall x: Calgary: An Introduction to Formal Logic by P. D. Magnus, Tim Button, Robert Trueman, and Richard Zach
PQT Logic Textbook by Scott Weinstein, Owain West and Grace Zhang [pdf]
Lecture Notes on The Lambda Calculus by Frank Pfenning [pdf]
Notes on Mathematical Logic by David W. Kueker
Measure Theory
An Introduction to Measure Theory by Terence Tao [pdf]
Measure, Integration & Real Analysis by Sheldon Axler
Measure Theory Princeton University MAT425 Lecture Notes [pdf]
Number theory
A Computational Introduction to Number Theory and Algebra by Victor Shoup
An Introduction to the Theory of Numbers by Leo Moser
Elementary Number Theory: Primes, Congruences, and Secrets by William Stein
Lectures notes on number theory for computer science by Alexandros V. Gerbessiotis
Theory of Numbers by Prof. Abhinav Kumar
Numerical analysis
- Tea Time Numerical Analysis by Leon Q. Brin
Operations Research
Applied Mathematical Programming by Stephen P. Bradley, Arnoldo C. Hax, and Thomas L. Magnanti
Bridging Continuous and Discrete Optimization by David P. Williamson
Convex Optimization by Andreas Habring
Introduction to Operations Research, Tenth Edition by Frederick S. Hillier, and Gerald J. Lieberman [pdf]
Probability and Statistics
Advanced Data Analysis from an Elementary Point of View by Cosma Rohilla Shalizi
Advanced Probability by Alexander Sokol and Anders Rønn-Nielsen [pdf]
All of Statistics: A concise Course in Statistical Inference by Larry Wasserman [pdf]
An Elementary Introduction To The Theory Of Probability by B. V. Gnedenko, A. Ya. Khinchin
Applied Problems In Probability Theory by E. Wentzel and L. Ovcharov
Bayes Rules! An Introduction to Applied Bayesian Modeling by Alicia A. Johnson, Miles Q. Ott, Mine Dogucu
Bayesian Data Analysis, Third Edition by Andrew Gelman, John Carlin, Hal Stern, David Dunson, Aki Vehtari, and Donald Rubin
Digital textbook on probability and statistics by Marco Taboga
Elementary Probability for Applications by Rick Durrett [pdf]
Fundamentals of Probability by Prof. Yury Polyanskiy
High-Dimensional Probability: An Introduction with Applications in Data Science by Roman Vershynin [pdf]
High-Dimensional Statistics by Philippe Rigollet and Jan-Christian Hütter
Introduction to Modern Statistics (2nd Ed) by Mine Çetinkaya-Rundel and Johanna Hardin
Introduction to Probability by Charles M. Grinstead and J. Laurie Snell
Introduction to probability and statistics by Mike Hitchman
Introduction to Probability for Data Science by Stanley H. Chan
Introduction to Statistics by David Lane
Lecture Notes on Probability by Omer Tamuz [pdf]
Lecture Notes on Probability Statistics and Linear Algebra by C. H. Taubes [pdf]
Linear Model and Extensions by Peng Ding
Markov Chains for programmers by Ricardo M. Czekster
Modern Discrete Probability: An Essential Toolkit by Sebastien Roch
Notes on Counting and Rapidly Mixing Markov Chains by Alan Frieze [pdf]
Notes on Probability by Peter J. Cameron [pdf]
Odds & Ends: Introducing Probability & Decision with a Visual Emphasis by Jonathan Weisberg
One Thousand Exercises in Probability by Geoffrey R. Grimmett and David R. Stirzaker [pdf]
OpenIntro Statistics, Fourth Edition by David Diez, Mine C¸ etinkaya-Rundel, and Christopher D Barr
Probability 101, the intuition behind martingales and solving problems with them
Probability and Statistics: The Science of Uncertainty, Second Edition by Michael J. Evans and Jeffrey S. Rosenthal
Probability and Statistics Cookbook by Matthias Vallentin
Probability and Statistics for Data Science by Carlos Fernandez-Granda [pdf]
Probability for Computer Scientists by Chris Piech
Probability for Computer Scientists by Robert J. Moss [pdf]
Probability in High Dimension by Ramon van Handel [pdf] [Princeton]
Probability in High Dimensions by Prof. Joel A. Tropp [pdf] [Caltech]
Probability Textbooks by Mark Huber
- Probability Adventures [pdf]
- Probability Lectures and Labs [pdf]
Probability Theory by Amir Dembo [pdf] [Stanford]
Probability Theory (First Steps) by E. S. Wentzel
Probability Theory & Computational Mathematics by Prof. Joel A. Tropp [pdf] [Caltech]
Probability with Engineering Applications by Bruce Hajek
Probability: Theory and Examples by Rick Durrett [pdf]
Seeing Theory - a book about statistics with interactive visualizations by Daniel Kunin, Jingru Guo, Tyler Dae Devlin, and Daniel Xiang
Statistical Inference, Second Edition by George Casella and Roger L. Berger [pdf]
Statistics Handbook by Carlo Occhiena
Stochastic Processes by Amir Dembo [pdf]
The Probabilistic Method by Noga Alon and Joel H. Spencer [pdf]
The Truth About Linear Regression by Cosma Rohilla Shalizi
Proofs
An introduction to mathematical proof by Seçkin Demirbaş and Andrew Rechnitzer [pdf]
An Introduction to Mathematical Reasoning by Matthew M. Conroy and Jennifer L. Taggart [pdf]
Book of Proof, Third Edition by Richard Hammack
Handbook of Mathematical Proof by Edward D. Kim [pdf]
Language and Proofs in Algebra: An Introduction by Carmen Bruni [pdf]
Mathematical Reasoning & Proofs by Alistair Savage [University of Ottawa]
Mathematical Reasoning: Writing and Proof (Version 3) by Ted Sundstrom
Reading, Discovering and Writing Proofs by Carmen Bruni [pdf]
The Mechanics of Proof by Heather Macbeth
Theoretical Computer Science
An Introduction to Abstract Mathematics by Neil Donaldson and Alessandra Pantano [pdf]
Applied Discrete Structures by Al Doerr and Ken Levasseur
Busy Beavers! - An interactive intro to Computability Theory by Jim Fisher
Computational Complexity: A Modern Approach by Sanjeev Arora and Boaz Barak
Discrete Mathematical Modeling by Prof. Sara Billey [pdf]
Discrete Mathematics by Andrew D. Ker [pdf]
Discrete Mathematics: An Open Introduction, 4th Edition by Oscar Levin
Discrete Mathematics and Its Applications, Eighth Edition by Kenneth H. Rosen
Discrete Structures for Computer Science: Counting, Recursion, and Probability by Michiel Smid
Elements of Programming by Alexander Stepanov and Paul McJones
Foundations of Computation by Carol Critchlow and David Eck
Foundations of Computer Science by Alfred V. Aho and Jeffrey D. Ullman
generatingfunctionology by Herbert S. Wilf [pdf]
Great Ideas in Theoretical Computer Science by Prof. Scott Aaronson
Introduction to University Mathematics by Ian Hewitt [pdf]
Mathematical Foundations of Computing by Keith Schwarz [pdf]
Mathematical Techniques for Algorithm Analysis by Eric Bach [pdf]
Mathematical Techniques for Computer Science by Andrea Schalk [pdf]
Mathematics and Computation: A Theory Revolutionizing Technology and Science by Avi Wigderson [pdf]
Mathematics for Computer Science by Eric Lehman, F. Thomson Leighton, and Albert R. Meyer [pdf]
Mathematics for Computer Science by Prof. Erik Demaine, Dr. Zachary Abel, and Dr. Brynmor Chapman
Mathematics for Computer Science by Prof. Tom Leighton and Dr. Marten van Dijk
Notation as a Tool of Thought by Kenneth E. Iverson
Notes on Computational Complexity Theory by James Aspnes [pdf]
Notes on Discrete Mathematics by James Aspnes [pdf]
Software Foundations - A broad introduction to the mathematical underpinnings of reliable software.
Type Theory & Functional Programming by Simon Thompson [pdf]
What Can Be Computed?: A Practical Guide to the Theory of Computation by John MacCormick [pdf]
Topology
Algebraic Topology for Data Scientists by Michael S. Postol
Computational Algebraic Topology by Vidit Nanda
General Topology by Tom Leinster [pdf]
Introduction To Symplectic Topology by Dusa Mcduff and Dietmar Salamon [pdf]
Metric and Topological Spaces by T. W. K¨orner [pdf]
Topology Without Tears by Sidney A. Morris
Topology: A First Course by James R. Munkres
Multithreading and Concurrency
A C++17 Thread Pool for High-Performance Scientific Computing by Barak Shoshany
A Science of Concurrent Programs by Leslie Lamport
Implementing simple cooperative threads in C by Stephen Brennan
Is Parallel Programming Hard, And, If So, What Can You Do About It? by Paul E. McKenney
Lockfree Programming: A Mental Model by Anthony Bonkoski
POSIX Threads Programming by Blaise Barney
Programming Parallel Computers by Jukka Suomela, Samuli Laine, and Jaakko Lehtinen
Reading and writing - Article series on race conditions by James Coglan
The Little Book of Semaphores by Allen B. Downey
What every systems programmer should know about concurrency by Matt Kline [pdf]
Music Theory
Introduction to Computer Music by Prof. Jeffrey Hass
Music Theory for the 21st-Century Classroom by Robert Hutchinson
Operating Systems
A Commentary On The Sixth Edition Unix Operating System by J. Lions
Advanced Linux Programming by Mark Mitchell, Jeffrey Oldham, and Alex Samuel [pdf]
Linux Basics for Hackers by Abdulrahman Hegazy
Linux Insides by Alex Kuleshov
Linux Learning Resources by Paul Cobbaut
- Fundamentals [pdf]
- System Administration [pdf]
- Servers [pdf]
- Storage [pdf]
- Security [pdf]
- Networking [pdf]
- Fun [pdf]
How to write Rust in the kernel by Daroc Alden
Making our own executable packer by Amos Wenger
My Own Private Binary: An Idiosyncratic Introduction to Linux Kernel Modules
Notes on Operating Systems by James Aspnes
Operating Systems: Three Easy Pieces by Remzi H Arpaci-Dusseau and Andrea C Arpaci-Dusseau
Principia Softwarica by Yoann Padioleau - A series of literate programming books explaining Plan 9 system programs.
Systems Programming: Lecture Notes by Jian Huang
The Art of Unix Programming by Eric Steven Raymond
The Linux Kernel Module Programming Guide by Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang
The UNIX-HATERS Handbook by Simson Garfinkel, Daniel Weise, and Steven Strassmann [pdf]
Unix as IDE by Tom Ryder
Operating Systems Development
A Journey in Creating an Operating System Kernel by Mohammed Q. Hussain
Baking Pi – Operating Systems Development by Alex Chadwick
Making a RISC-V Operating System using Rust by Stephen Marz
Making an RISC-V OS
Operating System development tutorials in Rust on the Raspberry Pi by Andre Richter
Operating System in 1,000 Lines by Seiya Nuta
Operating Systems: From 0 to 1 by Tu Do
The little book about OS development by Erik Helin and Adam Renberg
Writing a Simple Operating System — from Scratch by Nick Blundell
Writing an OS in Rust by Philipp Oppermann
Writing an OS in Nim by Khaled Hammouda
xv6: a simple, Unix-like teaching operating system by Russ Cox, Frans Kaashoek, and Robert Morris
Photography
- Photography for geeks by Michal Zalewski
Physics
A free introduction to quantum computing and quantum mechanics by Andy Matuschak and Michael Nielsen
An introduction to Lagrangian and Hamiltonian mechanics by Simon J.A. Malham [pdf]
An Intuitive Guide to Maxwell’s Equations by Nick M.
Applications of Classical Physics by Roger D. Blandford and Kip S. Thorne
IBM Quantum Learning - Learn the basics of quantum computing.
Introduction to Classical and Quantum Computing by Thomas G. Wong
Introduction to Special Relativity, Quantum Mechanics and Nuclear Physics for Nuclear Engineers by Alex F. Bielajew [pdf]
Mechanics and Relativity by Timon Idema
Motion Mountain by Christoph Schiller - A free physics textbook in 5 volumes.
Orbital Mechanics by * Alan Zucconi*
Percolation Theory by Dr. Kim Christensen [pdf]
Physics for Mathematicians by Nicolas James Marks Ford
Quantum Computation Lecture Notes by Peter Shor
Quantum Mechanics by basketballguy
Quantum Mechanics for Engineers by Leon van Dommelen [pdf]
Relativity: A Modern Primer by Kevin Han
Structure and Interpretation of Classical Mechanics by Gerald Jay Sussman and Jack Wisdom with Meinhard E. Mayer
Physics-Based Simulation by Minchen Li, Chenfanfu Jiang, and Zhaofeng Luo
Programming languages
A Dumb Introduction to z3 by Rahman Sibahi
Control structures in programming languages: from goto to algebraic effects by Xavier Leroy
Exotic Programming Ideas by Stephen Diehl
Introduction to the Theory of Programming Languages by Bertrand Meyer
Programming Paradigms for Dummies: What Every Programmer Should Know by Peter Van Roy [pdf]
University Physics by Ole Witt-Hansen
Ada
Ada 95: The Craft of Object-Oriented Programming by John English
Ada95 Lovelace tutorial by David A. Wheeler
Introduction to Ada: a project-based exploration with rosettas by Romain Gora
Assembly
A friendly introduction to assembly for high-level programmers by Manuel Spagnolo
A fundamental introduction to x86 assembly programming by Nayuki
An interactive guide to x86-64 assembly by Alberto Ventafridda
Learn Assembly Language - NASM x86 assembly language tutorial on Linux.
Programming from the Ground Up by Jonathan Bartlett [pdf]
Learn x86-64 assembly by writing a GUI from scratch by Philippe Gaultier
Let's Learn x86-64 Assembly!
PC Assembly Language by Paul A. Carter
RISC-V Assembly Programming by Prof. Edson Borin
The Art of Assembly Language by Randall Hyde
Understanding Windows x64 Assembly by Siew Yi Liang
x86-64 Assembly Language Programming with Ubuntu by Ed Jorgensen
Bash
- Introduction to Bash Scripting by Bobby Iliev
Basic
C
Coroutines in C by Simon Tatham
Demystifying bitwise operations, a gentle C tutorial by Andrei Ciobanu
Extreme C by Kamran Amini
Hacking Coroutines into C by Christoph Walcher
Hacktical C: A practical hacker's guide to the C programming language
How to implement a hash table (in C) by Ben Hoyt
I Write Type Safe Generic Data Structures in C by Daniel Hooper
Modern C by Jens Gustedt
Object-Oriented Programming with ANSI-C by Axel-Tobias Schreiner [pdf]
So You Think You Know C? by Oleksandr Kaleniuk [pdf]
The C Book by Mike Banahan, Declan Brady and Mark Doran
The Lost Art of Structure Packing by Eric S. Raymond
Writing a Simple Garbage Collector in C by Matthew Plant
C#
- Developing on AWS with C# by Noah Gift and James Charlesworth [pdf]
C++
C++ Core Guidelines by Bjarne Stroustrup and Herb Sutter
C++ exceptions uner the hood by Nicolás Brailovsky
- Part 1
- Part 2: A tiny ABI
- Part 3: An ABI to appease the linker
- Part 4: Catching what you throw
- Part 5: Magic around __cxa_begin_catch and __cxa_end_catch
- Part 6: gcc_except_table and the personality function
- Part 7: A nice personality
- Part 8: Two-phase handling
- Part 9: Catching our first exception
- Part 10: Unwind and call frame info
- Part 11: Reading a CFI table
- Part 12: And suddenly, reflexion in C++
- Part 13: Setting the context for a landing pad
- Part 14: Multiple landing pads & the teachings of the guru
- Part 15: Finding the right landing pad
- Part 16: Finding the right catch in a landing
- Part 17: Reflecting on an exception type and reading .gcc_except_table
- Part 18: Getting the right stack frame
- Part 19: Getting the right catch in a landing pad
- Part 20: Running destructors while unwinding
- Part 21: A summary and some final thoughts
- Appendix I: The true cost of an exception
- Appendix II: Metaclasses and RTTI on C++
- Appendix III: RTTI and exceptions orthogonality
C++20 Coroutines: sketching a minimal async framework by Jeremy Ong
C++20 Concepts: The Definitive Guide by Rajat Jain
Effective Modern C++ by Scott Meyers [pdf]
Efficient Programming with Components by Alexander Stepanov and Justin Meiners
Fiber in C++: Understanding the Basics by Jiayin Cao
Learning to read C++ compiler errors: Not a legal base class by Raymond Chen
Modern C++ Tutorial by Ou Changkun
My Favorite C++ Pattern: X Macros by Daniel Fedorin
Philosophy of coroutines by Simon Tatham
The Boost C++ Libraries by Boris Schäling
Thoughts on creating a tracking pointer class by Raymond Chen
- Part 1: Concept art
- Part 2: Using a std::list
- Part 3: Using a std::vector
- Part 4: Using a circular doubly linked list
- Part 5: Copying our tracking pointer
- Part 6: Non-modifying trackers
- Part 7: Non-modifying trackers, second try
- Part 8: Tracking const objects
- Part 9: Conversion
- Part 10: Proper conversion
- Part 11: Repairing assignment
- Part 12: A shared tracking pointer
- Part 13: Restoring the strong exception guarantee
- Part 14: Nonthrowing moves with the shared tracking pointer
- Part 15: A custom shared pointer
- Part 16: Second attempt to use a list
CMake
- An Introduction to Modern CMake by Henry Schreiner
Cuda
- How To Write A Fast Matrix Multiplication From Scratch With Tensor Cores by Alex Armbruster
D
- Programming in D by Ali Çehreli
Datalog
- Learn Datalog Today by Jonas Enlund
Erlang
Adopting Erlang by Tristan Sloughter, Fred Hebert, and Evan Vigil-McClanahan
Learn You Some Erlang for great good! by Fred Hebert
Stuff Goes Bad: Erlang in Anger by Fred Hebert
Forth
Easy Forth by Nick Morgan
Forth: The programming language that writes itself by Dave Gauer
Implementing a Forth by Dave Gauer
Starting FORTH by Leo Brodie
Thinking Forth by Leo Brodie [pdf]
Go
A comprehensive guide to go generate by Eli Bendersky
Accessing PostgreSQL databases in Go by Eli Bendersky
Embedding in Go by Eli Bendersky
Generic functions on slices with Go type parameters by Eli Bendedrsky
Go concurrency distilled by Anton Zhiyanov
Go internals: invariance and memory layout of slices by Eli Bendersky
Go Optimization Guide by Alexander Stavonin
Higher-order functions in Go by Eli Benderski
Memory Allocation in Go by Nguyen Trong Nghia
Notes on running Go in the browser with WebAssembly by Eli Benderski
Practical Go Lessons by Maximilien Andile
Ranging over functions in Go 1.23 by Eli Benderski
The Y combinator in Go with generics by Eli Benderski
Network programming in Go
REST Servers in Go by Ely Bendersky
Haskell
Learn Haskell by building a blog generator Gil Mizrahi
Learn You a Haskell for Great Good! by Miran Lipovača
Monads for functional programming by Philip Wadler [pdf]
Real World Haskell by Bryan O'Sullivan, Don Stewart, and John Goerzen
Jai
Java
How to Design Classes by Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi and Viera K. Proulx [pdf]
Think Java by Allen B. Downey
JavaScript
Eloquent JavaScript by Marijn Haverbeke
Exploring JS: JavaScript books for programmers by Dr. Axel Rauschmayer
Structure and Interpretation of Computer Programs — JavaScript Edition by
- Harold Abelson and Gerald Jay Sussman with Julie Sussman — original authors
- Martin Henz and Tobias Wrigstad with Julie Sussman — adapters to JavaScript
- Samuel Fang — designer and developer of this Interactive SICP JS edition
The Modern JavaScript Tutorial by Ilya Kantor
Lean
- Functional Programming in Lean by David Thrane Christiansen
Lisp dialects
Clojure
Babashka Babooka: Write Command-Line Clojure by Daniel Higginbotham
Clojure for the Brave and True by Daniel Higginbotham
Common Lisp
Gamedev in Lisp by Andrew Kravchuk
Learn Lisp The Hard Way by "the Phoeron" Colin J.E. Lupton
On Lisp by Paul Graham
Practical Common Lisp by Peter Seibel
Successful Lisp: How to Understand and Use Common Lisp by David B. Lamkins
Typed Lisp, A Primer by Musa Al-hassy
Racket
A Functional Introduction To Computer Science by Prabhakar Ragde
Beautiful Racket by Matthew Butterick
How to Design Programs, Second Edition by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
Programming Languages: Application and Interpretation by Shriram Krishnamurthi
Scheme
Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman with Julie Sussman
(learn 'scheme) by Jared Krinke
Nim
- Computer Programming with the Nim Programming Language by Dr. Stefan Salewski
OCaml
Learn Programming with OCaml by Sylvain Conchon and Jean-Christophe Filliâtre
OCaml Programming: Correct + Efficient + Beautiful by Michael R. Clarkson
Real World OCaml by Yaron Minsky, Anil Madhavapeddy and Jason Hickey
Oberon-2
- Object-Oriented Programming in Oberon-2 by Hanspeter Mössenböck [pdf]
Odin
"Handles are the better pointers": An Odin gamedev follow-up by Karl Zylinski
Introduction to the Odin Programming Language by Karl Zylinski
Mistakes and cool things to do with arena allocators by Karl Zylinski
Pascal
- Modern Object Pascal Introduction for Programmers by Michalis Kamburelis
PostScript
Learning PostScript by Doing by Andre Heck [pdf]
Mathematical Ilustrations: A Manual of Geometry and PostScript by Bill Casselman
Prolog
Datalog in Rust by Frank McSherry
Learn Prolog Now! by Patrick Blackburn, Johan Bos, Kristina Striegnitz
The Power of Prolog by Markus Triska
Game Programming in Prolog by Youngjin Kang
Pyret
Programming and Programming Languages by Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz, Kathi Fisler
A Data-Centric Introduction to Computing by Kathi Fisler, Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz
Python
30 Days Of Python by Asabeneh
Architecture Patterns with Python by Harry Percival and Bob Gregory
Composing Programs by John DeNero
Computational Discovery on Jupyter by Rob Corless
Data Structures and Information Retrieval in Python by Allen B. Downey
From Python to Numpy by Nicolas P. Rougier
Full Stack Python by Matt Makai
How Python Asyncio Works: Recreating it from Scratch by Jacob Padilla
How to Think Like a Computer Scientist: Interactive Edition by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers
Introduction to Computer Programming with Python by Harris Wang
Introduction to Python Programming by Udayan Das, Aubrey Lawson, Chris Mayfield, Narges Norouzi [pdf]
Invent With Python by Al Sweigart
- Audio, Video, and Webcams in Python (Lost Chapter from Automate the Boring Stuff)
- Automate the Boring Stuff with Python
- Beyond the Basic Stuff with Python
- Cracking Codes with Python
- Invent Your Own Computer Games with Python
- Making Games with Python & Pygame
- Python Programming Exercises, Gently Explained
- Scratch 3 Programming Playground
- The Big Book of Small Python Projects
- The Recursive Book of Recursion
NumPy Illustrated: The Visual Guide to NumPy by Lev Maximov
Pandas Illustrated: The Definitive Visual Guide to Pandas by Lev Maximov
Practical Python Programming by David Beazley
Python & OpenGL for Scientific Visualization by Nicolas P. Rougier
Python Asyncio: The Complete Guide by Jason Brownlee
Python Courses by Bernd Klein
Python Data Science Handbook by Jake VanderPlas
Python Design Patterns by Brandon Rhodes
Python for Data Analysis, 3rd edition by Wes McKinney
Python Programming for Economics and Finance by Thomas J. Sargent and John Stachurski
Real Python - A collection of Python tutorials.
Scientific Visualization: Python + Matplotlib by Nicolas Rougier
Test-Driven Development with Python by Harry Percival
The Ultimate Guide to Error Handling in Python by Miguel Grinberg
Think Python, 2nd Edition by Allen B. Downey
Think Python, 3rd Edition by Allen B. Downey
Thinking in Python: Insights, Idioms and Patterns by Bruce Eckel
Wicked Python trickery - dynamically patch a Python function's source code at runtime by Eric J. Ma
R
Big Book of R by Oscar Baruffa
Efficient R Programming by Colin Gillespie and Robin Lovelace
R for Data Science (2e) Hadley Wickham, Mine Cetinkaya-Rundel, Garrett Grolemund
Regular expressions
Implementing Regular Expressions by Russ Cox
Regular-Expressions.info by Jan Goyvaerts
Ruby
Building Games with DragonRuby by Brett Chalupa
Rust
A Gentle Introduction to Rust by Steve Donovan
Async Rust in Three Parts by Jack O'Connor
Beginner's guide to Error Handling in Rust by Shesh Babu
Clear explanation of Rust’s module system by Shesh Babu
Effective Rust by David Drysdale
Exploring ways to make async Rust easier by Carl Lerche
Learning Async Rust With Entirely Too Many Web Servers by Ibraheem Ahmed
No-Panic Rust: A Nice Technique for Systems Programming by Josh Haberman
Rust Atomics and Locks: Low-Level Concurrency in Practice by Mara Bos
Rust data structures with circular references by Eli Bendersky
Testing multiple implementations of a trait in Rust by Eli Bendersky
Smalltalk
- Smalltalk Resources - A list of free smalltalk books.
Ya
- Я ☞ Articles by Murat Kasimov
Zig
Learning Zig by Karl Seguin
Retrocomputing
BASIC Code by Michael Coorlim
-
- Game Engine Black Book: Wolfenstein 3D
- Game Engine Black Book: DOOM
- The Book of CP-System
Easy 6502 by Nick Morgan
Extra Instructions Of The 65XX Series CPU by Adam Vardy
Game Eengine White Papers: Commander Keen by Bas Smits [pdf]
How PlayStation Graphics & Visual Artefacts Work by Gustavo Pezzi
How pseudo-3d racing games work by Louis Gorenfeld
Learn Multiplatform Assembly Programming by ChibiAkumas
Mark Moxon's Software Archaeology - Fully documented source code for Elite, Revs, Lander, Aviator and more
Michael Abrash’s Graphics Programming Black Book, Special Edition by Michael Abrash
Portals and Quake by Pekka Väänänen
Programming specs for the GBA and NDS hardware by Martin Korth
The Annotated "Programming the Nintendo GBA : The Unofficial Guide by Jasper Vijn
Adevent of code on retro machines
Advent of Code 2022 on a MikroMikko 4TT m326 by Jukka Jylänki
Advent Of Code 2023 on a Commodore 64 by Jukka Jylänki
Apple II
Commodore 64
An Afterlife User's Guide to the C64 by Gregorio Naçu
C64 OS Programmer's Guide by Gregorio Naçu
Commodore Bookmarks - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community.
The Lost Ways of Programming: Commodore 64 BASIC by Tomas Petricek
CP/M
A journey into the 8-Bit microcomputing past: Exploring the CP/M operating system
DOS
256-Color VGA Programming in C by David Brackeen
Beyond the 1 MB barrier in DOS by Julio Merino
From 0 to 1 MB in DOS by Julio Merino
Game Boy
Game Boy Advanced programming tutorial by Jasper Vijn
More than you wanted to know about how Game Boy cartridges work by Allison Parrish
Mega 65
MEGA65 Welcome Guide by Dan Sanderson
NES
Famicom Party: Making NES Games in Assembly by Kevin Zurawel
NesDev.org - A community of homebrew game developers and hardware researchers for the Nintendo Entertainment System (NES) and other retro consoles.
ZX Spectrum and Z80 CPU
First Steps in Z80 Assembly Language by Darryl Sloan [pdf]
How to Write ZX Spectrum Games by Jonathan Cauldwell [pdf]
Sinclair ZX Spectrum BASIC programming by Steven Vicker [pdf]
ZX Spectrum Next: Assembly Developer Guide by Tomaz Kragelj
ZX Online Articles
Reverse engineering
Applied Reverse Engineering Series by Daax Rynd, Aidan Khoury and Nick Peterson
Reverse Engineering for Beginners by Dennis Yurichev
Reverse Engineering For Everyone by Kevin Thomas
Reversing for dummies - x86 assembly and C code by Sami Alaoui
Robotics
Introduction to Autonomous Robots by Nikolaus Correll, Bradley Hayes, Christoffer Heckman, and Alessandro Roncone
Mathematics for Robotics by Jessy Grizzle
Modern Robotics: Mechanics, Planning, and Control by Kevin M. Lynch and Frank C. Park
Underactuated Robotics by Russ Tedrake
System programming
io_uring basics: Writing a file to disk by Phil Eaton
io_uring by example by Shuveb Hussain
Lord of the io_uring by Shuveb Hussain
Technical Writing
Refactoring English: Effective Writing for Software Developers by Michael Lynch
Software Technical Writing: A Guidebook by James [pdf]
Technical Writing Posts by James
Testing
How to Test by Alex Kladov
The Fuzzing Book by Andreas Zeller, Rahul Gopinath, Marcel Böhme, Gordon Fraser, and Christian Holler
Text editors
Design and Implementation of a Win32 Text Editor by James Brown
Text Buffer Reimplementation by Peng Lyu
Text Editor: Data Structures by Avery Laird
Emacs
A Beginner's Guide to Extending Emacs by Tyler Langlois
Emacs Config From Scratch by Arne Bahlo
Emacs Lisp Elements by Protesilaos
Emacs Mini Manual by Tu Do
How to learn Emacs by David Röthlisberger
How I am deeply integrating emacs by Joshua Blais
Use GNU Emacs: The Plain Text Computing Environment by Keith Waclena
Vim
Interactive Vim Tutorial by Henrik Huttunen
Learn Vim (the Smart Way) by Igor Irianto
The Vi/Ex Editor by Walter Alan Zintz
Vim from the ground up by Matthieu Cneude
Vim Reference Guide by Sundeep Agarwal
Unicode
Programming with Unicode by Victor Stinner
The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets by Joel Spolsky
The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 by Nikita Prokopov
Unicode programming, with examples by Joe Nelson
Version control tools
Git from the Bottom Up by John Wiegley
Learn the workings of Git, not just the commands by Andre Fachat
Web programming
A book about using Node.js by Mikito Takada
A masochist’s guide to web development by Sebastiano Tronto
FastCGI — The Forgotten Treasure by Peter Simons and Ralph Babel
Full Stack open - Deep Dive Into Modern Web Development.
Implementing React From Scratch by Robby Pruzan
Let's build a browser engine! by Matt Brubeck
Let’s write a search engine by Amit Patel
Mozilla Developers Network - Resources for Developers, by Developers. Documenting CSS, HTML, and JavaScript, since 2005.
Single page apps in depth by Mikito Takada
Tania Rascia'a Web Development Deep Dives
- A Complete Guide to CSS Concepts and Fundamentals
- An Introduction to GraphQL
- Design for Developers: Specific Steps to Improve Your Website Design
- Everything I Know as a Software Developer Without a Degree
- How to Set up a Mac for Development
- How to Set Up webpack 5 From Scratch
- How to Structure and Organize a React Application
- How to Use React, the JavaScript Framework
- How to Use Redux and React
- How to Use Vue, the JavaScript Framework
- Setting Up Virtual Hosts
- The Event Loop, Callbacks, Promises, and Async/Await in JavaScript
The Copenhagen Book - A general guideline on implementing auth in web applications.
The Flask Mega-Tutorial by Miguel Grinberg
The Odin Project - An open-source curriculum for learning full-stack web development.
Web Browser Engineering by Pavel Panchekha and Chris Harrelson
WebDev - Guidance to build modern web experiences that work on any browser.
What happens when you type google.com into your browser's address box and press enter? by Alex Gaynor
CSS
A Complete Guide to CSS Grid by Chris House
A deep dive into StyleX by Flavio Copes
Learn CSS Layout the pedantic way by Mikito Takada
Modern CSS Solutions for Old CSS Problems by Stephanie Eckles
You no longer need JavaScript by Lyra Rebane
What You Need to Know about Modern CSS (2025 Edition) by Chris Coyier
Django
Learn Django by Will Vincent
HTML
HTML for People by Blake Watson
Personal Websites and Blogs
AI
Ahead of AI by Sebastian Raschka
Randorithms by Ben Coleman
C and C++
Andrzej's C++ Blog by Andrzej Krzemieński
Asymmetric Transfer Lewis Baker
Bannalia: trivial notes on themes diverse by Joaquín M López Muñoz
Barry's C++ Blog by Barry Revzin
C++ Metaprogramming by Odin Holmes
C++ on a Friday by Anders Schau Knatten
C++ Stories by Bartłomiej Filipek
Crascit's Blog by Craig Scott
Fluent C++ by Jonathan Boccara
foonathan::blog() by Jonathan Müller
Just Software Solutions' Blog by Anthony Williams
Lu's blog by Lu Pan
Modernes C++ by Rainer Grimm
Molecular Musings by Stefan Reinalter
Moody Camel by Cameron Desrochers
null program by Chris Wellons
Preshing on Programming by Jeff Preshing
Programming Nonsense by Sy Brand
ReachableCode by *Gianluca Delfino *
Simplify C++ by Arne Mertz
The C++ way by Andrzej Krzemieński
The Old New Thing: Practical development throughout the evolution of Windows by Raymond Chen
The Pasture by JeanHeyd Meneide
Thinking Asynchronously in C++ by * Christopher Kohlhoff*
Video Cortex by Adi Shavit
Vorbrodt's C++ Blog by Martin Vorbrodt
Game and Graphics Programming
30fps.net: Computer Graphics & Programming with Pekka Väänänen
A small freedom area by Clément Bœsch
Alan Zucconi's Website - Game Development, Shader Coding & Artificial Intelligence.
Bits, pixels, cycles and more by Arseny Kapoulkine
Bumbershoot Software Blog by Michael Martin
c0de517e's weblore by Angelo Pesce
Forward Scattering by Nicholas Chapman
FrostKiwi's Secrets by Wladislav Artsimovich
Frozen Fractal by Thomas ten Cate
Graphics Programming weekly by Jendrik Illner
Interplay of Light by Kostas Anagnostou
Irradiance Blog by Pablo Zurita
lisyarus blog by Nikita Lisitsa
Maister's Graphics Adventures by Hans-Kristian Arntzen
Moments in Graphics by Christoph Peters
Of Shaders & Triangles by Hao Joe
Pikuma's Blog by Gustavo Pezzi
Red Blob Games - Interactive visual explanations of math and algorithms, using motivating examples from computer games by Amit Patel
Rendering Dreams by Thomas Poulet
Rendering Engine Architecture Conference - A conference about the craft of real-time rendering systems.
The blog at the bottom of the sea by Alan Wolfe
The Brain Dump by Andre Weissflog
The Code Corsair by Emilio López
The Danger Zone by Matt Pettineo
The ryg blog by Fabian Giesen
wassimulato by Wassim Alhajomar
hexaquo by Karl Bittner
Zero Radiance by Evgenii Golubev
Hardware Blogs
Math and Physics
3Blue1Brown by Grant Sanderson
Galileo Unbound Blog by Prof. David D. Nolte
Laboratories in Mathematical Experimentation: A Bridge to Higher Mathematics, 2nd Edition by J. William Bruce, George Cobb, Giuliana Davidoff, Christopher DugawF, Alan Durfee, Art M. Duval, Janice Gifford, Helmut Knaust, Donal O’Shea, Mark Peterson, Harriet Pollatsek, Margaret Robinson, Lester Senechal, Robert Weaver
Machine Logic by Lawrence C. Paulson
Math3ma by Tai-Danae Bradley
Mathematical Enchantment by James Propp
Mixed Programming
0pfs by Mikola Lysenko
A Random Walk Through Geek-Space by Sebastian Sylvan
Amit's Thoughts by Amit Patel
Chuniversiteit by Chun Fei Lung
Digital Grove by Ryan Fleury
Dissecting the Code by Sergey Teplyakov
Dangerous Assembly by Frank Tetzel
Educated Guesswork by Eric Rescorla
Entropic Thoughts by Christoffer Stjernlöf
Giles' blog by Giles Thomas
Init 1 by Andrea Baldan
Interjected Future by Wil Chung
IT Hare on Soft.ware by Sergey Ignatchenko
Mario's Lab by Mario Zechner
MALTSEV.SPACE by Aleksey Maltsev
mcyoung by Miguel Young de la Sota
Melatoni's Blog by Nguyen Trong Nghia
MonoidMusicianʼs Blog by Verity Scheel
NULL BITMAP by Justin Jaffray
NULL on error - Flipping bits whilst updating pixels by Rodrigo Delduca
Playing with code by Dmitry V. Sokolov
- On the site
- On the author's GitHub
Pointers Gone Wild by Maxime Chevalier-Boisvert
purplesyringa by Alisa Sireneva
Reasonably Polymorphic by Sandy Maguire
Squadrick by Dheeraj Reddy
stuffwithstuff by Robert Nystrom
The If Works by James Coglan
Vectorized by Caden Parker
Performance and Optimization
Branch Prediction Demystified by Joe Mckay
Johnny's Software Lab by Ivica Bogosavljević
Optimizing a Math Expression Parser in Rust by Ricardo Pallás
Web Development
Josh Comeau's Website - Animation, CSS, JavaScript, React
JSLegendDev’s Substack - Web development, game development and their intersection.
Tania Rascia’s blog by Tania Rascia
Other
Explained from First Principles by Kaspar Etter
How These Things Work - a book about abstraction
Improve Your Social Skills by Dr. Daniel Wendler
Project Oberon: The Design of an Operating System, a Compiler, and a Computer by Niklaus Wirth and Jürg Gutknecht
The Art of HPC by Victor Eijkhout
The Art of Insight in Science and Engineering: Mastering Complexity by Sanjoy Mahajan
The Fundamentals of Control Theory by Brian Douglas
The Nature of Code - A book about how can we capture the unpredictable evolutionary and emergent properties of nature in software by Daniel Shiffman
Other lists
Become a Programmer, Motherfucker - A list of free programming books.
Electronic References by Colin S. Gordon - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online.
GPU Optimization for GameDev by Ken Hu
LibreTexts - Collections of science books.
My favorite technical blogs by Phil Eaton