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
Last synced: 4 days ago
JSON representation
-
Retrocomputing
-
Books by Fabien Sanglard
-
Zig
- A Guide to the Graphics of the Sega Mega Drive / Genesis
- An Afterlife User's Guide to the C64
- Apple II Documentation Project
- Commodore 64 Guides
- Commodore Bookmarks - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community.
- Famicom Party: Making NES Games in Assembly
- First Steps in Z80 Assembly Language
- How to Write ZX Spectrum Games
- Learn Multiplatform Assembly Programming
- MEGA65 Documentation
- MEGA65 Welcome Guide
- Michael Abrash’s Graphics Programming Black Book, Special Edition
- Multiplying and Dividing on the 6502
- Sinclair ZX Spectrum BASIC programming
- The Lost Ways of Programming: Commodore 64 BASIC
- Z80 User's Manual
- Usborne 1980s Computer Books
- Neil Parker's Apple II page
-
Adevent of code on retro machines
-
DOS
-
-
Programming languages
-
Lisp dialects
- Clojure for the Brave and True
- Beautiful Racket
- How to Design Programs
- Babashka Babooka: Write Command-Line Clojure
- Clojure Concurrency Tutorial
- Learn Lisp The Hard Way
- Successful Lisp: How to Understand and Use Common Lisp
- Typed Lisp, A Primer - hassy*
- Part II
- Structure and Interpretation of Computer Programs
-
OCaml
-
Nim
-
Prolog
-
D
-
C
- Writing a Simple Garbage Collector in C
- Coroutines in C
- Compiler Options Hardening Guide for C and C++
- Demystifying bitwise operations, a gentle C tutorial
- Object-Oriented Programming with ANSI-C - Tobias Schreiner* **[pdf]**
- So You Think You Know C?
- Implementing smart pointers for the C programming language
- How to implement a hash table (in C)
-
C++ <span id="cpp">
- Performance Analysis and Tunning on Modern CPUs
- Awesome Modern C++
- C++ exceptions under the hood
- C++20 Coroutines: sketching a minimal async framework
- C++20 Concepts: The Definitive Guide
- Fiber in C++: Understanding the Basics
- Hacking C++
- Microsoft C++ language documentation
- The Boost C++ Libraries
- Part 2: Memory Usage Case Study
- Part 3: Memory Footprint with SDE
- Part 4: Memory Footprint Case Study
- Part 5. Data Locality and Reuse Distances
- Part 4: Catching what you throw
- Part 8: Two-phase handling
- Part 14: Multiple landing pads & the teachings of the guru
- Part 20: Running destructors while unwinding
- Appendix II: Metaclasses and RTTI on C++
- Appendix III: RTTI and exceptions orthogonality
-
Go
-
Regular expressions
-
Simulations
-
Assembly
-
Basic
-
Haskell
-
Java
-
JavaScript
-
Oberon-2
-
Pascal
-
PostScript
-
Pyret
-
Python
- Composing Programs
- From Python to Numpy
- Learn Python the Right Way
- Practical Python Programming
- Python Asyncio: The Complete Guide
- Python for Data Analysis, 3rd edition
- Test-Driven Development with Python
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Think Python, 3rd Edition
- NumPy Illustrated: The Visual Guide to NumPy
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- How Python Asyncio Works: Recreating it from Scratch
- Modern Good Practices for Python Development
-
Rust
- A Gentle Introduction to Rust
- Beginner's guide to Error Handling in Rust
- Effective Rust
- Exploring ways to make async Rust easier
- Learning Async Rust With Entirely Too Many Web Servers
- Rust Atomics and Locks: Low-Level Concurrency in Practice
- Things you can’t do in Rust (and what to do instead)
- 100 Exercises To Learn Rust
-
Smalltalk
- Smalltalk Resources - A list of free smalltalk books.
-
Forth
-
Ada
-
Odin
-
-
Computer Graphics
-
Shaders
-
Linux command line
- WebGL2 Fundamentals
- 3D Math Primer for Graphics and Game Development
- GPU Gems
- GPU Gems 2
- GPU Gems 3
- A Gentle Introduction to D3D12
- Computer Graphics from Scratch
- GPU Performance for Game Artists
- Let's Make a Voxel Engine
- Lode's Computer Graphics Tutorial
- Marching Cubes, Explained Using Marching Squares
- Part 1
- Part 2
- Part 1
- Part 2
- RasterTek toturials
- Part 1 - The Plan
- Part 2 - Visibility buffer
- Part 3 - Cluster rendering
- Part 4 - LOD generation
- Part 5 - A basic material pass
- Part 6 - LOD generation - faster, better, simpler
- Part 7 - Runtime LOD selection
- Part 8 - Mesh shader time
- Physically Based Rendering in Filament
- Crash Course in BRDF Implementation
- GPU Work Graphs mesh nodes in Microsoft DirectX® 12
-
Ray Tracing
- Physically Based Rendering: From Theory To Implementation
- A raycasting engine in 7 easy steps
- Getting Started With DirectX Raytracing
- How to build a BVH
- Part 1
- Part 2
- Ray-Casting Tutorial For Game Development And Other Purposes
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Demystifying multiple importance sampling
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing with Voxels in C++
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
-
OpenGL
-
Vulkan
- I Am Graphics And So Can You - a series of blog posts about implementing a Vulkan renderer for Doom 3 by *Dustin H. Land*
- Vulkan Raytracing Tutorials
- How I learned Vulkan and wrote a small game engine with it
-
Curves and Surfaces
-
Demoscene
-
WebGPU
-
Image Processing
-
-
Math
-
Algebra
-
Game Engines
- A Programmer's Introduction to Mathematics
- 3Blue1Brown lessons
- Everything You Always Wanted To Know About Mathematics
- A Gentle Introduction to Tensors
- An Infinite Descent into Pure Mathematics
- An Infinitely Large Napkin
- An introduction to graph theory
- Books by *Dr. Kenneth Kuttler*
- Euclid's Elements
- Introduction to Homotopy Type Theory
- Paul's Online Math Notes
- The Princeton Companion to Mathematics - editor* **[pdf]**
- A Gentle Introduction to the Art of Mathematics
- Approved Textbooks
- An animated introduction to Fourier Series
-
Calculus
-
Theoretical Computer Science
-
Probability and Statistics
- Probability and Statistics Cookbook
- Bayes Rules! An Introduction to Applied Bayesian Modeling
- Digital textbook on probability and statistics
- Introduction to Probability for Data Science
- Introduction to Modern Statistics (2nd Ed) - Rundel and Johanna Hardin*
- Probability 101, the intuition behind martingales and solving problems with them
-
Category Theory
-
Topology
-
Geometry
-
-
Operating Systems
-
Topology
-
Operating Systems Development
-
-
Algorithms
-
Computer Games AI
- Algorithms
- Competitive Programming Algorithms
- Competitive Programmer's Handbook
- Principles of Algorithmic Problem Solving
- Foundations of Data Science
- Algorithms and Data Structures
- Algorithms for Optimization
- The Arcane Algorithm Archive
- Exact String Matching Algorithms
- How does B-tree make your queries fast?
- Introduction to Algorithms: A Creative Approach
- Planning Algorithms
- Purely Functional Data Structures
- Sequential and Parallel Data Structures and Algorithms: The Basic Toolbox
- Collision Detection
- Data Structures for Data-Intensive Applications: Tradeoffs and Design Guidelines
- Monte-Carlo Graph Search from First Principles
-
-
Low Level Stuff
-
Other lists
-
CSS
- GPU Optimization for GameDev
- Build Your Own X
- Free Computer Books
- Free Tech Books
- Project Based Learning
- Electronic References - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online.
-
-
AI
-
Machine Learning
- Speech and Language Processing, 3rd edition
- Deep Learning
- Probabilistic Machine Learning: An Introduction
- Mathematics for Machine Learning
- Neural Networks: Zero to Hero - A course by *Andrej Karpathy*
- Dive into Deep Learning Compiler
- Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control
- Deep Learning Course
- Deep Learning: Foundations and Concepts
- Information Theory, Inference, and Learning Algorithms
- Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory
- Physics-based Deep Learning
- Probabilistic Machine Learning: Advanced Topics
- The Little Book of Deep Learning
- Learning Theory from First Principles
- The Elements of Differentiable Programming
- Alice’s Adventures in a differentiable wonderland
- Crash Course in Deep Learning (for Computer Graphics)
- The Engineer's Guide To Deep Learning
- Applied Machine Learning for Tabular Data
- Deep Learning Interviews
- Machine Learning Engineering Open Book
- A Course in Machine Learning
- Deep Reinforcement Learning: Zero to Hero!
- Machine Learning Engineering Book
- A Comprehensive Guide to Machine Learning
-
Computer Games AI
-
-
Web programming
-
Other
-
CSS
- Software Technical Writing: A Guidebook
- Agner Fog's Website
- Beej's Guides
- Explained from First Principles
- How These Things Work - a book about abstraction
- Rocket and Space Technology
- The Fundamentals of Control Theory
- The Scientist and Engineer's Guide to Digital Signal Processing
- Project Oberon: The Design of an Operating System, a Compiler, and a Computer
-
-
Hardware
-
Command Line and Tools
-
Computer Games AI
-
Linux command line
-
Curl
-
-
Multithreading and Concurrency
-
Electronics
-
WebGPU
-
-
Databases
-
SIMD programming
-
DOS
-
Books by Fabien Sanglard
-
-
Reverse engineering
-
Fluids Simulation
-
Art
-
Computer Games AI
-
-
Biology
-
Computer Games AI
-
-
Command line and tools
-
Computer Games AI
- Driving Compilers
- Getting started with tmux
- NixOS & Flakes Book - An unofficial book for beginners by *Ryan Yin*
-
Curl
-
-
Compilers and Interpreters
-
Linux command line
- Part 1
- Part 2: Building a baseline JIT for Lua automatically
- Creating the Bolt Compiler
- How Clang Compiles a Function
- How LLVM Optimizes a Function
- Part 1
- Part 2
- Part 3
- Part 1: Introduction, selecting a language, and doing some planning
- Part 2: A lexer
- Part 3: A parser
- Part 4: Testing
- Part 5: A code generator
- Part 6: Input and output
- Part 7: Arrays
- Part 8: Strings, forward references, and conclusion
-
-
Computer Networks and Network Programming
-
Cryptography
-
Debuggers
-
Design Patterns
-
Distributed systems
-
Emulators and Virtual Machines
-
Game Programming
-
WebGPU
-
Game Engines
-
-
GUI Programming
-
Logical Games
-
Photography
-
Topology
-
-
Physics
-
Topology
- Motion Mountain - A free physics textbook
- Physics for Mathematicians
- Relativity: A Modern Primer
-
Simulations
-
Operating Systems Development
-
-
Robotics
-
Text editors
-
Books by Fabien Sanglard
-
DOS
-
Emacs
-
Vim
-
-
Unicode
-
Version control tools
-
Data Science
-
Optimization
Programming Languages
Categories
Computer Graphics
118
Programming languages
98
Math
38
AI
29
Retrocomputing
27
Algorithms
17
Compilers and Interpreters
16
Operating Systems
14
Text editors
10
Command Line and Tools
9
Other
9
Debuggers
9
Game Programming
7
Physics
6
Databases
6
Other lists
6
Web programming
6
Command line and tools
5
Emulators and Virtual Machines
5
Computer Networks and Network Programming
5
Low Level Stuff
5
Hardware
4
GUI Programming
4
Robotics
4
Design Patterns
3
Unicode
3
Multithreading and Concurrency
3
Reverse engineering
3
SIMD programming
3
Biology
2
Distributed systems
2
Optimization
2
Logical Games
2
Data Science
2
Fluids Simulation
2
Electronics
1
Photography
1
Cryptography
1
Art
1
Version control tools
1
Sub Categories
Ray Tracing
71
Linux command line
47
WebGPU
44
Game Engines
31
Computer Games AI
28
Machine Learning
26
Topology
21
Python
20
C++ <span id="cpp">
19
Zig
18
CSS
16
DOS
11
Vim
11
Lisp dialects
10
Books by Fabien Sanglard
9
C
8
Rust
8
Shaders
8
Operating Systems Development
7
Assembly
7
Probability and Statistics
6
Emacs
5
Theoretical Computer Science
4
Demoscene
4
Algebra
4
Curl
3
JavaScript
3
Category Theory
3
Vulkan
3
Regular expressions
3
Haskell
2
Go
2
Pyret
2
Calculus
2
Simulations
2
Adevent of code on retro machines
2
Prolog
1
Oberon-2
1
Odin
1
Pascal
1
Smalltalk
1
OCaml
1
OpenGL
1
Curves and Surfaces
1
Forth
1
Ada
1
Basic
1
Nim
1
Image Processing
1
Java
1
PostScript
1
Geometry
1
D
1