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: 1 day ago
JSON representation
-
Command Line and Tools
-
Diff Algorithms
-
Linux command line
-
Nix
- NixOS & Flakes Book - An unofficial book for beginners by *Ryan Yin*
- Wombat’s Book of Nix
-
-
Competitions and Interview Preparation Websites
-
Math <span id="math-competitions">
-
Physics <span id="physics-competitions">
-
Programming <span id="programming-competitions">
- Code Golf - A site for recreational programming competitions.
- CodeChef
- CodeForces
- Daily Programmer
- Hacker Earth
- LeetCode
- Rosalind - A platform for learning bioinformatics through problem solving.
- Skilled.dev
- Sphere Online Judge
- takeUforward
- Top Coder
- Competetive Programming
- Competitive Programming in Python: 128 Algorithms to Develop your Coding Skills - Jênn Vie*
- Edabit
- SQLPad
- Codewars
- LabEx - Learn Linux, DevOps & Cybersecurity with Hands-on Labs.
- CodingBat - A free site of live coding problems to build coding skill in Java and Python.
- Learn OCaml
- Skilled.dev
- takeUforward
- Algorithms for Competitive Programming
- CodeAbbey
- Coderbyte
- CodinGame
- Exercism
- HackerRank
- International Collegiate Programming Contest
- International Olympiad in Informatics
- Kaggle - ML specific.
- NeetCode
- Project Euler
-
-
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
-
Programming <span id="programming-competitions">
- A Compiler Writing Journey
- A practical introduction to parsing
- Part 1
- Part 2
- Compiler Design in C
- Essentials of Compilation: An Incremental Approach
- Graal Truffle tutorial
- Part 2: Precedence and associativity in recursive descent
- Part 3: Packrat parsing: a top-down performance improvement
- Let's Build a Compiler
- Low-Level Software Security for Compiler Developers
- Threaded code
- Writing a C compiler in 500 lines of Python
- Writing a C Compiler, in Zig
- Introduction to Compilers and Language Design
- A practical introduction to parsing
- Build Your Own Lisp
- Part 1
- Part 2: Building a baseline JIT for Lua automatically
- Compiler Design in C
- Compiling to Assembly from Scratch
- Crafting Interpreters
- Creating the Bolt Compiler
- Essentials of Compilation: An Incremental Approach
- Introduction to Compilers and Language Design
- Part 1
- Part 2: Precedence and associativity in recursive descent
- Part 3: Packrat parsing: a top-down performance improvement
- Let's Build a Compiler
- Low-Level Software Security for Compiler Developers
- Make A Language - A series about making a programming language called *Eldiro* using the *Rust* programming language.
- Strategies for very fast Lexers
- Threaded code
- Writing a C compiler in 500 lines of Python
- Writing a C Compiler, in Zig
- Advanced Compilers: The Self-Guided Online Course
- Introduction to Compilers
-
Static Program Analysis
-
-
Computer Graphics
-
Creative Coding
-
Curves and Surfaces
-
Demoscene
-
DirectX 12
- Part 1: the Theory
- Part 2: The Setup
- DirectX-Graphics-Samples
- Ten Years of D3D12
- All Sources of DirectX 12 Documentation
- Part 1: the Theory
- Part 2: The Setup
- Part 1: the Theory
- Part 2: The Setup
- Getting Started With DirectX Raytracing
- GPU Work Graphs mesh nodes in Microsoft DirectX® 12
- Ten Years of D3D12
-
Image Processing
-
Linux command line
- 3D Math Primer for Graphics and Game Development
- A Gentle Introduction to D3D12
- Computer Graphics from Scratch
- GPU Gems
- GPU Gems 2
- GPU Gems 3
- 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
- WebGL2 Fundamentals
- 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
-
Metal
-
OpenGL
-
Programming <span id="programming-competitions">
- A fast and precise triangle rasterizer
- Part 1
- Part 2: Performance
- Blocky Planet — Making Minecraft Spherical
- Part 1: Naive GI: A Foundation
- Part 2: Radiance Cascades
- FrostKiwi's Secrets
- AAA - Analytical Anti-Aliasing
- How to (and how not to) fix color banding
- Video Game Blurs (and how the best one works)
- Fundamentals of Radiance Cascades
- Noise is Beautiful: Part 1: Procedural textures
- Part 1: Procedural textures
- Part 2: Noise is beautiful
- Radiometry: Overview
- Rotations with quaternions
- GPU Performance for Game Artists
- GPU Programming Primitives for Computer Graphics - Chen Kao*
- Implementing a tiny CPU rasterizer
- Implementing Order-Independent Transparency
- Ocean Rendering, Part 1 - Simulation
- Physically Based Shading in Theory and Practice
-
Programming Languages
Categories
Math
483
Personal Websites and Blogs
409
Programming languages
331
Computer Graphics
277
AI
108
Retrocomputing
96
Algorithms
71
Web programming
61
Compilers and Interpreters
57
Low Level Stuff
49
Operating Systems
46
Competitions and Interview Preparation Websites
45
Computer Networks and Network Programming
42
Databases
40
Game Programming
37
Text editors
31
Physics
28
Design Patterns
25
Debuggers
23
Command Line and Tools
23
Other
21
Other lists
20
Data Science
20
Multithreading and Concurrency
16
Distributed systems
14
Digital Signal Processing
14
Emulators and Virtual Machines
13
GUI Programming
12
Hardware
10
General Programming
10
Cryptography
10
Robotics
9
Reverse engineering
8
Unicode
6
Geographic Information Systems
6
Command line and tools
5
Demoscene
5
System programming
4
DevOps
4
Logical Games
4
Technical Writing
4
SIMD programming
3
Electronics
3
Optimization
2
Testing
2
IQ Tests
2
Music Theory
2
Biology
2
Fluids Simulation
2
Photography
2
Version control tools
2
Information TheoryDiscovering observers
1
Information Theory
1
Art
1
Sub Categories
SIMD programming
199
Mixed Programming <span id="mixed-programming-blogs">
188
WebGPU
130
SQL
103
Ray Tracing
101
Programming <span id="programming-competitions">
97
Machine Learning
93
Game and Graphics Programming <span id="game-and-graphics-programming-blogs">
90
Python
66
Lists of programming projects to try to implement
65
Topology
62
Vim
61
Probability and Statistics
59
Operating Systems Development
58
C++ <span id="cpp">
52
Zig
51
Vibe Coding and Spec-Driven Development
50
Linux command line
49
C and C++ <span id="c-and-cpp-blogs">
46
Static Program Analysis
39
Calculus
37
Theoretical Computer Science
37
Game Engines
35
Algebra
31
C++ <span id="cpp-blogs">
31
ZX Spectrum and Z80 CPU
31
Rust
29
Computer Games AI
29
Shaders
27
Math and Physics <span id="math-and-physics-blogs">
25
CSS
23
Web Development <span id="web-development-blogs">
23
Assembly
22
Lisp dialects
22
C
19
Emacs
19
Diff Algorithms
19
Databases Development
17
Go
16
Vulkan
13
Geometry
13
DOS
13
DirectX 12
12
Math <span id="math-competitions">
11
Other Blogs
11
Proofs
11
Analysis
11
Mathematical Finance
10
AI <span id="ai-blogs">
10
Category Theory
9
Books by Fabien Sanglard
9
Operations Research
8
Jai
8
Performance and Optimization <span id="performance-and-optimization-blogs">
8
Mathematical Logic
7
Regular expressions
7
Game Physics
7
Combinatorics
7
OpenGL
6
Ada
6
Game Boy
6
Odin
6
Haskell
6
Commodore 64
6
Graph Theory
6
Image Processing
6
JavaScript
6
Number theory
6
CP/M <span id="cpm">
6
Prolog
5
Forth
5
Game Theory
5
Creative Coding
5
Curl
5
Erlang
4
High School Math
4
Demoscene
4
Apple II
4
Adevent of code on retro machines
4
GPU and TPU Programming
4
HTML
4
R
3
Curves and Surfaces
3
Measure Theory
3
Hardware Blogs
3
Metal
3
PostScript
3
Java
3
Django
3
Pyret
2
Lean
2
Pascal
2
Smalltalk
2
Bloom Filters
2
OCaml
2
Nix
2
Ruby
2
Physics <span id="physics-competitions">
2
NES
2
Ya
2
Simulations
2
Differential Equations
2
Bash
1
General problem solving
1
Mega 65
1
Datalog
1
C# <span id="c-sharp">
1
Date-time
1
Nim
1
Basic
1
Numerical analysis
1
D
1
Oberon-2
1
NoSQL
1
Cuda
1
CMake
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