Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bobeff/programming-math-science
This is a list of links to different freely available learning resources about computer programming, math, and science.
https://github.com/bobeff/programming-math-science
List: programming-math-science
awesome-list math programming science
Last synced: 2 days ago
JSON representation
This is a list of links to different freely available learning resources about computer programming, math, and science.
- Host: GitHub
- URL: https://github.com/bobeff/programming-math-science
- Owner: bobeff
- License: cc0-1.0
- Created: 2021-08-27T12:48:54.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-12-09T01:44:54.000Z (12 days ago)
- Last Synced: 2024-12-12T13:03:45.250Z (9 days ago)
- Topics: awesome-list, math, programming, science
- Homepage:
- Size: 688 KB
- Stars: 1,720
- Watchers: 26
- Forks: 120
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- ultimate-awesome - programming-math-science - This is a list of links to different freely available learning resources about computer programming, math, and science. (Other Lists / Monkey C Lists)
README
# 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](#ai)
* [Machine Learning](#machine-learning)
* [Reinforcement learning](#reinforcement-learning)
* [Computer Games AI](#computer-games-ai)
* [Algorithms](#algorithms)
* [Art](#art)
* [Biology](#biology)
* [Command Line and Tools](#command-line-and-tools)
* [Curl](#curl)
* [Linux command line](#linux-command-line)
* [Compilers and Interpreters](#compilers-and-interpreters)
* [Computer Graphics](#computer-graphics)
* [Curves and Surfaces](#curves-and-surfaces)
* [DirectX 12](#directx-12)
* [Image Processing](#image-processing)
* [Metal](#metal)
* [OpenGL](#opengl)
* [Ray Tracing](#ray-tracing)
* [Shaders](#shaders)
* [Vulkan](#vulkan)
* [WebGPU](#webgpu)
* [Computer Networks and Network Programming](#computer-networks-and-network-programming)
* [Cryptography](#cryptography)
* [Data Science](#data-science)
* [Debuggers](#debuggers)
* [Databases](#databases)
* [Demoscene](#demoscene)
* [Design Patterns](#design-patterns)
* [Distributed Systems](#distributed-systems)
* [Electronics](#electronics)
* [Emulators and Virtual Machines](#emulators-and-virtual-machines)
* [Fluids Simultion](#fluids-simulation)
* [Game Programming](#game-programming)
* [Game Engines](#game-engines)
* [Geographic Information Systems](#geographic-information-systems)
* [GUI Programming](#gui-programming)
* [Hardware](#hardware)
* [Logical Games](#logical-games)
* [Low Level Stuff](#low-level-stuff)
* [Math](#math)
* [Algebra](#algebra)
* [Calculus](#calculus)
* [Category Theory](#category-theory)
* [Geometry](#geometry)
* [Operations Research](#operations-research)
* [Probability and Statistics](#probability-and-statistics)
* [Theoretical Computer Science](#theoretical-computer-science)
* [Topology](#topology)
* [Multithreading and Concurrency](#multithreading-and-concurrency)
* [Operating Systems](#operating-systems)
* [Operating Systems Development](#operating-systems-development)
* [Photography](#photography)
* [Physics](#physics)
* [Simulations](#simulations)
* [Programming Languages](#programming-languages)
* [Ada](#ada)
* [Assembly](#assembly)
* [Bash](#bash)
* [Basic](#basic)
* [C](#c)
* [C++](#cpp)
* [D](#d)
* [Datalog](#datalog)
* [Erlang](#erlang)
* [Forth](#forth)
* [Go](#go)
* [Haskell](#haskell)
* [Java](#java)
* [JavaScript](#javascript)
* [Lean](#lean)
* [Lisp dialects](#lisp-dialects)
* [Clojure](#clojure)
* [Common Lisp](#common-lisp)
* [Racket](#racket)
* [Scheme](#scheme)
* [Nim](#nim)
* [OCaml](#ocaml)
* [Oberon-2](#oberon-2)
* [Odin](#odin)
* [Pascal](#pascal)
* [PostScript](#postscript)
* [Prolog](#prolog)
* [Pyret](#pyret)
* [Python](#python)
* [Regular expressions](#regular-expressions)
* [Ruby](#ruby)
* [Rust](#rust)
* [Smalltalk](#smalltalk)
* [Zig](#zig)
* [Retrocomputing](#retrocomputing)
* [Advent of Code on retro machines](#adevent-of-code-on-retro-machines)
* [Apple II](#apple-ii)
* [Commodore 64](#commodore-64)
* [DOS](#dos)
* [Mega 65](#mega-65)
* [ZX Spectrum and Z80 CPU](#zx-spectrum-and-z80-cpu)
* [Reverse engineering](#reverse-engineering)
* [Robotics](#robotics)
* [SIMD programming](#simd-programming)
* [Text editors](#text-editors)
* [Emacs](#emacs)
* [Vim](#vim)
* [Unicode](#unicode)
* [Version control tools](#version-control-tools)
* [Web programming](#web-programming)
* [CSS](#css)
* [Other](#other)
* [Other lists](#other-lists)## AI
* [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp](https://norvig.github.io/paip-lisp) by *Peter Norvig*
### Machine Learning
* [A Course in Machine Learning](http://ciml.info) by *Hal Daumé III*
* [A Visual Guide to Quantization: Demystifying the Compression of Large Language Models](https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization) by *Maarten Grootendorst*
* [Alice’s Adventures in a differentiable wonderland](https://www.sscardapane.it/alice-book) by *Simone Scardapane*
* [An Introduction to Statistical Learning](https://www.statlearning.com) by *Gareth James, Daniela Witten, Trevor Hastie, Rob Tibshirani*
* [Applied Machine Learning for Tabular Data](https://aml4td.org) by *Max Kuhn* and *Kjell Johnson*
* [Crash Course in Deep Learning (for Computer Graphics)](https://gpuopen.com/learn/deep_learning_crash_course/) by *Jakub Boksansky* [[alternative link]](https://boksajak.github.io/blog/DeepLearning)
* [Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control](https://faculty.washington.edu/sbrunton/DataBookV2.pdf) by *Steven L. Brunton and J. Nathan Kutz* **[pdf]**
* [Deep Learning](https://www.deeplearningbook.org/) by *Ian Goodfellow, Yoshua Bengio and Aaron Courville*
* [Deep Learning Course](https://fleuret.org/dlc) by *François Fleuret*
* [Deep Learning: Foundations and Concepts](https://www.bishopbook.com) by *Chris Bishop with Hugh Bishop*
* [Deep Learning Interviews](https://arxiv.org/abs/2201.00650) by *Shlomo Kashani* and *Amir Ivry*
* [Dive into Deep Learning](https://d2l.ai)
* [Dive into Deep Learning Compiler](https://tvm.d2l.ai/)
* [Information Theory, Inference, and Learning Algorithms](https://inference.org.uk/itila/book.html) by *David MacKay*
* [Introduction to ggml](https://huggingface.co/blog/introduction-to-ggml) by *Xuan Son NGUYEN*, *Georgi Gerganov* and *slaren*
* [Introduction to Machine Learning Interviews](https://huyenchip.com/ml-interviews-book) by *Chip Huyen*
* [Learning Theory from First Principles](https://www.di.ens.fr/%7Efbach/ltfp_book.pdf) by *Francis Bach* **[pdf]**
* [Machine Learning Engineering Book](http://www.mlebook.com/wiki) by *Andriy Burkov*
* [Machine Learning Engineering Open Book](https://github.com/stas00/ml-engineering) by *Stas Bekman*
* [Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory](https://arxiv.org/abs/2310.20360) by *Arnulf Jentzen, Benno Kuckuck, Philippe von Wurstemberger*
* [Mathematics for Machine Learning](https://mml-book.github.io/) by *Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong*
* [Neural Networks: Zero to Hero](https://karpathy.ai/zero-to-hero.html) - A course by *Andrej Karpathy*
* [Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com) by *Michael Nielsen*
* [Physics-based Deep Learning](https://physicsbaseddeeplearning.org/intro.html) by *N. Thuerey, P. Holl, M. Mueller, P. Schnell, F. Trost, K. Um*
* [Practical Deep Learning for Coders](https://course.fast.ai)
* [Probabilistic Machine Learning: An Introduction](https://probml.github.io/pml-book/book1.html) by *Kevin Patrick Murphy*
* [Probabilistic Machine Learning: Advanced Topics](https://probml.github.io/pml-book/book2.html) by *Kevin Patrick Murphy*
* [Speech and Language Processing, 3rd edition](https://web.stanford.edu/~jurafsky/slp3/) by *Daniel Jurafsky* and *James H. Martin*
* [The Elements of Differentiable Programming](https://arxiv.org/abs/2403.14606) by *Mathieu Blondel and Vincent Roulet*
* [The Engineer's Guide To Deep Learning](https://www.interdb.jp/dl) by *Hironobu Suzuki*
* [The Hundred Page Machine Learning Book](http://themlbook.com/wiki) by *Andriy Burkov*
* [The Little Book of Deep Learning](https://fleuret.org/francois) by *François Fleuret*
* [Tutorial on Diffusion Models for Imaging and Vision](https://arxiv.org/abs/2403.18103) by *Stanley H. Chan*
* [Understanding Deep Learning](https://udlbook.github.io/udlbook) by *Simon J.D. Prince*
#### Reinforcement learning
* [Deep Reinforcement Learning](https://deep-reinforcement-learning.net) by *Aske Plaat*
* [Deep Reinforcement Learning: Zero to Hero!](https://github.com/alessiodm/drl-zh)
* [Distributional Reinforcement Learning](https://www.distributional-rl.org) by *Marc G. Bellemare*, *Will Dabney* and *Mark Rowland*
* [Multi-Agent Reinforcement Learning: Foundations and Modern Approaches](https://www.marl-book.com) by *Stefano V. Albrecht*, *Filippos Christianos* and *Lukas Schäfer*
* [Reinforcement Learning: An Introduction, Second Edition](http://incompleteideas.net/book/the-book-2nd.html) by *Richard S. Sutton* and *Andrew G. Barto*
### Computer Games AI
* [Artificial Intelligence and Games](https://gameaibook.org) by *Georgios N. Yannakakis* and *Julian Togelius*
* [Game AI Pro](http://www.gameaipro.com) by *Steve Rabin*
* [Programming Starcraft AI](https://makingcomputerdothings.com/an-index-for-the-starcraft-ai-posts) by *Peter Kis*
## Algorithms
* [Algorithms](http://jeffe.cs.illinois.edu/teaching/algorithms/) by *Jeff Erickson*
* [Algorithms and Data Structures](https://people.mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Sanders-Toolbox.pdf) by *Kurt Mehlhorn and Peter Sanders* **[pdf]**
* [Algorithms Books](https://algorithmsbook.com) by *Mykel J. Kochenderfer*
* [Algorithms for Optimization](https://algorithmsbook.com/optimization) by *Mykel J. Kochenderfer*, and *Tim A. Wheeler*
* [Algorithms for Decision Making](https://algorithmsbook.com/decisionmaking) by *Mykel J. Kochenderfer*, *Tim A. Wheeler*, and *Kyle H. Wray*
* [Algorithms for Validation](https://algorithmsbook.com/validation) by *Mykel J. Kochenderfer*, *Sydney M. Katz*, *Anthony L. Corso*, and *Robert J. Moss** [Algorithms for Competitive Programming](https://cp-algorithms.com)
* [Algorithms for Modern Hardware](https://en.algorithmica.org/hpc) by *Sergey Slotin*
* [Clever Algorithms: Nature-Inspired Programming Recipes](https://github.com/clever-algorithms/CleverAlgorithms) by *Jason Brownlee*
* [Collision Detection](https://www.jeffreythompson.org/collision-detection) by *Jeff Thompson*
* [Competitive Programmer's Handbook](https://cses.fi/book/index.php) by *Antti Laaksonen*
* [Data Structures for Data-Intensive Applications: Tradeoffs and Design Guidelines](https://cs-people.bu.edu/mathan/publications/fnt23-athanassoulis.pdf) by *Manos Athanassoulis
, Stratos Idreos and Dennis Shasha* **[pdf]*** [Exact String Matching Algorithms](http://www-igm.univ-mlv.fr/~lecroq/string) by *Christian Charras and Thierry Lecroq*
* [Foundations of Data Science](https://www.cs.cornell.edu/jeh/book%20no%20so;utions%20March%202019.pdf) by *Avrim Blum*, *John Hopcroft*, and *Ravindran Kannan* **[pdf]**
* [How does B-tree make your queries fast?](https://blog.allegro.tech/2023/11/how-does-btree-make-your-queries-fast.html) by *Mateusz Kuźmik*
* [Introduction to Algorithms: A Creative Approach](https://doc.lagout.org/science/0_Computer%20Science/2_Algorithms/Introduction%20to%20Algorithms_%20A%20Creative%20Approach%20%5BManber%201989-01-11%5D.pdf) by *Udi Manber* **[pdf]**
* [Kalman Filter from the Ground Up](https://www.kalmanfilter.net) by *Alex Becker*
* [Monte-Carlo Graph Search from First Principles](https://github.com/lightvector/KataGo/blob/master/docs/GraphSearch.md) by *David J Wu*
* [Planning Algorithms](http://lavalle.pl/planning) by *Steven M. LaValle*
* [Principles of Algorithmic Problem Solving](https://www.csc.kth.se/~jsannemo/slask/main.pdf) by *Johan Sannemo*
* [Problem Solving with Algorithms and Data Structures using Python](https://runestone.academy/runestone/books/published/pythonds/index.html) by *Brad Miller and David Ranum*
* [Purely Functional Data Structures](https://www.cs.cmu.edu/~rwh/students/okasaki.pdf) by *Chris Okasaki* **[pdf]**
* [Sequential and Parallel Data Structures and Algorithms: The Basic Toolbox](https://people.mpi-inf.mpg.de/~mehlhorn/ToolboxNew.html) by *Peter Sanders, Kurt Mehlhorn, Martin Dietzfelbinger, and Roman Dementiev*
* [The Arcane Algorithm Archive](https://www.algorithm-archive.org/)
* [The Skyline algorithm for packing 2D rectangles](https://jvernay.fr/en/blog/skyline-2d-packer/implementation) by *Julien Vernay*
## Art
* [Pixel art articles and tutorials](https://saint11.org) by *Pedro Medeiros*
## Biology
* [Introduction to Genomics for Engineers](https://learngenomics.dev)
* [The Algorithmic Beauty of Plants](http://algorithmicbotany.org/papers/abop/abop.pdf) by *Przemyslaw Prusinkiewicz* and *Aristid Lindenmayer* **[pdf]**
## Command Line and Tools
* [Driving Compilers](https://fabiensanglard.net/dc) by *Fabien Sanglard*
* [Getting started with tmux](https://ittavern.com/getting-started-with-tmux) by *ittavern*
* [How I'm still not using GUIs: A guide to the terminal](https://lucasfcosta.com/2019/02/10/terminal-guide-2019.html) by *Lucas Fernandes da Costa*
* [How is a binary executable organized? Let's explore it!](https://jvns.ca/blog/2014/09/06/how-to-read-an-executable) by *Julia Evans*
* [Learn Makefiles: With the tastiest examples](https://makefiletutorial.com) by *Chase Lambert*
* [NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world) - An unofficial book for beginners by *Ryan Yin*
* [Terminal colours are tricky](https://jvns.ca/blog/2024/10/01/terminal-colours) by *Julia Evans*
* [The Definitive Guide To Docker](https://masteringbackend.com/posts/docker-tutorial)
* [Use Midnight Commander like a pro](https://klimer.eu/2015/05/01/use-midnight-commander-like-a-pro) by *Igor Klimer*
### Curl
* [Curl Cookbook](https://catonmat.net/cookbooks/curl)
* [Curl Exercises](https://jvns.ca/blog/2019/08/27/curl-exercises) by *Julia Evans*
* [Mastering curl: interactive text guide](https://antonz.org/mastering-curl) by *Anton Zhiyanov*
### Linux command line
* [Effective Shell](https://effective-shell.com/) by *Dave Kerr*
* [Linux command line for you and me](https://lym.readthedocs.io/en/latest/index.html) by *Kushal Das*
* [The Linux Command Handbook](https://www.freecodecamp.org/news/the-linux-commands-handbook) by *Flavio Copes*
* [The Linux Command Line](https://linuxcommand.org/tlcl.php) by *William Shotts*
## Compilers and Interpreters
* [Build Your Own Lisp](https://buildyourownlisp.com) by *Daniel Holden*
* **Building a Toy Programming Language in Python** by *Miguel Grinberg*
* [Part 1](https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python)
* [Part 2](https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python-part-2)* **Building the fastest Lua interpreter.. automatically!** by *Haoran Xu*
* [Part 1](https://sillycross.github.io/2022/11/22/2022-11-22)
* [Part 2: Building a baseline JIT for Lua automatically](https://sillycross.github.io/2023/05/12/2023-05-12)* [Compiling to Assembly from Scratch](https://keleshev.com/compiling-to-assembly-from-scratch) by *Vladimir Keleshev*
* [Crafting Interpreters](http://craftinginterpreters.com) by *Robert Nystrom*
* [Creating the Bolt Compiler](https://mukulrathi.co.uk/create-your-own-programming-language/intro-to-compiler) by *Mukul Rathi*
* [Essentials of Compilation: An Incremental Approach](https://iucompilercourse.github.io/tutorial-web-page) by *Geremy G. Siek*
* [How Clang Compiles a Function](https://blog.regehr.org/archives/1605) by *John Regehr*
* [How LLVM Optimizes a Function](https://blog.regehr.org/archives/1603) by *John Regehr*
* [Let's Build a Compiler](https://xmonader.github.io/letsbuildacompiler-pretty) by *Jack Crenshaw*
* **Let's make a Teeny Tiny compiler** by *Austin Z. Henley*
* [Part 1](https://austinhenley.com/blog/teenytinycompiler1.html)
* [Part 2](https://austinhenley.com/blog/teenytinycompiler2.html)
* [Part 3](https://austinhenley.com/blog/teenytinycompiler3.html)* **Let's Write a Compiler** by *Brian Robert Callahan*
* [Part 1: Introduction, selecting a language, and doing some planning](https://briancallahan.net/blog/20210814.html)
* [Part 2: A lexer](https://briancallahan.net/blog/20210815.html)
* [Part 3: A parser](https://briancallahan.net/blog/20210816.html)
* [Part 4: Testing](https://briancallahan.net/blog/20210817.html)
* [Part 5: A code generator](https://briancallahan.net/blog/20210818.html)
* [Part 6: Input and output](https://briancallahan.net/blog/20210819.html)
* [Part 7: Arrays](https://briancallahan.net/blog/20210822.html)
* [Part 8: Strings, forward references, and conclusion](https://briancallahan.net/blog/20210826.html)* [Make A Language](https://arzg.github.io/lang) - A series about making a programming language called *Eldiro* using the *Rust* programming language.
## Computer Graphics
* [3D Math Primer for Graphics and Game Development](https://gamemath.com/book/intro.html) by *Fletcher Dunn* and *Ian Parberry*
* [A fast and precise triangle rasterizer](https://kristoffer-dyrkorn.github.io/triangle-rasterizer) by *Kristoffer Dyrkorn*
* [A Gentle Introduction to D3D12](https://alextardif.com/DX12Tutorial.html) by *Alex Tardif*
* [A trip through the Graphics Pipeline](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index) by *Fabian Giesen*
* **A Quick Introduction to Workgraphs** by *Kostas Anagnostou*
* [Part 1](https://interplayoflight.wordpress.com/2024/06/29/a-quick-introduction-to-workgraphs)
* [Part 2: Performance](https://interplayoflight.wordpress.com/2024/09/09/an-introduction-to-workgraphs-part-2-performance)* **Building Real-Time Global Illumination** by *Jason McGhee*
* [Part 1: Naive GI: A Foundation](https://jason.today/gi)
* [Part 2: Radiance Cascades](https://jason.today/rc)* [Collection of AMD Research Publications](https://gpuopen.com/learn/publications)
* [Computer Graphics from Scratch](https://gabrielgambetta.com/computer-graphics-from-scratch) by *Gabriel Gambetta*
* [Crash Course in BRDF Implementation](https://boksajak.github.io/blog/BRDF) by *Jakub Boksansky*
* [Fundamentals of Radiance Cascades](https://m4xc.dev/articles/fundamental-rc)
* **GPU Gems Books Series**
* [GPU Gems](https://developer.nvidia.com/gpugems/gpugems/contributors)
* [GPU Gems 2](https://developer.nvidia.com/gpugems/gpugems2/copyright)
* [GPU Gems 3](https://developer.nvidia.com/gpugems/gpugems3/contributors)* [GPU Performance for Game Artists](http://fragmentbuffer.com/gpu-performance-for-game-artists) by *Keith O’Conor*
* [GPU Programming Primitives for Computer Graphics](https://gpu-primitives-course.github.io) by *Daniel Meister*, *Atsushi Yoshimura*, and *Chih-Chen Kao*
* [Implementing a tiny CPU rasterizer](https://lisyarus.github.io/blog/posts/implementing-a-tiny-cpu-rasterizer.html) by *Nikita Lisitsa*
* [Implementing Order-Independent Transparency](https://osor.io/OIT) by *Rubén Osorio López*
* [Inigo Quilez's Website](https://iquilezles.org) - Articles, tutorials, code, and presentations related to computer graphics.
* [Learn Computer Graphics From Scratch](https://www.scratchapixel.com)
* [Let's Make a Voxel Engine](https://sites.google.com/site/letsmakeavoxelengine)
* [Lode's Computer Graphics Tutorial](https://lodev.org/cgtutor) by *Lode Vandevenne*
* [Marching Cubes, Explained Using Marching Squares](https://blog.42yeah.is/algorithm/2023/07/15/marching-cubes.html)
* [Matrix Compendium](https://gpuopen.com/learn/matrix-compendium/matrix-compendium-intro) 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.
* [Optimizing Software Occlusion Culling](https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index) by *Fabian Giesen*
* **Order Independent Transparency** by *Kostas Anagnostou*
* **Rasterized**
* [Part 1](https://interplayoflight.wordpress.com/2022/06/25/order-independent-transparency-part-1)
* [Part 2](https://interplayoflight.wordpress.com/2022/07/02/order-independent-transparency-part-2)
* [Part 3](https://interplayoflight.wordpress.com/2022/07/10/order-independent-transparency-endgame)
* **Raytraced**
* [Part 1](https://interplayoflight.wordpress.com/2023/07/15/raytraced-order-independent-transparency)
* [Part 2](https://interplayoflight.wordpress.com/2023/07/30/raytraced-order-independent-transparency-part-2)* [Physically Based Rendering in Filament](https://google.github.io/filament/Filament.md.html) by *Romain Guy* and *Mathias Agopian*
* **Probability Theory for Physically Based Rendering** by *Jacco Bikker*
* [Part 1](https://jacco.ompf2.com/2019/12/11/probability-theory-for-physically-based-rendering)
* [Part 2](https://jacco.ompf2.com/2019/12/13/probability-theory-for-physically-based-rendering-part-2)* [Rasterising a triangle](https://jtsorlinis.github.io/rendering-tutorial) by *Jason Tsorlinis*
* [RasterTek toturials](https://rastertek.com/tutindex.html)
* **Recreating Nanite** by *Xavier Niochaut*
* [Part 1 - The Plan](https://jglrxavpok.github.io/2023/11/12/recreating-nanite-the-plan.html)
* [Part 2 - Visibility buffer](https://jglrxavpok.github.io/2023/11/26/recreating-nanite-visibility-buffer.html)
* [Part 3 - Cluster rendering](https://jglrxavpok.github.io/2023/12/07/recreating-nanite-cluster-rendering.html)
* [Part 4 - LOD generation](https://jglrxavpok.github.io/2024/01/19/recreating-nanite-lod-generation.html)
* [Part 5 - A basic material pass](https://jglrxavpok.github.io/2024/02/06/recreating-nanite-material-pass.html)
* [Part 6 - LOD generation - faster, better, simpler](https://jglrxavpok.github.io/2024/03/12/recreating-nanite-faster-lod-generation.html)
* [Part 7 - Runtime LOD selection](https://jglrxavpok.github.io/2024/04/02/recreating-nanite-runtime-lod-selection.html)
* [Part 8 - Mesh shader time](https://jglrxavpok.github.io/2024/05/13/recreating-nanite-mesh-shader-time.html)
* [Part 9 - Raytracing](https://jglrxavpok.github.io/2024/08/21/recreating-nanite-raytracing.html)* [Software rasterizing hair](https://www.sctheblog.com/blog/hair-software-rasterize) by *Marcin Matuszczyk*
* [Texture-less Text Rendering](https://poniesandlight.co.uk/reflect/debug_print_text) by *Tim Gfrerer*
* [WebGL2 Fundamentals](https://webgl2fundamentals.org/)
### Curves and Surfaces
* [A Primer on Bézier Curves](https://pomax.github.io/bezierinfo)
* [Cubic spline interpolation](https://eli.thegreenplace.net/2023/cubic-spline-interpolation) by *Eli Bendersky*
* [Curves and Surfaces](https://ciechanow.ski/curves-and-surfaces) by *Bartosz Ciechanowski*
### DirectX 12
* **Compute with DirectX 12** by *Stefan Pijnacker*
* [Part 1: the Theory](https://www.stefanpijnacker.nl/article/compute-with-directx12-part-1)
* [Part 2: The Setup](https://www.stefanpijnacker.nl/article/compute-with-directx-12-part-2)* [DirectX-Graphics-Samples](https://github.com/microsoft/DirectX-Graphics-Samples)
* [Getting Started With DirectX Raytracing](https://renderingpixels.com/2022/07/getting-started-with-directx-raytracing) by *Seppe Dekeyser*
* [GPU Work Graphs mesh nodes in Microsoft DirectX® 12](https://gpuopen.com/learn/work_graphs_mesh_nodes/work_graphs_mesh_nodes-intro) by *Max Oberberger*
### Image Processing
* [Atkinson Dithering](https://beyondloom.com/blog/dither.html) by *John Earnest*
### Metal
* [Drawing Graphics on Apple Vision with the Metal Rendering API](https://github.com/gnikoloff/drawing-graphics-on-apple-vision-with-metal-rendering-api) by *Georgi Nikolov*
* [Metal Tutorial](https://metaltutorial.com) by *Will Martin*
### OpenGL
* [A Guide to Modern OpenGL Functions](https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions)
* [Best Practices for Modern OpenGL](https://juandiegomontoya.github.io/modern_opengl.html)
* [Learn OpenGL](https://learnopengl.com) by *Joey de Vries*
* [Learning Modern 3D Graphics Programming](https://paroj.github.io/gltut) by *Jason L. McKesson*
* [OGLdev: Modern OpenGL tutorials](https://ogldev.org) by *Etay Meiri*
* [OpenGL Tutorial](https://www.opengl-tutorial.org)
### Ray Tracing
* [A raycasting engine in 7 easy steps](https://austinhenley.com/blog/raycasting.html) by *Austin Z. Henley*
* [Amanatides and Woo's fast Voxel Traversal](https://m4xc.dev/articles/amanatides-and-woo)
* [Demystifying multiple importance sampling](https://lisyarus.github.io/blog/posts/multiple-importance-sampling.html) by *Nikita Lisitsa*
* [How to build a BVH](https://jacco.ompf2.com/2022/04/13/how-to-build-a-bvh-part-1-basics) by *Jacco Bikker*
* **Introduction of the Raytracing Technology**
* [Part 1](https://blog.en.uwa4d.com/2022/12/14/introduction-of-the-raytracing-technology-part-1)
* [Part 2](https://blog.en.uwa4d.com/2022/12/21/introduction-of-the-raytracing-technology-part-2)* [Physically Based Rendering: From Theory To Implementation](https://www.pbr-book.org/) by *Matt Pharr*, *Wenzel Jakob*, and *Greg Humphreys*
* [Ray-Casting Tutorial For Game Development And Other Purposes](https://permadi.com/1996/05/ray-casting-tutorial-table-of-contents) by *F. Permadi*
* [Ray Tracing Gems](https://link.springer.com/book/10.1007/978-1-4842-4427-2) by *Eric Haines and Tomas Akenine-Möller*
* [Ray Tracing Gems II](https://link.springer.com/book/10.1007/978-1-4842-7185-8) by *Adam Marrs, Peter Shirley, and Ingo Wald*
* [Ray Tracing in One Weekend: The Book Series](https://raytracing.github.io) by *Peter Shirley*
* [Ray Tracing with Voxels in C++](https://jacco.ompf2.com/2024/04/24/ray-tracing-with-voxels-in-c-series-part-1) by *Jacco Bikker*
### Shaders
* [3D Game Shaders For Beginners](https://github.com/lettier/3d-game-shaders-for-beginners)
* **A Beginner's Guide to Coding Graphics Shaders** by *Omar Shehata*
* [Part 1](https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders--cms-23313)
* [Part 2](https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders-part-2--cms-24111)
* [Part 3](https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders-part-3--cms-24351)* **A Journey Into Shaders** by *Antoine Mayerowitz*
* [Part I: The blob](https://www.mayerowitz.io/blog/a-journey-into-shaders)* [GM Shaders](https://gmshaders.com) - All about shaders for GameMaker!
* [Introducing GPU Reshape - shader instrumentation for everyone](https://gpuopen.com/learn/introducing-gpu-reshape-shader-instrumentation-toolset) by *Miguel Petersen*
* [Introduction to Shaders](https://www.hexaquo.at/pages/introduction-to-shaders) by *Karl Bittner*
* [Mesh Shaders on RDNA™ Graphics Cards](https://gpuopen.com/learn/mesh_shaders/mesh_shaders-index) by *Max Oberberger*, *Bastian Kuth* and *Quirin Meyer*
* [On Crafting Painterly Shaders](https://blog.maximeheckel.com/posts/on-crafting-painterly-shaders)
* [Shaders For People Who Don't Know How To Shader](https://github.com/Xibanya/ShaderTutorials) by *Manuela Malasaña*
* [Shader Tutorials by Ronja](https://www.ronja-tutorials.com)
* [The Best Darn Grid Shader (Yet)](https://bgolus.medium.com/the-best-darn-grid-shader-yet-727f9278b9d8) by *Ben Golus*
* [The Book of Shaders](https://thebookofshaders.com/) by *Patricio Gonzalez Vivo and Jen Lowe*
### Vulkan
* [I Am Graphics And So Can You](https://www.fasterthan.life/blog) - 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](https://edw.is/learning-vulkan) by *Elias Daler*
* [NVIDIA Vulkan Ray Tracing Tutorials](https://github.com/nvpro-samples/vk_raytracing_tutorial_KHR)
* [Vulkan Guide](https://vkguide.dev)
* [Vulkan Raytracing Tutorials](https://iorange.github.io)
* [Vulkan Tutorial](https://vulkan-tutorial.com) by *Alexander Overvoorde*
* [Vulkan Tutorial (Rust)](https://kylemayes.github.io/vulkanalia) by *Kyle Mayes*
### WebGPU
* [Learn WebGPU](https://eliemichel.github.io/LearnWebGPU) by *Elie Michel*
* [Learn Wgpu](https://sotrh.github.io/learn-wgpu) by *Ben Hansen*
* [Migrating from WebGL to WebGPU](https://hackernoon.com/migrating-from-webgl-to-webgpu) by *Dmitrii Ivashchenko*
* [WebGPU Fundamentals](https://webgpufundamentals.org)
* [WebGPU Unleashed: A Practical Tutorial](https://shi-yan.github.io/webgpuunleashed) by *Shi Yan*
* [Your first WebGPU app](https://codelabs.developers.google.com/your-first-webgpu-app) by *Brandon Jones* and *François Beaufort*
## Computer Networks and Network Programming
* [An Introduction to Computer Networks](http://intronetworks.cs.luc.edu/current2/html) by *Peter L. Dordal*
* [Computer Networks: A Systems Approach](https://book.systemsapproach.org) by *Larry Peterson and Bruce Davie*
* [Computer Network Tutorials](https://www.geeksforgeeks.org/computer-network-tutorials)
* [HTTP2 Explained](https://daniel.haxx.se/http2) by *Daniel Stenberg*
* [HTTP/3 explained](https://http3-explained.haxx.se) by *Daniel Stenberg*
* [Implementing TCP In Rust](https://github.com/Ghvstcode/Rust-Tcp) by *Ghvst Code*
* [Mediocre Engineer’s guide to HTTPS](https://devonperoutky.super.site/blog-posts/mediocre-engineers-guide-to-https) by *Devon Peroutky*
* [Networking 101](https://internalpointers.com/post-group/networking-101) by *Internal Pointers*
* [Visual guide to SSH tunneling and port forwarding](https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding)
## Cryptography
* [A Graduate Course in Applied Cryptography](https://toc.cryptobook.us) by *Dan Boneh* and *Victor Shoup*
* [All I Know About Certificates](https://www.pixelstech.net/article/1722045726-All-I-Know-About-Certificates----Certificate-Authority) by *Ke Pi*
* [Cryptography: An Introduction (3rd Edition)](https://www.cs.umd.edu/~waa/414-F11/IntroToCrypto.pdf) by *Nigel Smart* **[pdf]**
* [Practical Cryptography for Developers](https://cryptobook.nakov.com) by *Svetlin Nakov*
## Data Science
* [Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies](https://rafalab.dfci.harvard.edu/dsbook-part-2) by *Rafael A. Irizarry*
* [Introduction to Data Science: Data Wrangling and Visualization with R](https://rafalab.dfci.harvard.edu/dsbook-part-1) by *Rafael A. Irizarry*
## Debuggers
* [How Does a C Debugger Work?](https://blog.0x972.info/?d=2014/11/13/10/40/50-how-does-a-debugger-work) by *Kevin Pouget*
* **Writing a Debugger From Scratch** by *Tim Misiak*
* [Part 1 - Attaching to a Process](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-1)
* [Part 2 - Register State and Stepping](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-2)
* [Part 3 - Reading Memory](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-3)
* [Part 4 - Exports and Private Symbols](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-4)
* [Part 5 - Breakpoints](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-5)
* [Part 6 - Stacks](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-6)
* [Part 7 - Disassembly](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-7)
* [Part 8 - Source and Symbols](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-8)## Databases
* [B-trees and database indexes](https://planetscale.com/blog/btrees-and-database-indexes) by *Benjamin Dicken*
* [Build Your Own Database From Scratch in Go](https://build-your-own.org/database) by *James Smith*
* **Build your own SQLite** by *Geoffrey Copin*
* [Part 1: Listing tables](https://blog.sylver.dev/build-your-own-sqlite-part-1-listing-tables)* [Build Your Own Redis with C/C++](https://build-your-own.org/redis) by *James Smith*
* [Database Design for Google Calendar: a tutorial](https://kb.databasedesignbook.com/posts/google-calendar) by *Alexey Makhotkin*
* [Database Fundamentals](https://tontinton.com/posts/database-fundementals) by *Tony Solomonik*
* [MySQL for Developers](https://planetscale.com/courses/mysql-for-developers) by *Aaron Francis*
* [PostgreSQL 14 Internals](https://postgrespro.com/community/books/internals) by *Egor Rogov*
* [PostgreSQL Tutorial](https://www.postgresqltutorial.com)
* [SQL for the Weary](https://gvwilson.github.io/sql-tutorial) by *Greg Wilson*
* [The Internals of PostgreSQL](https://www.interdb.jp/pg) by *Hironobu Suzuki*
* [The Theory of Relational Databases](http://web.cecs.pdx.edu/~maier/TheoryBook/TRD.html) by *David Maier*
## Demoscene
* [Graphics Tricks from Boomers](https://arnaud-carre.github.io/2024-09-08-4ktribute) - Technical details about a 4096 bytes Atari-STE intro, by *Arnaud Carré*.
* [How a 64k intro is made](https://www.lofibucket.com/articles/64k_intro.html) by *Pekka Väänänen*
* The making of Immersion
* [Part 1: A dive into the making of Immersion](https://www.ctrl-alt-test.fr/2018/a-dive-into-the-making-of-immersion)
* [Part 2: Texturing in a 64kB intro](http://www.ctrl-alt-test.fr/2018/texturing-in-a-64kb-intro)
* [Part 3: Procedural 3D mesh generation in a 64kB intro](https://www.ctrl-alt-test.fr/2023/procedural-3d-mesh-generation-in-a-64kb-intro)## Design Patterns
* [Data Engineering Design Patterns (DEDP)](https://www.dedp.online)
* [Data-Oriented Design](https://www.dataorienteddesign.com/dodbook) by *Richard Fabian*
* [Design Patterns & Refactoring](https://sourcemaking.com) *SourceMaking*
* [Handles are the better pointers](https://floooh.github.io/2018/06/17/handles-vs-pointers.html) by *Andre Weissflog*
* [From design patterns to category theory](https://blog.ploeh.dk/2017/10/04/from-design-patterns-to-category-theory) by *Mark Seemann*
* [Game Programming Patterns](http://www.gameprogrammingpatterns.com) by *Robert Nystrom*
* [The Architecture of Open Source Applications](http://aosabook.org/en/index.html)
## Distributed systems
* [Distributed systems for fun and profit](https://book.mixu.net/distsys) by *Mikito Takada*
* [Implementing Raft](https://eli.thegreenplace.net/2020/implementing-raft-part-0-introduction) by *Eli Bendersky*
* [Notes on Theory of Distributed Systems](http://www.cs.yale.edu/homes/aspnes/classes/465/notes.pdf) by *James Aspnes* **[pdf]**
* [Patterns of Distributed Systems](https://martinfowler.com/articles/patterns-of-distributed-systems) by *Unmesh Joshi*
* [Testing Distributed Systems](https://asatarin.github.io/testing-distributed-systems) - Curated list of resources on testing distributed systems by *Andrey Satarin*.
## Electronics
* [Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook)
* [Ultimate Electronics](https://ultimateelectronicsbook.com)
## Emulators and Virtual Machines
* [5 Days To Virtualization: A Series On Hypervisor Development](https://revers.engineering/7-days-to-virtualization-a-series-on-hypervisor-development) by *Daax Rynd, Aidan Khoury and Nick Peterson*
* [GameBoy Emulation in JavaScript](http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-CPU) by *Imran Nazar*
* **Roll your own JavaScript runtime** by *Bartek Iwańczuk*
* [Part 1](https://deno.com/blog/roll-your-own-javascript-runtime)
* [Part 2](https://deno.com/blog/roll-your-own-javascript-runtime-pt2)
* [Part 3](https://deno.com/blog/roll-your-own-javascript-runtime-pt3)* [Write your Own Virtual Machine](https://justinmeiners.github.io/lc3-vm)
* [Writing NES emulator in Rust](https://bugzmanov.github.io/nes_ebook) by *Rafael Bagmanov*
## Fluids Simulation
* [Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artists](https://shahriyarshahrabi.medium.com/gentle-introduction-to-fluid-simulation-for-programmers-and-technical-artists-7c0045c40bac) by *Shahriar Shahrabi*
* [Simulating Fluids, Fire, and Smoke in Real-Time](https://andrewkchan.dev/posts/fire.html) by *Andrew Chan*
## Game Programming
* [2D Game Development: From Zero To Hero](https://therealpenaz91.itch.io/2dgd-f0th) by *Daniele Penazzo*
* [3D Game Engine Programming](https://www.3dgep.com) by *Jeremiah van Oosten*
* [CSCI 181G PO: Game Engine Programming Course](https://cs.pomona.edu/classes/cs181g)
* [Game Development, Shader Coding & Artificial Intelligence](https://www.alanzucconi.com) by *Alan Zucconi*
* [Isometric Projection in Game Development](https://pikuma.com/blog/isometric-projection-in-games) by *Gustavo Pezzi*
* [Isometric Tutorials](https://clintbellanger.net/articles) by *Clint Bellanger*
* [Procedural Content Generation in Games](https://www.pcgbook.com) by *Noor Shaker*, *Julian Togelius*, and *Mark J. Nelson*
* [Retro Rampage](https://github.com/nicklockwood/RetroRampage) - A tutorial series in which you will learn how to build a Wolfenstein-like game from scratch, in Swift by *Nick Lockwood*
* [Red Blob Games](https://www.redblobgames.com) - Interactive visual explanations of math and algorithms, using motivating examples from computer games by *Amit Patel*
* [Roguelike Tutorial - In Rust](https://bfnightly.bracketproductions.com) by *Herbert Wolverson*
* [Reverse engineering the rendering of The Witcher 3](https://astralcode.blogspot.com/2018/11/reverse-engineering-rendering-of.html)
* [Terrain programmig](https://www.shamusyoung.com/twentysidedtale/?p=141) by *Shamus Young*
* [The guide to implementing 2D platformers](http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers) by *Rodrigo Monteiro*
* [Scroll Back: The Theory and Practice of Cameras in Side-Scrollers](https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub) by *Itay Keren*
* [The blog of Nikita Lisitsa](https://lisyarus.github.io/blog)
* [Write a First Person Game in 2KB With Rust](https://grantshandy.github.io/posts/raycasting) by *Grant Handy*
### Game Engines
* [C# and Shader Tutorials for the Unity Engine](https://catlikecoding.com/unity/tutorials) by *Jasper Flick*
* [Godot Engine 4 Tutorials](https://catlikecoding.com/godot) by *Jasper Flick*
* [Unofficial Bevy Cheat Book](https://bevy-cheatbook.github.io)
## Geographic Information Systems
* [Computational Modelling of Terrains](https://tudelft3d.github.io/terrainbook) by *Hugo Ledoux, Ken Arroyo Ohori, Ravi Peters, and Maarten Pronk*
## GUI Programming
* [A Book about Qt5](https://qmlbook.github.io) by *Jürgen Bocklage-Ryannel* and *Johan
Thelin** [Minimal Cross-Platform Graphics](https://zserge.com/posts/fenster) by *Serge Zaitsev*
* [Sol on Immediate Mode GUIs](https://solhsa.com/imgui/index.html) by *Jari Komppa*
* [theForger's Win32 API Programming Tutorial](http://www.winprog.org/tutorial)
* [X Window System Basics](https://magcius.github.io/xplain/article) by *Jasper St. Pierre*
## Hardware
* [Architecture of Consoles](https://www.copetti.org/writings/consoles) by *Rodrigo Copetti*
* [Computer Architecture, Fifth Edition: A Quantitative Approach](https://dl.acm.org/doi/book/10.5555/1999263) by *John L. Hennessy* and *David A Patterson*
* [How Microchips Work](https://exclusivearchitecture.com/03-technical-articles-IC-00-table-of-contents.html)
* [Modern Microprocessors: A 90-Minute Guide!](http://www.lighterra.com/papers/modernmicroprocessors) by *Jason Robert Carey Patterson*
* [Processor Design: An Introduction](http://www.gamezero.com/team-0/articles/math_magic/micro)
* [What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) by *Ulrich Drepper* **[pdf]**
* [Zen, CUDA, and Tensor Cores](https://www.computerenhance.com/p/zen-cuda-and-tensor-cores-part-i) by *Casey Muratori*
## Logical Games
* [Hex: A Strategy Guide](http://www.mseymour.ca/hex_book) by *Matthew Seymour*
* [The World's Fastest Scrabble Program](https://www.cs.cmu.edu/afs/cs/academic/class/15451-s06/www/lectures/scrabble.pdf) by Andrew W. Appel and Guy J. Jacobson **[pdf]**
## Low Level Stuff
* [A gentle introduction to two's complement](https://imapenguin.com/2023/11/a-gentle-introduction-to-twos-complement) by *Michael Doornbos*
* [Beginner's Guide to Linkers](https://www.lurklurk.org/linkers/linkers.html) by *David Drysdale*
* [Computer Science from the Bottom Up](https://www.bottomupcs.com) by *Ian Wienand*
* [CPU performance optimization guide - Preface](https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-preface) by *Hui Zhang*
* [Part 1](https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-part1)* [Floating Point Visually Explained](https://fabiensanglard.net/floating_point_visually_explained) by *Fabien Sanglard*
* [Memory Management Reference](https://www.memorymanagement.org)
* [Memory Profiling](https://easyperf.net/blog/2024/02/12/Memory-Profiling-Part1) by *Denis Bakhvalov*
* [Onboarding floating-point](https://www.altdevarts.com/p/onboarding-floating-point) by *Mike Acton*
* [Performance Analysis and Tunning on Modern CPUs](https://github.com/dendibakh/perf-book) by *Denis Bakhvalov*
## Math
* [3Blue1Brown lessons](https://www.3blue1brown.com/#lessons) by *Grant Sanderson*
* [A Gentle Introduction to Tensors](https://www.ese.wustl.edu/~nehorai/Porat_A_Gentle_Introduction_to_Tensors_2014.pdf) by *Boaz Porat* **[pdf]**
* [A Gentle Introduction to the Art of Mathematics](https://giam.southernct.edu/GIAM) by *Joe Fields*
* [A Programmer's Introduction to Mathematics](https://pimbook.org/) by *Jeremy Kun*
* [An animated introduction to Fourier Series](https://www.andreinc.net/2024/04/24/from-the-circle-to-epicycles) by *Andrei Ciobanu*
* [An Infinite Descent into Pure Mathematics](https://infinitedescent.xyz) by *Clive Newstead*
* [An Infinitely Large Napkin](https://venhance.github.io/napkin/Napkin.pdf) by *Evan Chen* **[pdf]**
* [An introduction to graph theory](https://arxiv.org/pdf/2308.04512.pdf) by *Darij Grinberg* **[pdf]**
* [Approved Textbooks](https://aimath.org/textbooks/approved-textbooks) of the [*American Institute of Mathematics*](https://aimath.org/)
* [Book of Proof](https://www.people.vcu.edu/~rhammack/BookOfProof), Third Edition by *Richard Hammack*
* [Books by *Dr. Kenneth Kuttler*](https://klkuttler.com/)
* [Courses notes by Tom Leinster](https://golem.ph.utexas.edu/category/2024/08/galois_theory.html)
* [Category theory](https://arxiv.org/abs/1612.09375)
* [Fourier analysis](https://www.maths.ed.ac.uk/~tl/fa/fa_notes.pdf) **[pdf]**
* [Galois theory](https://arxiv.org/abs/2408.07499)
* [General topology](https://www.maths.ed.ac.uk/~tl/topology/topology_notes.pdf) **[pdf]**
* [Linear algebra](https://www.maths.ed.ac.uk/~tl/aa/aa.pdf) by **[pdf]*** [Euclid's Elements](https://mathcs.clarku.edu/~djoyce/java/elements/toc.html)
* [Everything You Always Wanted To Know About Mathematics](https://www.math.cmu.edu/~jmackey/151_128/bws_book.pdf) by *Brendan W. Sullivan with Professor John Mackey* **[pdf]**
* [Introduction to Homotopy Type Theory](https://arxiv.org/abs/2212.11082) by *Egbert Rijke*
* [Open Mathematics Depository](https://openmathdep.tuxfamily.org)
* [Paul's Online Math Notes](https://tutorial.math.lamar.edu/) by *Paul Dawkins*
* [Real Not Complex](https://realnotcomplex.com) - Discover Incredible FREE Resources to Study Mathematics.
* [The Mechanics of Proof](https://hrmacbeth.github.io/math2001) by *Heather Macbeth*
* [The Princeton Companion to Mathematics](https://sites.math.rutgers.edu/~zeilberg/akherim/PCM.pdf) by *Timothy Gowers - editor* **[pdf]**
### Algebra
* [Algebra: An Elementary Text-Book](http://onlinebooks.library.upenn.edu/webbin/book/lookupid?key=olbp36404) by [*George Chrystal*](https://en.wikipedia.org/wiki/George_Chrystal)
* [Immersive Linear Algebra](http://immersivemath.com/ila/index.html) by *J. Ström, K. Åström, and T. Akenine-Möller*
* [Interactive Linear Algebra](http://textbooks.math.gatech.edu/ila) by *Dan Margalit and Joseph Rabinoff*
* [Intermediate Algebra](https://saylordotorg.github.io/text_intermediate-algebra/index.html) by *Saylor Academy*
* [Linear Algebra Done Right](https://linear.axler.net) by *Sheldon Axler*
* [Linear Algebra Done Wrong](https://www.math.brown.edu/streil/papers/LADW/LADW.html) by *Sergei Treil*
### Calculus
* [Calculus](https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/pages/textbook) by *Gilbert Strang*
* [Calculus Made Easy](http://calculusmadeeasy.org/) by [*Silvanus P. Thompson*](https://en.wikipedia.org/wiki/Silvanus_P._Thompson)
* [Calculus with Julia](https://jverzani.github.io/CalculusWithJuliaNotes.jl) by *John Verzani*
* [Harmonic Function Theory](https://www.axler.net/HFT.html) by *Sheldon Axler*, *Paul Bourdon*, and *Wade Ramey*
* [Introduction to Calculus](https://arachnoid.com/calculus/resources/introduction_to_calculus.pdf) by *Paul Lutus* **[pdf]**
* [Measure, Integration & Real Analysis](https://measure.axler.net) by *Sheldon Axler*
### Category Theory
* [Category Theory for Programmers](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface) by *Bartosz Milewski*
* [Category Theory for Programming](https://arxiv.org/abs/2209.01259) by *Benedikt Ahrens* and *Kobe Wullaert*
* [Category Theory Illustrated](https://boris-marinov.github.io/category-theory-illustrated) by *Boris Marinov*
* [Category Theory in Programming](https://docs.racket-lang.org/ctp/index.html) by *Noah Ma*
* [Category Theory: Lecture Notes and Online Books](https://www.logicmatters.net/categories/) - collection by *Peter Smith*
* **Pragmatic Category Theory** by *Dmitrii Kovanikov*
* [Part 1: Semigroup Intro](https://dev.to/chshersh/pragmatic-category-theory-part-1-semigroup-intro-1ign)* [Seven Sketches in Compositionality: An Invitation to Applied Category Theory](https://ocw.mit.edu/courses/18-s097-applied-category-theory-january-iap-2019/resources/18-s097iap19textbook) by *Brendan Fong* and *David I. Spivak*
### Geometry
* [Planes in 3D space](https://alexharri.com/blog/planes) by *Alex Harri*
### Operations Research
* [Applied Mathematical Programming](https://web.mit.edu/15.053/www/AMP.htm) by *Stephen P. Bradley*, *Arnoldo C. Hax*, and *Thomas L. Magnanti*
* [Introduction to Operations Research, Tenth Edition](https://s23.middlebury.edu/MATH0318A/Hillier10th.pdf) by *Frederick S. Hillier*, and *Gerald J. Lieberman* **[pdf]**
* [MOSEK Modeling Cookbook](https://docs.mosek.com/modeling-cookbook/index.html)
### Probability and Statistics
* [Bayes Rules! An Introduction to Applied Bayesian Modeling](https://www.bayesrulesbook.com/) by *Alicia A. Johnson, Miles Q. Ott, Mine Dogucu*
* [Digital textbook on probability and statistics](https://www.statlect.com) by *Marco Taboga*
* [Introduction to Modern Statistics (2nd Ed)](https://openintro-ims2.netlify.app) by *Mine Çetinkaya-Rundel and Johanna Hardin*
* [Introduction to Probability for Data Science](https://probability4datascience.com/index.html) by *Stanley H. Chan*
* [Markov Chains for programmers](https://czekster.github.io/markov) by *Ricardo M. Czekster*
* [Probability 101, the intuition behind martingales and solving problems with them](https://nor-blog.codeberg.page/posts/2022-12-31-probability-and-martingales/)
* [Probability and Statistics Cookbook](https://pages.cs.wisc.edu/~tdw/files/cookbook-en.pdf) by *Matthias Vallentin*
* [Seeing Theory](https://seeing-theory.brown.edu) - a book about statistics with interactive visualizations by *Daniel Kunin, Jingru Guo, Tyler Dae Devlin, and Daniel Xiang*
* [Statistics Handbook](https://github.com/carloocchiena/the_statistics_handbook) by *Carlo Occhiena*
* [The Truth About Linear Regression](https://www.stat.cmu.edu/~cshalizi/TALR) by *Cosma Rohilla Shalizi*
### Theoretical Computer Science
* [Busy Beavers! - An interactive intro to Computability Theory](https://tigyog.app/d/C:tWWwvJDWlo/r/busy-beavers) by *Jim Fisher*
* [Discrete Mathematics: An Open Introduction, 4th Edition](https://discrete.openmathbooks.org/dmoi4.html) by *Oscar Levin*
* [Elements of Programming](http://elementsofprogramming.com) by *Alexander Stepanov and Paul McJones*
* [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html) by *[Alfred V. Aho](https://en.wikipedia.org/wiki/Alfred_Aho)* and *[Jeffrey D. Ullman](https://en.wikipedia.org/wiki/Jeffrey_Ullman)*
* [Introduction to Theoretical Computer Science](https://introtcs.org) by [*Boaz Barak*](https://en.wikipedia.org/wiki/Boaz_Barak)
* [Mathematics for Computer Science](https://people.csail.mit.edu/meyer/mcs.pdf) by *Eric Lehman*, *F. Thomson Leighton*, and *Albert R. Meyer* **[pdf]**
* [Software Foundations](https://softwarefoundations.cis.upenn.edu) - A broad introduction to the mathematical underpinnings of reliable software.
### Topology
* [Algebraic Topology for Data Scientists](https://arxiv.org/abs/2308.10825) by *Michael S. Postol*
* [Computational Algebraic Topology](https://people.maths.ox.ac.uk/nanda/cat) by *Vidit Nanda*
* [Topology Without Tears](https://www.topologywithouttears.net) by *Sidney A. Morris*
## Multithreading and Concurrency
* [A C++17 Thread Pool for High-Performance Scientific Computing](https://arxiv.org/abs/2105.00613) by *Barak Shoshany*
* [A Science of Concurrent Programs](https://lamport.azurewebsites.net/tla/science-book.html) by *Leslie Lamport*
* [Is Parallel Programming Hard, And, If So, What Can You Do About It?](https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html) by *Paul E. McKenney*
* [POSIX Threads Programming](https://hpc-tutorials.llnl.gov/posix) by *Blaise Barney*
* [The Deadlock Empire](https://deadlockempire.github.io)
* [The Little Book of Semaphores](https://greenteapress.com/wp/semaphores) by *Allen B. Downey*
* [What every systems programmer should know about concurrency](https://assets.bitbashing.io/papers/concurrency-primer.pdf) by *Matt Kline* **[pdf]**
## Operating Systems
* [Advanced Linux Programming](https://agabroward.org/ourpages/auto/2017/10/14/52245814/advanced-linux-programming.pdf) by *Mark Mitchell*, *Jeffrey Oldham*, and *Alex Samuel* **[pdf]**
* [Linux Insides](https://0xax.gitbooks.io/linux-insides/content/) by *Alex Kuleshov*
* [Making our own executable packer](https://fasterthanli.me/series/making-our-own-executable-packer) by *Amos Wenger*
* [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/) by *Remzi H Arpaci-Dusseau* and *Andrea C Arpaci-Dusseau*
* [Systems Programming: Lecture Notes](http://web.eecs.utk.edu/~huangj/cs360/lecture_notes.html) by *Jian Huang*
* [The Art of Unix Programming](http://www.catb.org/esr/writings/taoup/html) by *Eric Steven Raymond*
* [The Linux Documentation Project](https://tldp.org)
* [The Linux Kernel Module Programming Guide](https://sysprog21.github.io/lkmpg) by *Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang*
* [Unix as IDE](https://blog.sanctum.geek.nz/series/unix-as-ide) by *Tom Ryder*
### Operating Systems Development
* [A Journey in Creating an Operating System Kernel](https://539kernel.com) by *Mohammed Q. Hussain*
* [Baking Pi – Operating Systems Development](https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os) by *Alex Chadwick*
* [Making a RISC-V Operating System using Rust](https://osblog.stephenmarz.com) by *Stephen Marz*
* **Making an RISC-V OS**
* [Part 1 - Project Setup](https://traxys.me/riscv_os_setup.html)
* [Part 2 - Kernel in virtual addresses](https://traxys.me/riscv_os_2.html)
* [Part 3 - Managing free memory](https://traxys.me/riscv_os_buddy.html)* [Operating System development tutorials in Rust on the Raspberry Pi](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials) by *Andre Richter*
* [OSDev.org](https://wiki.osdev.org/Expanded_Main_Page)
* [Writing a Simple Operating System — from Scratch](https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf) by *Nick Blundell*
* [Writing an OS in Rust](https://os.phil-opp.com) by *Philipp Oppermann*
* [Writing an OS in Nim](https://0xc0ffee.netlify.app) by *Khaled Hammouda*
## Photography
* [Photography for geeks](https://lcamtuf.coredump.cx/photo_basics) by *Michal Zalewski*
## Physics
* [A free introduction to quantum computing and quantum mechanics](https://quantum.country) by *Andy Matuschak and Michael Nielsen*
* [An Intuitive Guide to Maxwell’s Equations](https://photonlines.substack.com/p/an-intuitive-guide-to-maxwells-equations) by *Nick M.*
* [Physics for Mathematicians](https://nicf.net/articles/physics-for-mathematicians) by *Nicolas James Marks Ford*
* [Motion Mountain](https://www.motionmountain.net) by *Christoph Schiller* - A free physics textbook
in 5 volumes.* [Relativity: A Modern Primer](http://ramp-book.com) by *Kevin Han*
* [Structure and Interpretation of Classical Mechanics](https://groups.csail.mit.edu/mac/users/gjs/6946/sicm-html) by *[Gerald Jay Sussman](https://en.wikipedia.org/wiki/Gerald_Jay_Sussman)* and *[Jack Wisdom](https://en.wikipedia.org/wiki/Jack_Wisdom)* with *[Meinhard E. Mayer](https://en.wikipedia.org/wiki/Meinhard_E._Mayer)*
* [The Feynman Lectures on Physics](https://www.feynmanlectures.caltech.edu)
### Simulations
* [Physics-Based Simulation](https://phys-sim-book.github.io) by *Minchen Li*, *Chenfanfu Jiang*, and *Zhaofeng Luo*
* [Ten Minute Physics](https://matthias-research.github.io/pages/tenMinutePhysics) by *Matthias Müller*
## Programming languages
* [Introduction to the Theory of Programming Languages](https://bertrandmeyer.com/itpl) by *Bertrand Meyer*
### Ada
* [Ada 95: The Craft of Object-Oriented Programming](https://adaic.org/resources/add_content/docs/craft/html/contents.htm) by *John English*
### Assembly
* **A friendly introduction to assembly for high-level programmers** by *Manuel Spagnolo*
* [Part 1: Hello](https://shikaan.github.io/assembly/x86/guide/2024/09/16/x86-64-conditionals.html)
* [Part 2: Conditionals](https://shikaan.github.io/assembly/x86/guide/2024/09/16/x86-64-conditionals.html)* [A fundamental introduction to x86 assembly programming](https://www.nayuki.io/page/a-fundamental-introduction-to-x86-assembly-programming) by *Nayuki*
* [Learn Assembly Language](https://asmtutor.com) - NASM x86 assembly language tutorial on Linux.
* **Let's Learn x86-64 Assembly!**
* [Part 0 - Setup and First Steps](https://gpfault.net/posts/asm-tut-0.txt.html)
* [Part 1 - Metaprogramming in Flat Assembler](https://gpfault.net/posts/asm-tut-1.txt.html)
* [Part 2 - We're Writing a Virtual Machine](https://gpfault.net/posts/asm-tut-2.txt.html)
* [Part 3 - Arithmetic and Logic](https://gpfault.net/posts/asm-tut-3.txt.html)* [NASM Tutorial](https://cs.lmu.edu/~ray/notes/nasmtutorial/)
* [PC Assembly Language](https://pacman128.github.io/pcasm) by *Paul A. Carter*
* [RISC-V Assembly Programming](https://riscv-programming.org) by *Prof. Edson Borin*
* [x86-64 Assembly Language Programming with Ubuntu](http://www.egr.unlv.edu/~ed/x86.html) by *Ed Jorgensen*
### Bash
* [Introduction to Bash Scripting](https://github.com/bobbyiliev/introduction-to-bash-scripting) by *Bobby Iliev*
### Basic
* [BBC BASIC for SDL 2.0](https://www.bbcbasic.co.uk/bbcsdl/index.html)
### C
* [Compiler Options Hardening Guide for C and C++](https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html)
* [Coroutines in C](https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html) by *Simon Tatham*
* [Demystifying bitwise operations, a gentle C tutorial](https://www.andreinc.net/2023/02/01/demystifying-bitwise-ops) by *Andrei Ciobanu*
* [Few lesser known tricks, quirks and features of C](https://jorenar.com/blog/less-known-c)
* [How to implement a hash table (in C)](https://benhoyt.com/writings/hash-table-in-c) by *Ben Hoyt*
* [Implementing smart pointers for the C programming language](https://snai.pe/posts/c-smart-pointers)
* [Moden C](https://inria.hal.science/hal-02383654) by *Jens Gustedt*
* [Object-Oriented Programming with ANSI-C](https://www.mclibre.org/descargar/docs/libros/ooc-ats.pdf) by *Axel-Tobias Schreiner* **[pdf]**
* [So You Think You Know C?](https://wordsandbuttons.online/SYTYKC.pdf) by *Oleksandr Kaleniuk* **[pdf]**
* [The Lost Art of Structure Packing](http://www.catb.org/esr/structure-packing) by *Eric S. Raymond*
* [Writing a Simple Garbage Collector in C](http://maplant.com/gc.html) by *Matthew Plant*
### C++
* **C++ exceptions uner the hood** by *Nicolás Brailovsky*
* [Part 1](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehood)
* [Part 2: A tiny ABI](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehoodiiatinyabi)
* [Part 3: An ABI to appease the linker](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehood3anabitoappeasethelinker)
* [Part 4: Catching what you throw](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehood4catchingwhatyouthrow)
* [Part 5: Magic around __cxa_begin_catch and __cxa_end_catch](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood5magicaround__cxa_begin_catchand__cxa_end_catch)
* [Part 6: gcc_except_table and the personality function](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood6gcc_except_tableandthepersonalityfunction)
* [Part 7: A nice personality](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood7anicepersonality)
* [Part 8: Two-phase handling](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood8twophasehandling)
* [Part 9: Catching our first exception](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood9catchingourfirstexception)
* [Part 10: Unwind and call frame info](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood10unwindandcallframeinfo)
* [Part 11: Reading a CFI table](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood11readingacfitable)
* [Part 12: And suddenly, reflexion in C++](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood12andsuddenlyreflexioninc)
* [Part 13: Setting the context for a landing pad](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood13settingthecontextforalandingpad)
* [Part 14: Multiple landing pads & the teachings of the guru](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood14multiplelandingpadstheteachingsoftheguru)
* [Part 15: Finding the right landing pad](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood15findingtherightlandingpad)
* [Part 16: Finding the right catch in a landing](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood16findingtherightcatchinalanding)
* [Part 17: Reflecting on an exception type and reading .gcc_except_table](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood17reflectingonanexceptiontypeandreading.gcc_except_table)
* [Part 18: Getting the right stack frame](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood18gettingtherightstackframe)
* [Part 19: Getting the right catch in a landing pad](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood19gettingtherightcatchinalandingpad)
* [Part 20: Running destructors while unwinding](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood20runningdestructorswhileunwinding)
* [Part 21: A summary and some final thoughts](https://nicolasbrailo.github.io/blog/2013/6.html#cexceptionsunderthehood21asummaryandsomefinalthoughts)
* [Appendix I: The true cost of an exception](https://nicolasbrailo.github.io/blog/2013/6.html#cexceptionsunderthehoodappendixithetruecostofanexception)
* [Appendix II: Metaclasses and RTTI on C++](https://nicolasbrailo.github.io/blog/2013/6.html#cexceptionsunderthehoodappendixiimetaclassesandrttionc)
* [Appendix III: RTTI and exceptions orthogonality](https://nicolasbrailo.github.io/blog/2013/7.html#cexceptionsunderthehoodappendixiiirttiandexceptionsorthogonality)* [C++ Stories](https://www.cppstories.com) by *Bartłomiej Filipek*
* [C++20 Coroutines: sketching a minimal async framework](https://www.jeremyong.com/cpp/2021/01/04/cpp20-coroutines-a-minimal-async-framework) by *Jeremy Ong*
* [C++20 Concepts: The Definitive Guide](https://thecodepad.com/cpp/c20-concepts-the-definitive-guide) by *Rajat Jain*
* [Fiber in C++: Understanding the Basics](https://agraphicsguynotes.com/posts/fiber_in_cpp_understanding_the_basics) by *Jiayin Cao*
* [Hacking C++](https://hackingcpp.com)
* [Learn C++](https://www.learncpp.com)
* [Microsoft C++ language documentation](https://docs.microsoft.com/en-us/cpp/cpp)
* [Modernes C++](https://www.modernescpp.com/index.php/table-of-content-2) by *Rainer Grimm*
* [The Boost C++ Libraries](https://theboostcpplibraries.com) by *Boris Schäling*
### D
* [Programming in D](http://ddili.org/ders/d.en/index.html) by *Ali Çehreli*
### Datalog
* [Learn Datalog Today](https://www.learndatalogtoday.org) by *Jonas Enlund*
### Erlang
* [Adopting Erlang](https://adoptingerlang.org) by *Tristan Sloughter*, *Fred Hebert*, and *Evan Vigil-McClanahan*
* [Learn You Some Erlang for great good!](https://learnyousomeerlang.com) by *Fred Hebert*
* [Stuff Goes Bad: Erlang in Anger](https://www.erlang-in-anger.com) by *Fred Hebert*
### Forth
* [Starting FORTH](https://www.forth.com/starting-forth) by *Leo Brodie*
* [Thinking Forth](https://www.forth.com/wp-content/uploads/2018/11/thinking-forth-color.pdf) by *Leo Brodie* **[pdf]**
### Go
* [Practical Go Lessons](https://www.practical-go-lessons.com) by *Maximilien Andile*
* [REST Servers in Go](https://eli.thegreenplace.net/2021/rest-servers-in-go-part-1-standard-library) by *Ely Bendersky*
### Haskell
* [Learn Haskell by building a blog generator](https://lhbg-book.link/) *Gil Mizrahi*
* [Learn You a Haskell for Great Good!](http://learnyouahaskell.com) by *Miran Lipovača*
* [Monads for functional programming](https://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf) by *Philip Wadler* **[pdf]**
* [Monday Morning Haskell](https://mmhaskell.com)
* [Real World Haskell](http://book.realworldhaskell.org) by *Bryan O'Sullivan, Don Stewart, and John Goerzen*
### Java
* [How to Design Classes](https://felleisen.org/matthias/HtDC/htdc.pdf) by *Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi and Viera K. Proulx* **[pdf]**
### JavaScript
* [Eloquent JavaScript](https://eloquentjavascript.net) by *Marijn Haverbeke*
* [Exploring JS: JavaScript books for programmers](https://exploringjs.com) by *Dr. Axel Rauschmayer*
* [Structure and Interpretation of Computer Programs — JavaScript Edition](https://sourceacademy.org/sicpjs) 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](https://javascript.info) by *Ilya Kantor*
* [Mostly adequate guide to FP (in JavaScript)](https://mostly-adequate.gitbook.io/mostly-adequate-guide)
### Lean
* [Functional Programming in Lean](https://leanprover.github.io/functional_programming_in_lean) by *David Thrane Christiansen*
### Lisp dialects
#### Clojure
* [Babashka Babooka: Write Command-Line Clojure](https://www.braveclojure.com/quests/babooka) by *Daniel Higginbotham*
* [Clojure for the Brave and True](https://www.braveclojure.com/) by *Daniel Higginbotham*
#### Common Lisp
* **Gamedev in Lisp** by *Andrew Kravchuk*
* [Part 1: ECS and Metalinguistic Abstraction](https://gitlab.com/lockie/cl-fast-ecs/-/wikis/tutorial-1)
* [Part 2: Dungeons and Interfaces](https://gitlab.com/lockie/cl-fast-ecs/-/wikis/tutorial-2)* [Learn Lisp The Hard Way](https://llthw.common-lisp.dev) by *"the Phoeron" Colin J.E. Lupton*
* [Practical Common Lisp](https://gigamonkeys.com/book) by *Peter Seibel*
* [Successful Lisp: How to Understand and Use Common Lisp](https://dept-info.labri.fr/~strandh/Teaching/MTP/Common/David-Lamkins/cover.html) by *David B. Lamkins*
* [The Common Lisp Cookbook](https://lispcookbook.github.io/cl-cookbook)
* [Typed Lisp, A Primer](http://alhassy.com/TypedLisp) by *Musa Al-hassy*
#### Racket
* **A Functional Introduction To Computer Science** by *Prabhakar Ragde*
- [Part I](https://cs.uwaterloo.ca/~plragde/flaneries/FICS)
- [Part II](https://cs.uwaterloo.ca/~plragde/flane/FICS2)* [Beautiful Racket](https://beautifulracket.com/) by *Matthew Butterick*
* [How to Design Programs](https://htdp.org/), Second Edition by *Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi*
* [Programming Languages: Application and Interpretation](https://www.plai.org) by *Shriram Krishnamurthi*
#### Scheme
* [Structure and Interpretation of Computer Programs](https://xuanji.appspot.com/isicp/index.html) by *Harold Abelson and Gerald Jay Sussman with Julie Sussman*
* [(learn 'scheme)](https://jaredkrinke.github.io/learn-scheme) by *Jared Krinke*
### Nim
* [Computer Programming with the Nim Programming Language](https://ssalewski.de/nimprogramming.html) by *Dr. Stefan Salewski*
### OCaml
* [OCaml Programming: Correct + Efficient + Beautiful](https://cs3110.github.io/textbook/cover.html) by *Michael R. Clarkson*
* [Real World OCaml](https://dev.realworldocaml.org) by *Yaron Minsky*, *Anil Madhavapeddy* and *Jason Hickey*
### Oberon-2
* [Object-Oriented Programming in Oberon-2](https://ssw.jku.at/Research/Books/Oberon2.pdf) by *Hanspeter Mössenböck* **[pdf]**
### Odin
* [Introduction to the Odin Programming Language](https://zylinski.se/posts/introduction-to-odin) by *Karl Zylinski*
### Pascal
* [Modern Object Pascal Introduction for Programmers](https://castle-engine.io/modern_pascal_introduction.html) by *Michalis Kamburelis*
### PostScript
* [Learning PostScript by Doing](https://staff.science.uva.nl/a.j.p.heck/Courses/Mastercourse2005/tutorial.pdf) by *Andre Heck* **[pdf]**
### Prolog
* [The Power of Prolog](https://www.metalevel.at/prolog) by *Markus Triska*
* [Game Programming in Prolog](https://thingspool.net/morsels/list.html) by *Youngjin Kang*
### Pyret
* [Programming and Programming Languages](https://papl.cs.brown.edu/2020) by *Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz, Kathi Fisler*
* [A Data-Centric Introduction to Computing](https://dcic-world.org/2022-08-28/index.html) by *Kathi Fisler, Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz*
### Python
* [30 Days Of Python](https://github.com/Asabeneh/30-Days-Of-Python) by *Asabeneh*
* [Architecture Patterns with Python](https://www.cosmicpython.com) by *Harry Percival* and *Bob Gregory*
* [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/2e) by *Al Sweigart*
* [Composing Programs](https://www.composingprograms.com) by *John DeNero*
* [Computational Discovery on Jupyter](https://computational-discovery-on-jupyter.github.io/Computational-Discovery-on-Jupyter) by *Rob Corless*
* [Data Structures and Information Retrieval in Python](https://allendowney.github.io/DSIRP) by *Allen B. Downey*
* [From Python to Numpy](https://www.labri.fr/perso/nrougier/from-python-to-numpy) by *Nicolas P. Rougier*
* [Full Stack Python](https://www.fullstackpython.com) by *Matt Makai*
* [How Python Asyncio Works: Recreating it from Scratch](https://jacobpadilla.com/articles/recreating-asyncio) by *Jacob Padilla*
* [How to Think Like a Computer Scientist: Interactive Edition](https://levjj.github.io/thinkcspy) by *Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers*
* [Learn Python the Right Way](https://learnpythontherightway.com)
* [NumPy Illustrated: The Visual Guide to NumPy](https://betterprogramming.pub/numpy-illustrated-the-visual-guide-to-numpy-3b1d4976de1d) by *Lev Maximov*
* [Pandas Illustrated: The Definitive Visual Guide to Pandas](https://betterprogramming.pub/pandas-illustrated-the-definitive-visual-guide-to-pandas-c31fa921a43) by *Lev Maximov*
* [Practical Python Programming](https://dabeaz-course.github.io/practical-python/Notes/Contents.html) by *David Beazley*
* [Python & OpenGL for Scientific Visualization](https://www.labri.fr/perso/nrougier/python-opengl) by *Nicolas P. Rougier*
* [Python Asyncio: The Complete Guide](https://superfastpython.com/python-asyncio) by *Jason Brownlee*
* [Python Data Science Handbook](https://jakevdp.github.io/PythonDataScienceHandbook) by *Jake VanderPlas*
* [Python Design Patterns](https://python-patterns.guide) by *Brandon Rhodes*
* [Python for Data Analysis, 3rd edition](https://wesmckinney.com/book) by *Wes McKinney*
* [Scientific Visualization: Python + Matplotlib](https://github.com/rougier/scientific-visualization-book) by *Nicolas Rougier*
* [Test-Driven Development with Python](http://www.obeythetestinggoat.com/pages/book.html) by *Harry Percival*
* [The Ultimate Guide to Error Handling in Python](https://blog.miguelgrinberg.com/post/the-ultimate-guide-to-error-handling-in-python) by *Miguel Grinberg*
* [Think Python, 2nd Edition](https://greenteapress.com/wp/think-python-2e) by *Allen B. Downey*
* [Think Python, 3rd Edition](https://allendowney.github.io/ThinkPython/index.html) by *Allen B. Downey*
### Regular expressions
* [Implementing Regular Expressions](https://swtch.com/~rsc/regexp) by *Russ Cox*
* [Learn RegEx step by step, from zero to advanced](https://regexlearn.com/)
* [RegexOne](https://regexone.com)
* [Regular-Expressions.info](https://www.regular-expressions.info) by *Jan Goyvaerts*
* [Rex Eats Regular Expressions for Breakfast](https://www.rexegg.com)
### Ruby
* [Building Games with DragonRuby](https://book.dragonriders.community) by *Brett Chalupa*
* [Ruby Hacking Guide](https://ruby-hacking-guide.github.io)
### Rust
* [100 Exercises To Learn Rust](https://rust-exercises.com)
* [A Gentle Introduction to Rust](https://stevedonovan.github.io/rust-gentle-intro/readme.html) by *Steve Donovan*
* [Async Rust in Three Parts](https://jacko.io/async_intro.html) by *Jack O'Connor*
* [Asynchronous Programming in Rust](https://rust-lang.github.io/async-book)
* [Beginner's guide to Error Handling in Rust](https://www.sheshbabu.com/posts/rust-error-handling) by *Shesh Babu*
* [Clear explanation of Rust’s module system](https://www.sheshbabu.com/posts/rust-module-system) by *Shesh Babu*
* [Comprehensive Rust](https://google.github.io/comprehensive-rust)
* [Dependency Injection like Bevy Engine from Scratch](https://promethia-27.github.io/dependency_injection_like_bevy_from_scratch)
* [Effective Rust](https://www.lurklurk.org/effective-rust) by *David Drysdale*
* [Exploring ways to make async Rust easier](https://carllerche.com/2021/06/17/six-ways-to-make-async-rust-easier) by *Carl Lerche*
* [Learning Async Rust With Entirely Too Many Web Servers](https://ibraheem.ca/posts/too-many-web-servers) by *Ibraheem Ahmed*
* [Rust Atomics and Locks: Low-Level Concurrency in Practice](https://marabos.nl/atomics) by *Mara Bos*
* [Rust Language Cheat Sheet](https://cheats.rs)
* [Things you can’t do in Rust (and what to do instead)](https://blog.logrocket.com/what-you-cant-do-in-rust-and-what-to-do-instead)
### Smalltalk
* [Smalltalk Resources](https://smalltalk.tech.blog/resources) - A list of free smalltalk books.
### Zig
* [Learning Zig](https://www.openmymind.net/learning_zig) by *Karl Seguin*
## Retrocomputing
* [A Guide to the Graphics of the Sega Mega Drive / Genesis](https://rasterscroll.com/mdgraphics)
* [Books by Fabien Sanglard](https://fabiensanglard.net/three_books_update/index.html)
- **Game Engine Black Book: Wolfenstein 3D**
- **Game Engine Black Book: DOOM**
- **The Book of CP-System*** [Famicom Party: Making NES Games in Assembly](https://famicom.party/book) by *Kevin Zurawel*
* [Gameboy Technical Reference for Homebrew Developers](https://gbdev.io/pandocs)
* [How PlayStation Graphics & Visual Artefacts Work](https://pikuma.com/blog/how-to-make-ps1-graphics) by *Gustavo Pezzi*
* [Learn Multiplatform Assembly Programming](https://www.chibiakumas.com) by *ChibiAkumas*
* [Mark Moxon's Software Archaeology](https://www.bbcelite.com) - Fully documented source code for Elite, Revs, Lander, Aviator and more
* [MarkeyJester’s Motorola 68000 Beginner’s Tutorial](https://mrjester.hapisan.com/04_MC68)
* [Michael Abrash’s Graphics Programming Black Book, Special Edition](https://www.jagregory.com/abrash-black-book) by *Michael Abrash*
* [NeHe OpenGL Tutorials](https://nehe.gamedev.net)
* [Retro Game Coders](https://retrogamecoders.com)
* [Usborne 1980s Computer Books](https://usborne.com/row/books/computer-and-coding-books)
### Adevent of code on retro machines
* [Advent of Code 2022 on a MikroMikko 4TT m326](http://clb.confined.space/aoc2022) by *Jukka Jylänki*
* [Advent Of Code 2023 on a Commodore 64](http://clb.confined.space/aoc2023) by *Jukka Jylänki*
### Apple II
* [Apple II Documentation Project](http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project)
* [Apple II graphics: More than you wanted to know](https://nicole.express/2024/phasing-in-and-out-of-existence.html)
* [Neil Parker's Apple II page](https://llx.com/Neil/a2/index.html)
### Commodore 64
* [An Afterlife User's Guide to the C64](http://www.c64os.com/c64os/afterlifeguide) by *Gregorio Naçu*
* [C64 OS Programmer's Guide](https://www.c64os.com/c64os/programmersguide) by *Gregorio Naçu*
* [Commodore 64 Guides](https://pickledlight.blogspot.com/p/commodore-64-guides.html)
* [Commodore Bookmarks](https://commodore.bookmark.computer) - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community.
* [The Lost Ways of Programming: Commodore 64 BASIC](http://tomasp.net/commodore64) by *Tomas Petricek*
### DOS
* [256-Color VGA Programming in C](http://www.brackeen.com/vga/index.html) by *David Brackeen*
* [Beyond the 1 MB barrier in DOS](https://blogsystem5.substack.com/p/beyond-the-1-mb-barrier-in-dos) by *Julio Merino*
* [From 0 to 1 MB in DOS](https://blogsystem5.substack.com/p/from-0-to-1-mb-in-dos) by *Julio Merino*
* [How Cosmo’s Cosmic Adventure DOS game works?](https://cosmodoc.org)
### Mega 65
* [MEGA65 Documentation](https://files.mega65.org/manuals-upload)
* [MEGA65 Welcome Guide](https://dansanderson.com/mega65/welcome/index.html) by *Dan Sanderson*
### ZX Spectrum and Z80 CPU
* [First Steps in Z80 Assembly Language](http://ped.7gods.org/z80.pdf) by *Darryl Sloan* **[pdf]**
* [How to Write ZX Spectrum Games](https://spectrumcomputing.co.uk/zxdb/sinclair/entries/2001501/HowToWriteSpectrumGames%28v1.0%29.pdf) by *Jonathan Cauldwell* **[pdf]**
* [Sinclair ZX Spectrum BASIC programming](http://zxnext.narod.ru/manuals/Basic_Programming.pdf) by *Steven Vicker* **[pdf]**
* [Z80 User's Manual](https://zany80.github.io/documentation/Z80/UserManual.html)
* [ZX Spectrum Next: Assembly Developer Guide](https://github.com/tomaz/zx-next-dev-guide) by *Tomaz Kragelj*
## Reverse engineering
* [Applied Reverse Engineering Series](https://revers.engineering/applied-reverse-engineering-series) by *Daax Rynd, Aidan Khoury and Nick Peterson*
* [Reverse Engineering for Beginners](https://beginners.re) by *Dennis Yurichev*
* [Reverse Engineering For Everyone](https://0xinfection.github.io/reversing) by *Kevin Thomas*
* [Reversing for dummies - x86 assembly and C code](https://0x44.cc/reversing/2021/07/21/reversing-x86-and-c-code-for-beginners.html) by *Sami Alaoui*
* [Linux Reverse Engineering CTFs for Beginners](https://osandamalith.com/2019/02/11/linux-reverse-engineering-ctfs-for-beginners)
## Robotics
* [Introduction to Autonomous Robots](https://introduction-to-autonomous-robots.github.io) by *Nikolaus Correll, Bradley Hayes, Christoffer Heckman, and Alessandro Roncone*
* [Modern Robotics: Mechanics, Planning, and Control](http://hades.mech.northwestern.edu/index.php/Modern_Robotics) by *Kevin M. Lynch* and *Frank C. Park*
* [The open online robotics education resource](https://robotacademy.net.au)
* [Underactuated Robotics](https://underactuated.mit.edu/) by *Russ Tedrake*
## SIMD programming
[ARM NEON for C++ Developers](http://const.me/articles/simd/NEON.pdf) **[pdf]**
[Designing a SIMD Algorithm from Scratch](https://mcyoung.xyz/2023/11/27/simd-base64) by *Miguel Young de la Sota*
[SIMD for C++ Developers](http://const.me/articles/simd/simd.pdf) **[pdf]**
## Text editors
* [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo)
* [Design and Implementation of a Win32 Text Editor](https://www.catch22.net/tuts/neatpad) by *James Brown*
* [Text Buffer Reimplementation](https://code.visualstudio.com/blogs/2018/03/23/text-buffer-reimplementation) by *Peng Lyu*
* [Text Editor: Data Structures](https://www.averylaird.com/programming/the%20text%20editor/2017/09/30/the-piece-table.html) by *Avery Laird*
### Emacs
* **Emacs Config From Scratch** by *Arne Bahlo*
* [Part 1: Foundations](https://arne.me/articles/emacs-from-scratch-part-one-foundations)
* [Part 2: Projects and Keybindings](https://arne.me/articles/emacs-from-scratch-part-two)
* [Part 3: LSP & Tree-sitter](https://arne.me/blog/emacs-config-from-scratch-part-three)* [How to learn Emacs](https://david.rothlis.net/emacs/howtolearn.html) by *David Röthlisberger*
* [Use GNU Emacs: The Plain Text Computing Environment](https://www2.lib.uchicago.edu/keith/emacs) by *Keith Waclena*
### Vim
* [Interactive Vim Tutorial](https://www.openvim.com) by *Henrik Huttunen*
* [Learn Vim (the Smart Way)](https://github.com/iggredible/Learn-Vim) by *Igor Irianto*
* [The Vi/Ex Editor](https://www.ele.uri.edu/faculty/vetter/Other-stuff/vi/009-index.html) by *Walter Alan Zintz*
* [Vim from the ground up](https://thevaluable.dev/vim-commands-beginner) by *Matthieu Cneude*
* [Vim Reference Guide](https://learnbyexample.github.io/vim_reference) by *Sundeep Agarwal*
## Unicode
* [Programming with Unicode](https://unicodebook.readthedocs.io) by *Victor Stinner*
* [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses) by *Joel Spolsky*
* [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023](https://tonsky.me/blog/unicode) by *Nikita Prokopov*
* [Unicode programming, with examples](https://begriffs.com/posts/2019-05-23-unicode-icu.html) by *Joe Nelson*
## Version control tools
* [Git from the Bottom Up](https://jwiegley.github.io/git-from-the-bottom-up) by *John Wiegley*
* [Learn the workings of Git, not just the commands](https://developer.ibm.com/tutorials/d-learn-workings-git) by *Andre Fachat*
## Web programming
* [A book about using Node.js](https://book.mixu.net/node) by *Mikito Takada*
* [FastCGI — The Forgotten Treasure](http://www.nongnu.org/fastcgi) by *Peter Simons and Ralph Babel*
* [HTML for People](https://htmlforpeople.com) by *Blake Watson*
* [Implementing React From Scratch](https://www.rob.directory/blog/react-from-scratch#conditional-elements) by *Robby Pruzan*
* [Intro to Web Dev](https://btholt.github.io/intro-to-web-dev-v2)
* [Josh Comeau's Website](https://www.joshwcomeau.com)
* [Single page apps in depth](https://singlepageappbook.com/) by *Mikito Takada*
* [The Copenhagen Book](https://thecopenhagenbook.com) - A general guideline on implementing auth in web applications.
* [The Flask Mega-Tutorial](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) by *Miguel Grinberg*
* [What happens when you type google.com into your browser's address box and press enter?](https://github.com/alex/what-happens-when) by *Alex Gaynor*
### CSS
* [A Complete Guide to CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid) by *Chris House*
* [Learn CSS Layout the pedantic way](https://book.mixu.net/css) by *Mikito Takada*
* [Modern CSS Solutions for Old CSS Problems](https://moderncss.dev) by *Stephanie Eckles*
## Other
* [Agner Fog's Website](https://www.agner.org)
* [Beej's Guides](http://beej.us/guide)
* [Explained from First Principles](https://explained-from-first-principles.com) by *Kaspar Etter*
* [Green Tea Press: Free books by Allen B. Downey](https://greenteapress.com)
* [How These Things Work](https://reasonablypolymorphic.com/book/preface.html) - a book about abstraction
* [Project Oberon: The Design of an Operating System, a Compiler, and a Computer](https://www.projectoberon.net) by *Niklaus Wirth* and *Jürg Gutknecht*
* [Rocket and Space Technology](http://www.braeunig.us)
* [Software Technical Writing: A Guidebook](https://jamesg.blog/book.pdf) by *James* **[pdf]**
* [Teach Yourself Computer Science](https://teachyourselfcs.com)
* [The Art of HPC](https://theartofhpc.com) by *Victor Eijkhout*
* [The Fundamentals of Control Theory](https://engineeringmedia.com/books) by *Brian Douglas*
* [The Nature of Code](https://natureofcode.com) a book about how can we capture the unpredictable evolutionary and emergent properties of nature in software by *Daniel Shiffman*
* [The Scientist and Engineer's Guide to Digital Signal Processing](http://www.dspguide.com) by *Steven W. Smith, Ph.D.*
## Other lists
* [Become a Programmer, Motherfucker](http://programming-motherfucker.com/become.html) - A list of free programming books.
* [Build Your Own X](https://github.com/danistefanovic/build-your-own-x/blob/master/README.md)
* [Electronic References](https://www.cs.drexel.edu/~csg63/books.html) by *Colin S. Gordon* - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online.
* [Free Computer Books](https://freecomputerbooks.com)
* [Free Tech Books](https://www.freetechbooks.com)
* [GPU Optimization for GameDev](https://gist.github.com/silvesthu/505cf0cbf284bb4b971f6834b8fec93d) by *Ken Hu*
* [Project Based Learning](https://github.com/practical-tutorials/project-based-learning/blob/master/README.md)