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: 12 days ago
JSON representation
-
Computer Graphics
-
Static Program Analysis
- Part 1
- Part 2: Performance
- Blocky Planet — Making Minecraft Spherical
- Collection of AMD Research Publications
- FrostKiwi's Secrets
- AAA - Analytical Anti-Aliasing
- How to (and how not to) fix color banding
- How video games use LUTs and how you can too
- Video Game Blurs (and how the best one works)
- Fundamentals of Radiance Cascades
- Rotations with quaternions
- GPU Programming Primitives for Computer Graphics - Chen Kao*
- Lode's Computer Graphics Tutorial
- Matrix Compendium - 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
- Part 1
- Part 2
- Part 3
- Part 1
- Part 2
- Physically based rendering from first principles
- Physically Based Shading in Theory and Practice
- Part 1
- Part 2
- Rasterising a triangle
- Software rasterizing hair
- Texture-less Text Rendering
- The Geometry Behind Normal Maps
- Voxel Engine in a Weekend
-
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
- NVIDIA Vulkan Ray Tracing Tutorial - Karl Lefrançois*, *Pascal Gautron*, *Nia Bickford*, *David Akeley*
- Vulkan Tutorial (Rust)
- A Vulkan introduction
- How I learned Vulkan and wrote a small game engine with it
- NVIDIA Vulkan Ray Tracing Tutorial - Karl Lefrançois*, *Pascal Gautron*, *Nia Bickford*, *David Akeley*
- Vulkan Raytracing Tutorials
- Vulkan Tutorial (Rust)
-
WebGPU
-
-
Computer Networks and Network Programming
-
WebGPU
- HTTP/3 explained
- Networking 101
- Computer Network Tutorials
- Mediocre Engineer’s guide to HTTPS
- Computer Network Tutorials
- A comprehensive guide for Linux Network (Socket) programming
- Concurrent Servers
- Implementing fast TCP fingerprinting with eBPF
- Implementing TCP In Rust
- Visual guide to SSH tunneling and port forwarding
- Part 2 - Threads
- Part 3 - Event-driven
- Part 4 - libuv
- Part 5 - Redis case study
- Part 6 - Callbacks, Promises and async/await
- Part 2: Networking
- Part 3: Server
- Part 4: Data structures
- Part 5: Topic abstraction
- Part 6: Handlers
- Part 7: Refactoring & eventloop
- Topics in High-Performance Messaging
- An Introduction to Computer Networks
- Computer Networks: A Systems Approach
- HTTP2 Explained
- HTTP/3 explained
- Implementing fast TCP fingerprinting with eBPF
- Part 1: Ethernet & ARP
- Part 2: IPv4 & ICMPv4
- Part 3: TCP Basics & Handshake
- Part 4: TCP Data Flow & Socket API
- Part 5: TCP Retransmission
- Part 2: Networking
- Part 3: Server
- Part 4: Data structures
- Part 5: Topic abstraction
- Part 6: Handlers
- Part 7: Refactoring & eventloop
- Networking 101
- Serving files over HTTP three ways: synchronous, epoll, and io_uring
- Visual guide to SSH tunneling and port forwarding
-
-
Cryptography
-
WebGPU
- Cryptography: An Introduction (3rd Edition)
- Advanced Topics in Cryptography: From Lattices to Program Obfuscation
- All I Know About Certificates
- Coding Theory & Cryptography
- The Beginner's Textbook for Fully Homomorphic Encryption
- Coding Theory & Cryptography
- A Graduate Course in Applied Cryptography
- Advanced Topics in Cryptography: From Lattices to Program Obfuscation
- An Intensive Introduction to Cryptography
-
-
Databases
-
Databases Development
- B-trees and database indexes
- Part 1: Listing tables
- Part 2: Scanning large tables
- Part 3: SQL parsing 101
- Part 4: reading tables metadata
- Part 5: Evaluating queries
- Concurrency Control and Recovery in Database Systems
- Jacob's blog: On database building blocks
- A B+Tree Node Underflows: Merge or Borrow?
- Cache-Friendly B+Tree Nodes With Dynamic Fanout
- Build Your Own Database From Scratch in Go
- Concurrency Control and Recovery in Database Systems
- Jacob's blog: On database building blocks
- A B+Tree Node Underflows: Merge or Borrow?
- Cache-Friendly B+Tree Nodes With Dynamic Fanout
- Let's Build a Simple Database
-
NoSQL
-
SQL
- Mode's SQL Tutorial
- SQLZap - Learn SQL with for Free.
- MySQL Tutorial
- SQL Tutorial - Master SQL quickly and effectively with clear concepts, hands-on examples, and interactive quizzes.
- SQL for the Weary
- SQLZap - Learn SQL with for Free.
- MySQL for Developers
- The Internals of PostgreSQL
- Oracle Tutorial
-
WebGPU
-
-
Data Science
-
WebGPU
- Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies
- Introduction to Data Science: Data Wrangling and Visualization with R
- Hands-On Data Visualization
- Mathematical Methods in Data Science (with Python)
- Mining Social Media
- Topics in Mathematics of Data Science
- Towards Data Science - The world’s leading publication for data science, AI, and ML professionals.
- Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies
- Data Science at the Command Line
- Data Science: Theories, Models, Algorithms, and Analytics
- Data for the book's examples
- Version with Python and R
- Hands-On Data Visualization
- Introduction to Data Science: Data Wrangling and Visualization with R
- Mathematical Methods in Data Science (with Python)
- Mining Social Media
- Topics in Mathematics of Data Science
-
-
Debuggers
-
WebGPU
- How Does a C Debugger Work?
- Part 1 - Attaching to a Process
- Part 2 - Register State and Stepping
- Part 3 - Reading Memory
- Part 4 - Exports and Private Symbols
- Part 5 - Breakpoints
- Part 6 - Stacks
- Part 7 - Disassembly
- Part 8 - Source and Symbols
- Debugging with GDB
- How Does a C Debugger Work?
- A Field Guide to Bugs
- A Field Guide to Bugs
- Debugging with GDB
- Writing a Linux Debugger
- Part 1 - Attaching to a Process
- Part 2 - Register State and Stepping
- Part 3 - Reading Memory
- Part 4 - Exports and Private Symbols
- Part 5 - Breakpoints
- Part 6 - Stacks
- Part 7 - Disassembly
- Part 8 - Source and Symbols
-
-
Demoscene
-
SQL
- Graphics Tricks from Boomers - Technical details about a 4096 bytes Atari-STE intro, by *Arnaud Carré*.
- Part 2: Texturing in a 64kB intro
- Graphics Tricks from Boomers - Technical details about a 4096 bytes Atari-STE intro, by *Arnaud Carré*.
- Part 1: A dive into the making of Immersion
- Part 3: Procedural 3D mesh generation in a 64kB intro
-
-
Design Patterns
-
SQL
- Building abstractions using higher-order functions
- Decorators and Functional programming
- Design Patterns You Should Unlearn in Python: Part2
- Part 1
- Part 2
- Part 3
- The expression problem and Rust
- Indices, not Pointers
- Multiple Dispatch Series
- Plugins Series
- Data Engineering Design Patterns (DEDP)
- Data-Oriented Design
-
WebGPU
-
-
DevOps
-
Digital Signal Processing
Programming Languages
Categories
Math
477
Personal Websites and Blogs
403
Programming languages
324
Computer Graphics
266
AI
148
Algorithms
106
Retrocomputing
94
Web programming
57
Compilers and Interpreters
55
Operating Systems
45
Low Level Stuff
42
Computer Networks and Network Programming
41
Databases
35
Competitions and Interview Preparation Websites
33
Text editors
29
Physics
28
Command Line and Tools
27
Debuggers
23
Game Programming
21
Other lists
20
Other
19
Data Science
18
Design Patterns
15
Multithreading and Concurrency
14
Emulators and Virtual Machines
9
Cryptography
9
Robotics
9
Distributed systems
9
Reverse engineering
8
Hardware
8
Digital Signal Processing
7
GUI Programming
7
Unicode
6
General Programming
5
Command line and tools
5
Demoscene
5
System programming
4
Logical Games
4
Technical Writing
4
DevOps
3
Biology
3
Geographic Information Systems
3
SIMD programming
3
Art
2
Optimization
2
Electronics
2
Fluids Simulation
2
Testing
2
Photography
2
Music Theory
2
Version control tools
2
IQ Tests
2
Information TheoryDiscovering observers
1
Sub Categories
SIMD programming
198
Mixed Programming <span id="mixed-programming-blogs">
185
Machine Learning
125
WebGPU
125
Ray Tracing
100
Game and Graphics Programming <span id="game-and-graphics-programming-blogs">
89
Programming <span id="programming-competitions">
85
Vibe Coding and Spec-Driven Development
77
Python
64
SQL
61
Topology
60
Probability and Statistics
59
Operating Systems Development
57
Vim
56
C++ <span id="cpp">
52
Zig
50
Linux command line
49
Lists of programming projects to try to implement
47
C and C++ <span id="c-and-cpp-blogs">
46
Theoretical Computer Science
37
Static Program Analysis
36
Calculus
36
Diff Algorithms
35
Computer Games AI
32
ZX Spectrum and Z80 CPU
31
C++ <span id="cpp-blogs">
31
Game Engines
31
Algebra
29
Rust
28
Shaders
27
Math and Physics <span id="math-and-physics-blogs">
25
CSS
23
Assembly
22
Lisp dialects
22
Web Development <span id="web-development-blogs">
19
C
19
Emacs
18
Databases Development
16
Go
14
Geometry
13
DOS
13
DirectX 12
12
Other Blogs
11
Analysis
11
Proofs
11
Mathematical Finance
10
Vulkan
10
AI <span id="ai-blogs">
10
Books by Fabien Sanglard
9
Category Theory
9
Math <span id="math-competitions">
9
Operations Research
8
Performance and Optimization <span id="performance-and-optimization-blogs">
8
Jai
8
Regular expressions
7
Combinatorics
7
Mathematical Logic
7
CP/M <span id="cpm">
6
Odin
6
Haskell
6
Image Processing
6
Ada
6
Graph Theory
6
Commodore 64
6
Prolog
5
Number theory
5
OpenGL
5
Curl
5
Game Boy
5
Forth
5
JavaScript
4
Erlang
4
Apple II
4
GPU and TPU Programming
4
HTML
4
Bloom Filters
4
Creative Coding
4
Game Theory
4
Adevent of code on retro machines
4
Demoscene
4
High School Math
4
Measure Theory
3
Hardware Blogs
3
Django
3
Metal
3
R
3
PostScript
3
Java
3
Pyret
2
Lean
2
Simulations
2
Smalltalk
2
Pascal
2
OCaml
2
Physics <span id="physics-competitions">
2
Curves and Surfaces
2
Differential Equations
2
Ruby
2
Ya
2
Nix
2
NES
2
Datalog
1
General problem solving
1
D
1
C# <span id="c-sharp">
1
Bash
1
Date-time
1
Nim
1
Mega 65
1
CMake
1
Game Physics
1
NoSQL
1
Oberon-2
1
Basic
1
Cuda
1
Keywords
book
3
machine-learning
3
c
2
tutorial
2
reinforcement-learning
2
python
2
opengl
2
graphics-programming
2
matplotlib
2
numpy
2
graphics
2
book-series
1
code-editor
1
editor
1
education
1
intermediate
1
indiedev
1
hlsl
1
learning
1
learning-to-code
1
linux
1
programming
1
training-materials
1
training-providers
1
unix
1
vim
1
3d
1
godot
1
3d-graphics
1
game-development
1
gamedev
1
glsl
1
glsl-shader
1
glsl-shaders
1
30-days-of-python
1
flask
1
github
1
heroku
1
mongodb
1
pandas
1
python3
1
aarch64
1
arm64
1
armv8
1
bare-metal
1
embedded-rust
1
kernel
1
operating-system
1
os
1
raspberry
1