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: 2 days ago
JSON representation
-
Programming languages
-
C++ <span id="cpp">
- Fiber in C++: Understanding the Basics
- Hacking C++
- Microsoft C++ language documentation
- Performance Analysis and Tunning on Modern CPUs
- 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
- C++ Core Guidelines
- C++20 Concepts: The Definitive Guide
- Effective Modern C++
- Learn C++
- Learning to read C++ compiler errors: Not a legal base class
- More C++ Idioms
- My Favorite C++ Pattern: X Macros
- Philosophy of coroutines
- Part 1: Concept art
- Part 2: Using a std::list
- Part 3: Using a std::vector
- Part 4: Using a circular doubly linked list
- Part 5: Copying our tracking pointer
- Part 6: Non-modifying trackers
- Part 7: Non-modifying trackers, second try
- Part 8: Tracking const objects
- Part 9: Conversion
- Part 10: Proper conversion
- Part 11: Repairing assignment
- Part 12: A shared tracking pointer
- Part 13: Restoring the strong exception guarantee
- Part 14: Nonthrowing moves with the shared tracking pointer
- Part 15: A custom shared pointer
- Part 16: Second attempt to use a list
- Efficient Programming with Components
- C++20 Coroutines: sketching a minimal async framework
- Fiber in C++: Understanding the Basics
- Hacking C++
- Microsoft C++ language documentation
- My Favorite C++ Pattern: X Macros
- Philosophy of coroutines
- The Boost C++ Libraries
- Modern C++ Tutorial
-
C# <span id="c-sharp">
-
Cuda
-
D
-
Datalog
-
Erlang
- Adopting Erlang - McClanahan*
- Adopting Erlang - McClanahan*
- Learn You Some Erlang for great good!
- Stuff Goes Bad: Erlang in Anger
-
Forth
-
Go
- REST Servers in Go
- Network Programming with Go
- A comprehensive guide to go generate
- Accessing PostgreSQL databases in Go
- Embedding in Go
- Generic functions on slices with Go type parameters
- Go internals: invariance and memory layout of slices
- Higher-order functions in Go
- Memory Allocation in Go
- Notes on running Go in the browser with WebAssembly
- Ranging over functions in Go 1.23
- The Y combinator in Go with generics
- Go HTTPS servers with TLS
- Go socket servers with TLS
- Go Optimization Guide
- Practical Go Lessons
-
Haskell
-
Jai
- Jai articles by James Oswald
- Simplicity, Jai, and Joy (Jai Part 1)
- Embedding, Jai, and Joy (Jai Part 2)
- Emulating Rust's Result and ? in Jai with Metaprogramming
- Jai articles by James Oswald
- Simplicity, Jai, and Joy (Jai Part 1)
- Embedding, Jai, and Joy (Jai Part 2)
- Emulating Rust's Result and ? in Jai with Metaprogramming
-
Java
-
JavaScript
-
Lean
-
Lisp dialects
- Babashka Babooka: Write Command-Line Clojure
- Clojure Concurrency Tutorial
- Clojure for the Brave and True
- Learn Lisp The Hard Way
- Successful Lisp: How to Understand and Use Common Lisp
- Typed Lisp, A Primer - hassy*
- Part II
- Beautiful Racket
- How to Design Programs
- Structure and Interpretation of Computer Programs
- Part 1: ECS and Metalinguistic Abstraction
- Part 2: Dungeons and Interfaces
- On Lisp
- Typed Lisp, A Primer - hassy*
- Babashka Babooka: Write Command-Line Clojure
- Learn Lisp The Hard Way
- Practical Common Lisp
- The Common Lisp Cookbook
- Part I
- Part II
- Programming Languages: Application and Interpretation
- (learn 'scheme)
-
Nim
-
Oberon-2
-
OCaml
-
Odin
- Introduction to the Odin Programming Language
- "Handles are the better pointers": An Odin gamedev follow-up
- Mistakes and cool things to do with arena allocators
- "Handles are the better pointers": An Odin gamedev follow-up
- Introduction to the Odin Programming Language
- Mistakes and cool things to do with arena allocators
-
Operating Systems Development
- A Dumb Introduction to z3
- Control structures in programming languages: from goto to algebraic effects
- Exotic Programming Ideas
- Part 1: Module Systems
- Part 2: Term Rewriting
- Part 3: Effect Systems
- Part 4: Datalog
- A Dumb Introduction to z3
- Control structures in programming languages: from goto to algebraic effects
- Part 1: Module Systems
- Part 2: Term Rewriting
- Part 3: Effect Systems
- Part 4: Datalog
- Part 5: Types of Types
- Introduction to the Theory of Programming Languages
- Programming Paradigms for Dummies: What Every Programmer Should Know
- University Physics - Hansen*
-
Pascal
-
PostScript
-
Prolog
-
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
- 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
- Test-Driven Development with Python
- 30 Days Of Python
- Composing Programs
- Computational Discovery on Jupyter
- Data Structures and Information Retrieval in Python
- How to Think Like a Computer Scientist: Interactive Edition
- Introduction to Computer Programming with Python
- Introduction to Python Programming
- Audio, Video, and Webcams in Python (Lost Chapter from Automate the Boring Stuff)
- Invent Your Own Computer Games with Python
- Scratch 3 Programming Playground
- The Recursive Book of Recursion
- Learn Python the Right Way
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- Python Programming for Economics and Finance
- Scientific Visualization: Python + Matplotlib
- The Ultimate Guide to Error Handling in Python
-
Programming Languages
Categories
Math
483
Personal Websites and Blogs
405
Programming languages
331
Computer Graphics
277
AI
107
Retrocomputing
96
Algorithms
71
Web programming
59
Compilers and Interpreters
57
Low Level Stuff
49
Operating Systems
46
Computer Networks and Network Programming
42
Databases
39
Game Programming
37
Competitions and Interview Preparation Websites
34
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
Digital Signal Processing
14
Distributed systems
14
Emulators and Virtual Machines
13
GUI Programming
12
Hardware
10
Cryptography
10
Robotics
9
General Programming
8
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
Version control tools
2
Fluids Simulation
2
Optimization
2
IQ Tests
2
Testing
2
Music Theory
2
Biology
2
Photography
2
Information TheoryDiscovering observers
1
Information Theory
1
Art
1
Sub Categories
SIMD programming
199
Mixed Programming <span id="mixed-programming-blogs">
186
WebGPU
130
SQL
102
Ray Tracing
101
Machine Learning
92
Game and Graphics Programming <span id="game-and-graphics-programming-blogs">
90
Programming <span id="programming-competitions">
87
Python
66
Lists of programming projects to try to implement
65
Topology
62
Vim
59
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
Assembly
22
Lisp dialects
22
Web Development <span id="web-development-blogs">
21
C
19
Emacs
19
Diff Algorithms
19
Databases Development
17
Go
16
Vulkan
13
Geometry
13
DOS
13
DirectX 12
12
Analysis
11
Other Blogs
11
Proofs
11
Math <span id="math-competitions">
10
AI <span id="ai-blogs">
10
Mathematical Finance
10
Books by Fabien Sanglard
9
Category Theory
9
Jai
8
Operations Research
8
Performance and Optimization <span id="performance-and-optimization-blogs">
8
Mathematical Logic
7
Combinatorics
7
Regular expressions
7
CP/M <span id="cpm">
6
JavaScript
6
Number theory
6
Commodore 64
6
Image Processing
6
Graph Theory
6
Haskell
6
Odin
6
Game Boy
6
Ada
6
OpenGL
6
Curl
5
Prolog
5
Game Physics
5
Forth
5
Game Theory
5
Creative Coding
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