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: about 14 hours ago
JSON representation
-
Computer Graphics
-
Ray Tracing
- 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
- A raycasting engine in 7 easy steps
- Getting Started With DirectX Raytracing
- How to build a BVH
- Part 1
- Part 2
- Physically Based Rendering: From Theory To Implementation
- 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 II
- Ray Tracing Gems - Möller*
- 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
- Amanatides and Woo's fast Voxel Traversal
- How to build a BVH
- Ray Tracing Gems - Möller*
- Ray Tracing Gems II
- Ray Tracing with Voxels in C++
- Raymarching explained interactively
-
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
-
Curves and Surfaces
-
Demoscene
-
Shaders
- Part 1
- Part 2
- Part 3
- Part I: The blob
- Mesh Shaders on RDNA™ Graphics Cards
- The Book of Shaders
- Mesh Shaders on RDNA™ Graphics Cards
- Introducing GPU Reshape - shader instrumentation for everyone
- 3D Game Shaders For Beginners
- Part 1
- Part 2
- Part 3
- GM Shaders - All about shaders for GameMaker!
- Introducing GPU Reshape - shader instrumentation for everyone
- Introduction to Shaders
- Learn Shader Programming with Rick and Morty
- Mesh Shaders on RDNA™ Graphics Cards
- No More Shading Languages: Compiling C++ to Vulkan Shaders
- On Crafting Painterly Shaders
- Post-Processing Shaders as a Creative Medium
- Shaders For People Who Don't Know How To Shader
- Shader Tutorials by Ronja
- The Best Darn Grid Shader (Yet)
-
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
- 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
- Vulkan Tutorial (Rust)
-
WebGPU
-
Programming <span id="programming-competitions">
- Part 1
- Part 2
- Part 3
- Part 1
- Part 2
- A fast and precise triangle rasterizer
- A trip through the Graphics Pipeline
- Part 1
- Part 2: Performance
- Blocky Planet — Making Minecraft Spherical
- Part 1: Naive GI: A Foundation
- Part 2: Radiance Cascades
- 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
- 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
- Learn Computer Graphics From Scratch
- 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.
- Ocean Rendering, Part 1 - Simulation
- Optimizing Software Occlusion Culling
- Physically based rendering from first principles
- Physically Based Shading in Theory and Practice
- Part 1
- Part 2
- Rasterising a triangle
- Part 9 - Raytracing
- Software rasterizing hair
- Texture-less Text Rendering
- The Geometry Behind Normal Maps
- Voxel Engine in a Weekend
-
OpenGL
-
Image Processing
-
Creative Coding
-
DirectX 12
-
Metal
-
-
AI
-
Machine Learning
- Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control
- Deep Learning
- Deep Learning Course
- Deep Learning: Foundations and Concepts
- Dive into Deep Learning Compiler
- Information Theory, Inference, and Learning Algorithms
- Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory
- Mathematics for Machine Learning
- Neural Networks: Zero to Hero - A course by *Andrej Karpathy*
- Physics-based Deep Learning
- Probabilistic Machine Learning: An Introduction
- Probabilistic Machine Learning: Advanced Topics
- The Little Book of Deep Learning
- A Course in Machine Learning
- Deep Reinforcement Learning: Zero to Hero!
- Machine Learning Engineering Book
- Machine Learning Engineering Open Book
- A Course in Machine Learning
- A Gentle Introduction to Graph Neural Networks - Lengeling*, *Emily Reif*, *Adam Pearce* and *Alexander B. Wiltschko*
- Algorithmic Aspects of Machine Learning
- Algorithms for Artificial Intelligence
- Alice’s Adventures in a differentiable wonderland
- An Illustrated Guide to Automatic Sparse Differentiation
- An Introduction to Statistical Learning
- Applied Machine Learning for Tabular Data
- The Hundred Page Machine Learning Book
- Machine Learning Engineering Book
- Computer Vision: Algorithms and Applications, 2nd Edition
- Concise Machine Learning
- Data Science and Machine Learning: Mathematical and Statistical Methods
- Deep Learning Course
- Deep Learning: Foundations and Concepts
- Deep Learning on Graphs
- Deep Learning with Python, Second Edition
- Dive into Deep Learning
- Dummy's Guide to Modern LLM Sampling
- Foundations of Computer Vision
- Foundations of Machine Learning
- Harvard's undergraduate course in Machine Learning
- Introduction to Flow Matching and Diffusion Models
- Introduction to ggml
- Introduction to Machine Learning
- Introduction to Machine Learning
- Introduction to Machine Learning
- Introduction to Machine Learning Interviews
- Lecture Notes for Machine Learning and Data Science Courses Information School, University of Washington
- Lecture Notes for Machine Learning Theory
- Machine Learning Lecture Notes
- Machine Learning Systems
- Machine learning with neural networks
- Neural Networks and Deep Learning
- Notes on AutoGrad
- Patterns, Predictions, and Actions: A story about machine learning
- Probabilistic Artificial Intelligence
- Statistical Learning Theory
- The Elements of Statistical Learning
- The Engineer's Guide To Deep Learning
- The Little Book of Deep Learning
- The Most Important Machine Learning Equations: A Comprehensive Guide
- The Principles of Deep Learning Theory
- The Principles of Diffusion Models: From Origins to Advances - Hsin Lai*, *Yang Song*, *Dongjun Kim*, *Yuki Mitsufuji*, *Stefano Ermon*
- Theory of Deep Learning
- Tutorial on Diffusion Models for Imaging and Vision
- Understanding Deep Learning
- Speech and Language Processing, 3rd edition
- The Elements of Differentiable Programming
- Learning Theory from First Principles
- Alice’s Adventures in a differentiable wonderland
- Applied Machine Learning for Tabular Data
- Deep Learning Interviews
- Crash Course in Deep Learning (for Computer Graphics)
- The Engineer's Guide To Deep Learning
- A Comprehensive Guide to Machine Learning
- Understanding Machine Learning: From Theory to Algorithms - Shwartz* and *Shai Ben-David*
- A Visual Guide to Quantization: Demystifying the Compression of Large Language Models
- Foundations of Large Language Models
- How to Scale Your Model: A Systems View of LLMs on TPUs
- How to run LLMs on PC at home using Llama.cpp
- Google Machine Learning Education
- Linear Algebra for Computer Vision, Robotics, and Machine Learning
- Mathematical Analysis of Machine Learning Algorithms
- Mathematical Foundations of Machine Learning
- Mathematics for Artificial Intelligence Lecure Notes
- Mathematics for Machine Learning
- Mathematics for Inference and Machine Learning
- Mathematics of Machine Learning
- Mathematics of Machine Learning
- Mathematics of Neural Networks
- Matrix Calculus (for Machine Learning and Beyond)
- MIT course
- GitHub repository
- Optimization for Data Science
- Pen and Paper Exercises in Machine Learning
- The Matrix Calculus You Need For Deep Learning
- A Little Bit of Reinforcement Learning from Human Feedback
- Deep Reinforcement Learning
- Distributional Reinforcement Learning
- Mathematical Foundations of Reinforcement Learning
- Multi-Agent Reinforcement Learning: Foundations and Modern Approaches
- Reinforcement Learning: An Introduction, Second Edition
- Reinforcement Learning: An Overview
-
Computer Games AI
-
Vibe Coding and Spec-Driven Development
- Basic Claude Code
- Disciplined AI Software Development
- Diving Into Spec-Driven Development With GitHub Spec Kit
- How I program with Agents
- How I program with LLMs
- How I Use Every Claude Code Feature
- My LLM codegen workflow atm
- Spec-driven development with AI: Get started with a new open source toolkit
- Vibe Coding Terminal Editor
-
Algorithms
-
Computer Games AI
- Foundations of Data Science
- Algorithms
- Algorithms and Data Structures
- Algorithms for Optimization
- The Arcane Algorithm Archive
- Competitive Programming Algorithms
- Competitive Programmer's Handbook
- Exact String Matching Algorithms
- How does B-tree make your queries fast?
- Introduction to Algorithms: A Creative Approach
- Planning Algorithms
- Principles of Algorithmic Problem Solving
- Purely Functional Data Structures
- Sequential and Parallel Data Structures and Algorithms: The Basic Toolbox
- Monte-Carlo Graph Search from First Principles
- Collision Detection
- Data Structures for Data-Intensive Applications: Tradeoffs and Design Guidelines
-
Vibe Coding and Spec-Driven Development
- Algorithms in C
- A First Course on Data Structures in Python
- Advanced Algorithms
- Advanced Algorithms
- Advanced Algorithms
- Advanced Algorithm Design
- Advanced Algorithm Design
- Advanced Data Structures
- Algorithms - Peled* **[pdf]**
- Algorithms, 4th Edition
- Algorithms Books
- Algorithms for Optimization
- Algorithms for Decision Making
- Algorithms for Validation
- Algorithms Design (in C)
- Algorithms for Inference
- Algorithms for Massive Data
- An Open Guide to Data Structures and Algorithms
- Approximation Algorithms
- Book of All-pairs Shortest Paths
- Clever Algorithms: Nature-Inspired Programming Recipes
- Collision Detection
- Data Structure Visualizations
- Data Structures & Algorithm Analysis
- Data Structures & Algorithms in C++, Second Edition
- Design and Analysis of Algorithms
- Essential Coding Theory
- Exact String Matching Algorithms
- Introduction to Multi-Armed Bandits
- Kalman Filter from the Ground Up
- Lecture Notes on Quantum Algorithms
- Let's build a Full-Text Search engine
- Matters Computational: Ideas, Algorithms, Source Code
- Notes on Algorithms
- Notes on Data Structures and Programming Techniques
- Notes on Randomized Algorithms
- Planning Algorithms
- Problem Solving with Algorithms and Data Structures using Python
- The Skyline algorithm for packing 2D rectangles
- Think Data Structures
- Tim Roughgarden's Courses and Lecture Notes
- Algorithmic Game Theory
-
Bloom Filters
-
Diff Algorithms
-
-
Command Line and Tools
-
Computer Games AI
-
Linux command line
-
Curl
-
Nix
- Wombat’s Book of Nix
- NixOS & Flakes Book - An unofficial book for beginners by *Ryan Yin*
-
Diff Algorithms
-
-
Art
-
Computer Games AI
-
Diff Algorithms
-
-
Biology
-
Computer Games AI
-
Diff Algorithms
-
-
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
-
Programming <span id="programming-competitions">
- A Compiler Writing Journey
- A practical introduction to parsing
- Build Your Own Lisp
- Part 1
- Part 2
- 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
- Graal Truffle tutorial
- 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
-
-
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
- An Introduction to Computer Networks
- Computer Networks: A Systems Approach
- Concurrent Servers
- HTTP2 Explained
- HTTP/3 explained
- Implementing fast TCP fingerprinting with eBPF
- Implementing TCP In Rust
- Part 1: Ethernet & ARP
- Part 2: IPv4 & ICMPv4
- Part 3: TCP Basics & Handshake
- Part 4: TCP Data Flow & Socket API
- Part 5: TCP Retransmission
- Networking 101
- Visual guide to SSH tunneling and port forwarding
-
-
Cryptography
-
Programming languages
-
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
- Practical Go Lessons
- Ranging over functions in Go 1.23
- The Y combinator in Go with generics
- Go HTTPS servers with TLS
- Go socket servers with TLS
-
Simulations
-
Assembly
- A fundamental introduction to x86 assembly programming
- Part 0 - Setup and First Steps
- Part 1 - Metaprogramming in Flat Assembler
- Part 2 - We're Writing a Virtual Machine
- Part 3 - Arithmetic and Logic
- RISC-V Assembly Programming
- x86-64 Assembly Language Programming with Ubuntu
- Part 1: Hello
- An interactive guide to x86-64 assembly
- Easy RISC-V
- FFmpeg School of Assembly Language
- Learn Assembly Language - NASM x86 assembly language tutorial on Linux.
- Programming from the Ground Up
- Learn x86-64 assembly by writing a GUI from scratch
- Part 4 - More About Jumps Than You Wanted To Know
- NASM Tutorial
- PC Assembly Language
- RISC-V Assembly Programming
- The Art of Assembly Language
- Understanding Windows x64 Assembly
- x86-64 Assembly Language Programming with Ubuntu
-
Basic
-
C
- Compiler Options Hardening Guide for C and C++
- Coroutines in C
- Demystifying bitwise operations, a gentle C tutorial
- Object-Oriented Programming with ANSI-C - Tobias Schreiner* **[pdf]**
- So You Think You Know C?
- Writing a Simple Garbage Collector in C
- How to implement a hash table (in C)
- Implementing smart pointers for the C programming language
- Extreme C
- Few lesser known tricks, quirks and features of C
- Hacking Coroutines into C
- Hacktical C: A practical hacker's guide to the C programming language
- How to implement a hash table (in C)
- I Write Type Safe Generic Data Structures in C
- Modern C
- The C Book
- The Lost Art of Structure Packing
-
C++ <span id="cpp">
- 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
- 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 14: Multiple landing pads & the teachings of the guru
- Part 8: Two-phase handling
- Part 20: Running destructors while unwinding
- Appendix II: Metaclasses and RTTI on C++
- Appendix III: RTTI and exceptions orthogonality
- C++ Core Guidelines
- C++20 Coroutines: sketching a minimal async framework
- C++20 Concepts: The Definitive Guide
- Effective Modern C++
- Fiber in C++: Understanding the Basics
- Hacking C++
- Learn C++
- Learning to read C++ compiler errors: Not a legal base class
- Microsoft C++ language documentation
- More C++ Idioms
- My Favorite C++ Pattern: X Macros
- Philosophy of coroutines
- The Boost C++ Libraries
- 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
-
D
-
Haskell
-
Java
-
JavaScript
-
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
- Babashka Babooka: Write Command-Line Clojure
- Part 1: ECS and Metalinguistic Abstraction
- Part 2: Dungeons and Interfaces
- Learn Lisp The Hard Way
- On Lisp
- Practical Common Lisp
- The Common Lisp Cookbook
- Typed Lisp, A Primer - hassy*
- Part I
- Part II
- Programming Languages: Application and Interpretation
- (learn 'scheme)
-
Nim
-
OCaml
-
Oberon-2
-
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
- 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
- Think Python, 3rd Edition
- Data Structures and Information Retrieval in Python
- From Python to Numpy
- How to Think Like a Computer Scientist: Interactive Edition
- Introduction to Computer Programming with Python
- Introduction to Python Programming
- Invent With Python
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- How Python Asyncio Works: Recreating it from Scratch
- Modern Good Practices for Python Development
- NumPy Illustrated: The Visual Guide to NumPy
- Pandas Illustrated: The Definitive Visual Guide to Pandas
- NumPy Illustrated: The Visual Guide to NumPy
- Test-Driven Development with Python
- 30 Days Of Python
- Composing Programs
- Computational Discovery on Jupyter
- Audio, Video, and Webcams in Python (Lost Chapter from Automate the Boring Stuff)
- Automate the Boring Stuff with Python
- Beyond the Basic Stuff with Python
- Cracking Codes with Python
- Invent Your Own Computer Games with Python
- Making Games with Python & Pygame
- Python Programming Exercises, Gently Explained
- Scratch 3 Programming Playground
- The Big Book of Small Python Projects
- 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
- Planet Python
- Python & OpenGL for Scientific Visualization
- Python Asyncio: The Complete Guide
- Python Courses
- Python Data Science Handbook
- Python Design Patterns
- Python for Data Analysis, 3rd edition
- Python Programming for Economics and Finance
- Scientific Visualization: Python + Matplotlib
- The Ultimate Guide to Error Handling in Python
- Think Python, 2nd Edition
- Wicked Python trickery - dynamically patch a Python function's source code at runtime
-
Regular expressions
-
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
- Async Rust in Three Parts
- Asynchronous Programming in Rust
- Beginner's guide to Error Handling in Rust
- C++ to Rust Phrasebook
- Clear explanation of Rust’s module system
- Comprehensive Rust
- Dependency Injection like Bevy Engine from Scratch
- Effective Rust
- Exploring ways to make async Rust easier
- Learning Async Rust With Entirely Too Many Web Servers
- No-Panic Rust: A Nice Technique for Systems Programming
- Rust Atomics and Locks: Low-Level Concurrency in Practice
- Rust data structures with circular references
- Rust Language Cheat Sheet
- Testing multiple implementations of a trait in Rust
- Things you can’t do in Rust (and what to do instead)
-
Smalltalk
- Smalltalk Resources - A list of free smalltalk books.
- Smalltalk Resources - A list of free smalltalk books.
-
Forth
-
Odin
-
Ada
-
Operating Systems Development
-
CMake
-
Bash
-
C# <span id="c-sharp">
-
Cuda
-
Datalog
-
Erlang
-
Jai
-
Lean
-
R
- Big Book of R
- Efficient R Programming
- R for Data Science (2e) - Rundel*, *Garrett Grolemund*
-
Ruby
-
Ya
-
Zig
-
-
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 8 - Source and Symbols
- Part 7 - Disassembly
- Debugging with GDB
- How Does a C Debugger Work?
- 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
-
-
Databases
-
WebGPU
-
Databases Development
- 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
- B-trees and database indexes
- Build Your Own Database From Scratch in Go
- Part 1: Listing tables
- Part 2: Scanning large tables
- Part 3: SQL parsing 101
- Part 4: reading tables metadata
- Part 5: Evaluating queries
-
NoSQL
-
SQL
- Mode's SQL Tutorial
- SQL Tutorial - Master SQL quickly and effectively with clear concepts, hands-on examples, and interactive quizzes.
- SQL for the Weary
- SQLBolt - Learn SQL with simple, interactive exercises.
- SQLZap - Learn SQL with for Free.
- MySQL for Developers
- The Internals of PostgreSQL
- Oracle Tutorial
-
-
Design Patterns
-
WebGPU
-
SQL
- Building abstractions using higher-order functions
- Data Engineering Design Patterns (DEDP)
- Data-Oriented Design
- Design Patterns & Refactoring
- Decorators and Functional programming
- Design Patterns You Should Unlearn in Python: Part1
- Design Patterns You Should Unlearn in Python: Part2
- Most Design Patterns Are Just Dependency Injection in Disguise
- Part 1
- Part 2
- Part 3
- The expression problem and Rust
- From design patterns to category theory
- Game Programming Patterns
- Indices, not Pointers
- Multiple Dispatch Series
- Plugins Series
-
-
Distributed systems
-
WebGPU
-
SQL
- Distributed systems for fun and profit
- Implementing Raft
- Linearizability in distributed systems
- Notes on Theory of Distributed Systems
- Patterns of Distributed Systems
- Principles of Blockchains
- Rewriting Kafka in Rust Async: Insights and Lessons Learned in Rust
- Testing Distributed Systems - Curated list of resources on testing distributed systems by *Andrey Satarin*.
-
-
Electronics
-
Emulators and Virtual Machines
-
WebGPU
-
SQL
-
-
Game Programming
-
WebGPU
-
Game Engines
-
SQL
- CSCI 181G PO: Game Engine Programming Course
- Game Engineering
- How to program a text adventure in C
- Isometric Projection in Game Development
- Isometric Tutorials
- Procedural Content Generation in Games
- Part 1
- Part 2
- Part 3
- Part 4
- Part 5
- Part 6
- Programming Vehicles in Games
- Retro Rampage - A tutorial series in which you will learn how to build a Wolfenstein-like game from scratch, in Swift by *Nick Lockwood*
- Roguelike Tutorial - In Rust
- Terrain programmig
- The guide to implementing 2D platformers
- A First-Person Game in 2KB
-
Game Physics
- 2D Cloth Simulation in Odin with raylib
- iforce2d - A collection of programming resources, mainly focusing on 2D games development with Box2D.
- Ten Minute Physics
-
-
GUI Programming
-
Game Engines
-
Lists of programming projects to try to implement
-
-
Hardware
-
Game Engines
-
Lists of programming projects to try to implement
-
-
Logical Games
-
Game Engines
-
Lists of programming projects to try to implement
-
-
Low Level Stuff
-
Game Engines
-
Lists of programming projects to try to implement
- A gentle introduction to two's complement
- Computer Science from the Bottom Up
- CPU performance optimization guide - Preface
- Part 1
- Floating Point Visually Explained
- Group Borrowing: Zero-Cost Memory Safety with Fewer Restrictions
- Memory Management Reference
- Performance Analysis and Tunning on Modern CPUs
- Pointer Tagging in C++: The Art of Packing Bits Into a Pointer
- Stack frame layout on x86-64
- Part 1: C
- Part 2: C++ and RAII
- Part 3: C++ Smart Pointers
- Part 4: Rust Ownership and Borrowing
- Part 5: Fighting with Rust
- Part 6: Basic Garbage Collection
- Part 7: Advanced Garbage Collection
- What Every Computer Scientist Should Know About Floating-Point Arithmetic
- Matrix Multiplication Optimization Article Series
- Advanced Matrix Multiplication Optimization on Modern Multi-Core Processors
- Advanced Matrix Multiplication Optimization on NVIDIA GPUs
- Matrix Core Programming on AMD CDNA3 and CDNA4 architecture
-
GPU and TPU Programming
-
SIMD programming
-
-
Math
-
Game Engines
- 3Blue1Brown lessons
- A Gentle Introduction to Tensors
- A Programmer's Introduction to Mathematics
- An Infinite Descent into Pure Mathematics
- An Infinitely Large Napkin
- An introduction to graph theory
- Books by *Dr. Kenneth Kuttler*
- Euclid's Elements
- Everything You Always Wanted To Know About Mathematics
- 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
-
Algebra
- Algebra: An Elementary Text-Book
- Intermediate Algebra
- Linear Algebra Done Wrong
- Immersive Linear Algebra - Möller*
- Abstract Algebra - Tong Siu*, notes by *Dongryul Kim* **[pdf]**
- Advanced Modern Algebra
- Algebra: An Elementary Text-Book
- Algebraic Combinatorics
- Introduction to Abstract Algebra
- Learn you Galois Fields for Great Good
- Lectures on Abstract Algebra
- The Rising Sea: Foundations Of Algebraic Geometry Notes
- Graphical Linear Algebra
- Interactive Linear Algebra
- Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares
- Linear Algebra
- Linear Algebra, Fourth edition
- Linear Algebra Done Right
- Linear Algebra for Computer Science
- Linear Algebra Lecture Notes by Terence Tao
- Notes for Computational Linear Algebra
- Numerical Linear Algebra
- The Little Book of Linear Algebra - Tam Nguyen*
-
Calculus
- Calculus Made Easy
- Introduction to Calculus
- Advanced Multivariable Calculus
- Calculus
- Calculus 1 for Honours Mathematics
- Calculus Made Easy
- Calculus with Julia
- CLP Calculus Textbooks
- Complex Analysis
- Problems and Solutions
- Derivatives, Gradients, Jacobians and Hessians
- Elementary Calculus
- Harmonic Function Theory
- Integration Theory
- Multivariable Calculus Lectures
- Principles of Mathematical Analysis
- Real Analysis
- Lectures on Vector Calculus
- Vector and Complex Calculus for the Physical Sciences
- Vector Calculus
- Vector Calculus
- Vector Calculus
-
Category Theory
- Category Theory for Programming
- Category Theory: Lecture Notes and Online Books - collection by *Peter Smith*
- Seven Sketches in Compositionality: An Invitation to Applied Category Theory
- Category Theory for Programmers
- Category Theory Illustrated
- Category Theory in Programming
- Pragmatic Category Theory
- Seven Sketches in Compositionality: An Invitation to Applied Category Theory
-
Probability and Statistics
- Bayes Rules! An Introduction to Applied Bayesian Modeling
- Digital textbook on probability and statistics
- Introduction to Probability for Data Science
- Probability and Statistics Cookbook
- Advanced Data Analysis from an Elementary Point of View
- Advanced Probability - Nielsen* **[pdf]**
- All of Statistics: A concise Course in Statistical Inference
- AnyDice
- Bayesian Data Analysis, Third Edition
- Digital textbook on probability and statistics
- Elementary Probability for Applications
- Fundamentals of Probability
- Introduction to Modern Statistics (2nd Ed) - Rundel and Johanna Hardin*
- Probability 101, the intuition behind martingales and solving problems with them
- High-Dimensional Probability: An Introduction with Applications in Data Science
- High-Dimensional Statistics - Christian Hütter*
- Introduction to Modern Statistics (2nd Ed) - Rundel and Johanna Hardin*
- Lecture Notes on Probability
- Lecture Notes on Probability Statistics and Linear Algebra
- Markov Chains for programmers
- Modern Discrete Probability: An Essential Toolkit
- Notes on Counting and Rapidly Mixing Markov Chains
- Notes on Probability
- One Thousand Exercises in Probability
- OpenIntro Statistics, Fourth Edition - Rundel*, and *Christopher D Barr* **[pdf]**
- Probability and Statistics: The Science of Uncertainty, Second Edition
- Probability and Statistics for Data Science - Granda* **[pdf]**
- Probability for Computer Scientists
- Probability for Computer Scientists
- Probability in High Dimension
- Probability in High Dimensions
- Probability Theory
- Other course materials
- Probability Theory & Computational Mathematics
- Probability with Engineering Applications
- Probability: Theory and Examples
- Seeing Theory - a book about statistics with interactive visualizations by *Daniel Kunin, Jingru Guo, Tyler Dae Devlin, and Daniel Xiang*
- Statistical Inference, Second Edition
- Statistics Handbook
- Stochastic Processes
- The Truth About Linear Regression
-
Theoretical Computer Science
- Busy Beavers! - An interactive intro to Computability Theory
- Elements of Programming
- Foundations of Computer Science
- Mathematics and Computation
- Notes on Discrete Mathematics
- Type Theory & Functional Programming
- What Can Be Computed?: A Practical Guide to the Theory of Computation
- An Introduction to Abstract Mathematics
- Analytic Combinatorics
- Busy Beavers! - An interactive intro to Computability Theory
- Computational Complexity: A Modern Approach
- Discrete Mathematical Modeling
- Discrete Mathematics
- Discrete Mathematics: An Open Introduction, 4th Edition
- Discrete Mathematics and Its Applications, Eighth Edition
- Edsger W. Dijkstra Archive
- Elements of Programming
- Foundations of Computer Science
- Great Ideas in Theoretical Computer Science
- Introduction to Theoretical Computer Science
- Introduction to University Mathematics
- Mathematical Foundations of Computing
- Mathematical Techniques for Algorithm Analysis
- Mathematical Techniques for Computer Science
- Mathematics for Computer Science
- Mathematics for Computer Science
- Mathematics for Computer Science
- Notation as a Tool of Thought
- Notes on Computational Complexity Theory
-
Topology
-
SIMD programming
- Reductive Groups
- Course notes by Kenneth R. Davidson
- Measure Theory
- Nest Algebras
- Real Analysis
- Rigorous Calculus
- Course notes by Rajen Shah
- Mathematics of Machine Learning
- Modern Statistical Methods
- Principles of Statistics
- Statistical Modelling
- Course Notes by Richard Weber
- Markov Chains
- Mathematics of Operational Research
- Optimization
- Optimization and Control
- Probability
- Statistics
- Time Series
- Course notes by Tom Leinster
- Category theory
- Fourier analysis
- Galois theory
- General topology
- Linear algebra
- Foundations of Mathematics
- How do undergraduates do mathematics?
- Intermediate Calculus and Linear Algebra
- Introduction to Applied Mathematics
- Introduction to Stochastic Calculus - Ha*
- Lecuture Notes by Aditya Guntuboyina
- Analysis of Time Series
- Introduction to Probability at an advanced level
- Theoretical Statistics
- Lecture Notes by Ian Tice
- A crash course in complex analysis
- A crash course in interpolation theory
- Derivation of the fluid equations
- Fluid-solid interaction
- From Stokes flow to Darcy's law
- Gamma-convergence of the Ginzburg-Landau energy
- Linear constant coefficient ordinary differential systems
- Monstrous Functions
- Quasilinear symmetric hyperbolic systems
- Calculus 1
- Complex Analysis with Applications
- Functional Analysis
- Measure Theory
- Topics in Mathematical Physics
- Homeworks and other courses materials
- Lecture Notes by John K. Hunter
- Applied Analysis
- Applied Mathematics
- Asymptotics
- Introduction to Analysis
- Measure Theory
- Partial Differential Equations
- Lecture Notes by Omer Tamuz
- General Equilibrium Theory
- Graduate Real Analysis
- Multivariate Calculus
- Probability: Random Walks
- Probability
- The Value and Cost of Information
- Undergraduate Game Theory
- Lecture Notes by Seongjai Kim
- Calculus Lectures
- Fundamentals of Numerical Linear Algebra
- Heterogeneity in Computational Environments
- Linear Algebra with Applications
- Mathematical Foundations of Machine Learning
- Numerical Analysis and Applications with Music
- Numerical Methods for Partial Differential Equations
- Programming Basics and AI with Matlab and Python
- Math Alive - lecture notes on:
- Math Planet
- Mathematical Methods for Computer Vision, Robotics, and Graphics
- Mathematical Methods for Physics
- Problem sheets and solutions
- Mathematics for the Physical Sciences
- Menthal Math Tricks
- Notes on Mathematics For Engineers
- Open Mathematics Depository
- Open textbooks for undergraduate mathematics
- Precalculus
- Real Not Complex - Discover Incredible FREE Resources to Study MathemF comilatics.
- Modular Functions and Modular Forms
- A Gentle Introduction to the Art of Mathematics
- Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning
- An Infinite Descent into Pure Mathematics
- An Introduction to Tensors for Students of Physics and Engineering
- Approved Textbooks
- Books and papers by *Professor Dimitry P. Bertsekas*
- Books of Shlomo Sternberg
- Advanced Calcululs
- Dynamical Systems
- Lie algebras
- Semi-classical analysis
- Semi-Riemann Geometry and General Relativity
- Theory of functions of a real variable
- Courses and lecture notes by Jeffrey Robert Chasnov
- Applied Linear Algebra and Differential Equations
- Calculus for Engineers
- Differential Equations for Engineers
- Differential Equations: Review with YouTube Examples
- Differential Equations
- Fibonacci Numbers and the Golden Ratio
- Flow Around a Cylinder
- Mathematical Biology
- Matrix Algebra for Engineers
- Numerical Methods for Engineers
- Numerical Methods
- Scientific Computing
- Vector Calculus for Engineers
- Cournse Notes and Books by Curtis T. McMullen
- Complex Dynamics and Renormalization
- Renormalization and 3-Manifolds which Fiber over the Circle
- Advanced Complex Analysis
- Advanced Real Analysis
- Algebra and Dynamics
- Complex Analysis on Riemann Surfaces
- Ergodic theory, geometry and dynamics
- From Conformal Invariants to Percolation
- Probability Theory
- Real Analysis
- Riemann surfaces, dynamics and geometry
- Sets, Groups and Knots
- Topology
- Course notes by J.S. Milne
- Abelian Varieties
- Algebraic Geometry
- Algebraic Number Theory
- Class Field Theory
- Complex Multiplication
- Fields and Galois Theory
- Group Theory
- Lectures on Etale Cohomology
- Lie Algebras, Algebraic Groups, and Lie Groups
- Street-Fighting Mathematics - Course teaches the art of guessing results and solving problems without doing a proof or an exact calculation by *Sanjoy Mahajan*
- Teaching notes by Oliver Knill
- Differential Geometry
- Introduction to Calculus
- Linear Algebra And Vector Calculus
- Linear Algebra And Vector Calculus I
- Linear Algebra And Vector Calculus II
- Multivariable Calculus
- Probability Theory
- Teaching Mathematics with a Historical Perspective
- Texts, exercises, problems and lecture notes by John Erdman
- Exercises and Problems in Calculus
- A ProblemText in Advanced Calculus
- Exercises and Problems in Linear Algebra
- Companion to Real Analysis
- Functional Analysis and Operator Algebras: An Introduction
- The Lost Art of Logarithms
- The Mathematics in Toys and Games
- The Matrix Cookbook
- The Tensor Cookbook
- Trigonometry
- Visual Complex Analysis
-
Differential Equations
-
Game Theory
-
General problem solving
-
Geometry
- Euclidean and Non-Euclidean Geometries: Development and History
- Geometry: Euclid and Beyond
- The Foundations of Geometry
- The Four Pillars of Geometry
- Differential Geometry: A First Course in Curves and Surfaces
- Functional Differential Geometry
- Introduction to Smooth Manifolds
- Lecture Notes on Differential Geometry
- Manifolds and Differential Forms
- Open Problems In Geometry Of Curves And Surfaces
- What is differential geometry: curves and surfaces
- Planes in 3D space
-
Graph Theory
-
Mathematical Finance
-
Mathematical Logic
-
Measure Theory
-
Number theory
-
Operations Research
-
Proofs
-
-
Multithreading and Concurrency
-
Topology
- A C++17 Thread Pool for High-Performance Scientific Computing
- A Science of Concurrent Programs
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- A Science of Concurrent Programs
- Implementing simple cooperative threads in C
- Introduction to Parallel Computing Tutorial
- Lockfree Programming: A Mental Model
- POSIX Threads Programming
- Reading and writing - Article series on race conditions by *James Coglan*
- The Deadlock Empire
- The Little Book of Semaphores
- What every systems programmer should know about concurrency
-
-
Operating Systems
-
Topology
- A Journey in Creating an Operating System Kernel
- Linux Insides
- Making our own executable packer
- Operating Systems: Three Easy Pieces - Dusseau* and *Andrea C Arpaci-Dusseau*
- Systems Programming: Lecture Notes
- The Art of Unix Programming
- Unix as IDE
- Advanced Linux Programming
- Writing an OS in Nim
- A Commentary On The Sixth Edition Unix Operating System
- Exploring Operating Systems
- How to write Rust in the kernel
- Part 1
- Part 2
- Part 3
- My Own Private Binary: An Idiosyncratic Introduction to Linux Kernel Modules
- Notes on Operating Systems
- Systems Programming: Lecture Notes
- The Art of Unix Programming
- The Linux Documentation Project
- The Linux Kernel Module Programming Guide
- The UNIX-HATERS Handbook
- Unix as IDE
-
Operating Systems Development
- Writing a Simple Operating System — from Scratch
- Part 1 - Project Setup
- Part 2 - Kernel in virtual addresses
- Part 3 - Managing free memory
- OSDev.org
- A Journey in Creating an Operating System Kernel
- Baking Pi – Operating Systems Development
- Making a RISC-V Operating System using Rust
- Operating System development tutorials in Rust on the Raspberry Pi
- Operating System in 1,000 Lines
- Operating Systems: From 0 to 1
- The little book about OS development
- Writing a Simple Operating System — from Scratch
- Writing an OS in Nim
-
-
Photography
-
Topology
-
Operating Systems Development
-
-
Physics
-
Topology
- Motion Mountain - A free physics textbook
- Physics for Mathematicians
- Relativity: A Modern Primer
-
Simulations
-
Operating Systems Development
- Structure and Interpretation of Classical Mechanics
- An Intuitive Guide to Maxwell’s Equations
- A free introduction to quantum computing and quantum mechanics
- An introduction to Lagrangian and Hamiltonian mechanics
- Applications of Classical Physics
- IBM Quantum Learning - Learn the basics of quantum computing.
- Introduction to Special Relativity, Quantum Mechanics and Nuclear Physics for Nuclear Engineers
- Motion Mountain - A free physics textbook in 5 volumes.
- Open textbooks for undergraduate physics
- Orbital Mechanics
- Percolation Theory
- Physics for Mathematicians
- Quantum Computation Lecture Notes
- Quantum Mechanics
- Quantum Mechanics for Engineers
- Relativity: A Modern Primer
- Structure and Interpretation of Classical Mechanics
- The Feynman Lectures on Physics
- Physics-Based Simulation
-
-
Retrocomputing
-
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
- How pseudo-3d racing games work
- jsgroth's blog
- Learn Multiplatform Assembly Programming
- Neil Parker's Apple II page
- A Guide to the Graphics of the Sega Mega Drive / Genesis
- BASIC Code
- Books by Fabien Sanglard
- Easy 6502
- How PlayStation Graphics & Visual Artefacts Work
- Mark Moxon's Software Archaeology - Fully documented source code for Elite, Revs, Lander, Aviator and more
- MarkeyJester’s Motorola 68000 Beginner’s Tutorial
- Michael Abrash’s Graphics Programming Black Book, Special Edition
- NeHe OpenGL Tutorials
- Patai Gergely's Website
- Porting Stunt Car Racer to the Commodore Plus/4
- Porting Stunt Car Racer to the Apple II
- Pushing the Boundaries of C64 Graphics with NUFLIX
- Portals and Quake
- Programming specs for the GBA and NDS hardware
- Retro Game Coders
- The Annotated "Programming the Nintendo GBA : The Unofficial Guide
-
Adevent of code on retro machines
-
Books by Fabien Sanglard
-
DOS
-
Apple II
-
Commodore 64
- An Afterlife User's Guide to the C64
- C64 OS Programmer's Guide
- Commodore Bookmarks - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community.
- The Lost Ways of Programming: Commodore 64 BASIC
-
CP/M <span id="cpm">
-
Game Boy
-
Mega 65
-
NES
- Famicom Party: Making NES Games in Assembly
- NesDev.org - A community of homebrew game developers and hardware researchers for the Nintendo Entertainment System (NES) and other retro consoles.
-
ZX Spectrum and Z80 CPU
-
-
Reverse engineering
-
Books by Fabien Sanglard
-
DOS
-
ZX Spectrum and Z80 CPU
-
-
Robotics
-
DOS
-
Books by Fabien Sanglard
-
ZX Spectrum and Z80 CPU
-
-
SIMD programming
-
DOS
-
Books by Fabien Sanglard
-
-
Text editors
-
Books by Fabien Sanglard
-
DOS
-
Emacs
- Part 1: Foundations
- Part 2: Projects and Keybindings
- How to learn Emacs
- Use GNU Emacs: The Plain Text Computing Environment
- A Beginner's Guide to Extending Emacs
- Part 1: Foundations
- Part 2: Projects and Keybindings
- System Crafters Emacs Guides
- Emacs Lisp Elements
- Part 1: The Basics
- Part 2: Lisp Primer - Why Parentheses Matter
- Part 3: Customizing and Extending Emacs
- C/C++ Development Environment for Emacs
- How I am deeply integrating emacs
- Use GNU Emacs: The Plain Text Computing Environment
- Part 3: LSP & Tree-sitter
-
Vim
-
ZX Spectrum and Z80 CPU
-
-
Unicode
-
Vim
- Programming with Unicode
- The Absolute Minimum Every Software Developer Must Know About Unicode in 2023
- Unicode programming, with examples
- Programming with Unicode
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets
- The Absolute Minimum Every Software Developer Must Know About Unicode in 2023
-
-
Version control tools
-
Web programming
-
Vim
- A book about using Node.js
- FastCGI — The Forgotten Treasure
- Single page apps in depth
- The Flask Mega-Tutorial
- FastCGI — The Forgotten Treasure
- A book about using Node.js
- A masochist’s guide to web development
- Implementing React From Scratch
- Intro to Web Dev
- Let's build a browser engine!
- Part 1
- Part 2
- Tania Rascia'a Web Development Deep Dives
- A Complete Guide to CSS Concepts and Fundamentals
- An Introduction to GraphQL
- Design for Developers: Specific Steps to Improve Your Website Design
- Everything I Know as a Software Developer Without a Degree
- How to Set up a Mac for Development
- How to Set Up webpack 5 From Scratch
- How to Structure and Organize a React Application
- How to Use React, the JavaScript Framework
- How to Use Redux and React
- How to Use Vue, the JavaScript Framework
- Setting Up Virtual Hosts
- The Event Loop, Callbacks, Promises, and Async/Await in JavaScript
- The Copenhagen Book - A general guideline on implementing auth in web applications.
- The Odin Project - An open-source curriculum for learning full-stack web development.
- Web Browser Engineering
- What happens when you type google.com into your browser's address box and press enter?
-
CSS
-
Django
-
HTML
-
-
Other
-
CSS
- Agner Fog's Website
- Beej's Guides
- Explained from First Principles
- How These Things Work - a book about abstraction
- Rocket and Space Technology
- Software Technical Writing: A Guidebook
- 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
-
Other Blogs
- Explained from First Principles
- Improve Your Social Skills
- Project Oberon: The Design of an Operating System, a Compiler, and a Computer
- Rocket and Space Technology
- Teach Yourself Computer Science
- The Art of HPC
- The Art of Insight in Science and Engineering: Mastering Complexity
- The Missing Semester of Your CS Education
- Vjeux Blog
-
-
Other lists
-
CSS
- Build Your Own X
- Free Computer Books
- Free Tech Books
- GPU Optimization for GameDev
- Project Based Learning
- Electronic References - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online.
-
Other Blogs
-
-
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
- Coderbyte
- CodingBat - A free site of live coding problems to build coding skill in Java and Python.
- Daily Programmer
- Edabit
- Exercism
- Hacker Earth
- Kaggle - ML specific.
- LabEx - Learn Linux, DevOps & Cybersecurity with Hands-on Labs.
- Learn OCaml
- LeetCode
- Rosalind - A platform for learning bioinformatics through problem solving.
- Skilled.dev
- Sphere Online Judge
- SQLPad
- takeUforward
- Top Coder
- Algorithms for Competitive Programming
- Competetive Programming
- Competitive Programming in Python: 128 Algorithms to Develop your Coding Skills - Jênn Vie*
-
-
Demoscene
-
SQL
- 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 2: Texturing in a 64kB intro
- Part 3: Procedural 3D mesh generation in a 64kB intro
-
-
DevOps
-
Digital Signal Processing
-
SQL
- Online Textbooks and Course Materials by Julius Orion Smith III
- AI Audio Signal Processing Reading List
- Audio Signal Processing in FAUST
- Intoroduction to Digital Filters
- Physical Audio Signal Processing
- Spectral Audio Signal Processing
- PySDR: A Guide to SDR and DSP using Python
- Software-Defined Radio for Engineers
- The Scientist and Engineer's Guide to Digital Signal Processing
-
-
General Programming
-
Game Physics
-
Lists of programming projects to try to implement
-
-
Data Science
-
WebGPU
- Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies
- Introduction to Data Science: Data Wrangling and Visualization with R
- Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies
- Data Science at the Command Line
- 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
- Towards Data Science - The world’s leading publication for data science, AI, and ML professionals.
-
-
Fluids Simulation
-
Optimization
-
Geographic Information Systems
-
Lists of programming projects to try to implement
-
-
Information TheoryDiscovering observers
-
Lists of programming projects to try to implement
-
-
IQ Tests
-
Lists of programming projects to try to implement
-
-
Music Theory
-
Topology
-
-
System programming
-
ZX Spectrum and Z80 CPU
-
-
Technical Writing
-
Testing
-
ZX Spectrum and Z80 CPU
-
-
Personal Websites and Blogs
-
AI <span id="ai-blogs">
-
C++ <span id="cpp-blogs">
- Alf on programming (mostly C++)
- Andrzej's C++ Blog
- Asymmetric Transfer
- Bannalia: trivial notes on themes diverse
- Barry's C++ Blog
- Borislav Stanimirov's Website
- Braden Ganetsky's Website
- C++ Metaprogramming
- C++ on a Friday
- C++ Stories
- C++ Truths
- Crascit's Blog
- Cristian Adam's Blog
- Eric Niebler's Blog
- Fluent C++
- foonathan::blog()
- Functional C++
- Just Software Solutions' Blog
- Lu's blog
- Manu Sanchez's Blog
- Marshall's C++ Musings
- Modernes C++
- Molecular Musings
- Moody Camel
- Nibble Stew's Blog
- null program
- Peter Dimov'a Blog
- Preshing on Programming
- Programming Nonsense
- ReachableCode
- Sandor Dargo's Blog
- Simplify C++
- The Old New Thing: Practical development throughout the evolution of Windows
- The Sparkelling Bedangler
- Thinking Asynchronously in C++
- vector-of-bool
- Victor Zverovich's Blog
- Video Cortex
- Vishal Chovatiya's Blog
- Vittorio Romeo's Blog
- Vorbrodt's C++ Blog
-
Game and Graphics Programming <span id="game-and-graphics-programming-blogs">
- 30fps.net: Computer Graphics & Programming with Pekka Väänänen
- A small freedom area
- Adam Sawicki's Blog
- Alan Zucconi's Website - Game Development, Shader Coding & Artificial Intelligence.
- Anton Schreiner's Blog
- Aras Pranckevičius's Website
- Bits, pixels, cycles and more
- Bumbershoot Software Blog
- c0de517e's weblore
- Chema Guerra's Blog
- Cyanilux Game Dev Blog & Tutorials
- DirectX Developer Blog
- Eric Arnebäck's Blog
- Eurographics Digital Library
- Evolve Benchmark
- Fabien Sanglard's Website
- Forward Scattering
- Frozen Fractal
- Graphics Programming weekly
- Ignacio Castaño's Blog
- imad's website
- Interplay of Light
- Irradiance Blog
- Jacco Bikker's Blog
- Jason Mcghee's Blog
- JMS55's Blog
- John Novak's Website
- lisyarus blog
- Martin Fuller's Graphics Ramblings
- Maister's Graphics Adventures - Kristian Arntzen*
- Matt Pharr’s blog
- Max Slater's Blog: Computer Graphics, Programming, and Math
- Maxime Heckel's Blog
- Moments in Graphics
- Nikolaos Papadopoulos' Blog
- Of Shaders & Triangles
- Pikuma's Blog
- Randy Gaul's Game Programming Blog
- RayLib Help
- Red Blob Games - Interactive visual explanations of math and algorithms, using motivating examples from computer games by *Amit Patel*
- Rendering Engine Architecture Conference - A conference about the craft of real-time rendering systems.
- Rubén Osorio's Blog
- Self Shadow
- Stephen Sherratt's Blog
- The Brain Dump
- The Code Corsair
- The Danger Zone
- The Journal of Computer Graphics Techniques
- The ryg blog
- wassimulato
- hexaquo
- Zero Radiance
-
Mixed Programming <span id="mixed-programming-blogs">
- Bradley Chatha's D Blog
- 0pfs
- A Random Walk Through Geek-Space
- Aaro Luomanen's Blog
- Alberto Ventafridda's Blog
- Amit's Thoughts
- Andreas Herrmann's Blog
- Andrew Gallant's Blog
- Andrew Healey's Blog
- Andrey Listopadov's Blog
- Anton Zhiyanov's Blog
- Arjun Sreedharan's Blog
- Artem Krylysov's Blog
- Austin Z. Henley's Blog
- Bartosz Milewski's Programming Cafe
- Beej's Home Page
- Chris Loy's Blog
- Chris Penner's Blog
- Chris Warbo's Blog
- Chuniversiteit
- Considerations on Codecrafting
- Dan Hollick's Blog
- Daniel Fedorin's Blog
- Daniel Hooper's Blog
- Daniel Lemire's Blog
- Dayvi Schuster's Blog
- Digital Grove
- Dissecting the Code
- Edoardo Putti's Blog
- Educated Guesswork
- Eli Bendersky's website
- Entropic Thoughts
- Evan Ovadia's Blog
- Fernando Borretti's Website
- Francesco Mazzoli's Blog
- Games by Mason
- Gerneral Protection Fault
- Giles' blog
- glfmn.io
- Interjected Future
- IT Hare on Soft.ware
- James Oswald's Blog
- Jan Wedekind's Blog
- Jamie Brandon's Blog
- Jari Komppa's Website
- Jaz's Blog
- Jens Gustedt's Blog
- Joe Mckay's Blog
- Jonathan Marler's Blog
- Julia Evans
- Karl Seguin's Blog
- Karl Zylinski'a Website
- KC Sivaramakrishnan's Blog
- Lei Xia's Blog
- Loris Cro's Personal Website
- Mario's Lab
- Martin Uecker's Blog
- MALTSEV.SPACE
- mcyoung
- Melatoni's Blog
- Mikael Zayenz Lagerkvist's Personal Website
- MonoidMusicianʼs Blog
- Nicholas Nethercote's Blog
- Nicolas Rinaudo's Blog
- Niko Matsakis's Blog
- NULL BITMAP
- NULL on error - Flipping bits whilst updating pixels by *Rodrigo Delduca*
- Omar Aflak's Blog
- Owen Shepherd's Blog
- Paul Smith's Blog
- Phil Eaton's Website
- Playing with code
- TinyRenderer: Software rendering in 500 lines of bare C++
- TinyCompiler: a compiler in a week-end
- TinyOptimizer: an optimizing compiler challenge
- Cursed fire or #define black magic
- author's GitHub
- Tiny renderer or how OpenGL works: software rendering in 500 lines of code
- Understandable RayTracing in 256 lines of bare C++
- KABOOM! in 180 lines of bare C++
- Least squares for programmers
- Probably Dance
- protty
- purplesyringa
- Racey Chan's Blog
- Rahman Sibahi's Blog
- Rahul Gopinath's Blog
- RasterGrid
- Reasonably Polymorphic
- Sam Rose's Blog
- Serge Skoredin's Blog
- Squadrick
- Stephen Diehl's Blog
- stuffwithstuff
- Syed Jafar Naqvi's Blog
- The If Works
- Theia Vogel's Blog
- Thomas Leonard's blog
- Vectorized
- Vladimir Makarov's Blog
- xnacly - blog
- Zaid Humayun's Blog
-
Math and Physics <span id="math-and-physics-blogs">
-
Performance and Optimization <span id="performance-and-optimization-blogs">
-
Web Development <span id="web-development-blogs">
- nullpt-rs blog
- Hugo Daniel's Blog
- JSLegendDev’s Substack - Web development, game development and their intersection.
-
Other Blogs
-
Programming Languages
Categories
Math
358
Programming languages
280
Personal Websites and Blogs
222
Computer Graphics
211
AI
117
Retrocomputing
74
Algorithms
73
Web programming
40
Compilers and Interpreters
39
Low Level Stuff
37
Operating Systems
37
Game Programming
31
Databases
30
Text editors
26
Competitions and Interview Preparation Websites
25
Command Line and Tools
23
Physics
23
Design Patterns
20
Debuggers
20
Computer Networks and Network Programming
20
Other
18
Other lists
15
Emulators and Virtual Machines
13
Multithreading and Concurrency
12
Distributed systems
10
Data Science
10
Digital Signal Processing
9
Robotics
9
Hardware
9
GUI Programming
9
General Programming
7
Reverse engineering
7
Cryptography
6
Unicode
6
Command line and tools
5
Logical Games
4
Demoscene
4
SIMD programming
3
System programming
3
Electronics
3
DevOps
3
Geographic Information Systems
3
Technical Writing
3
Biology
3
IQ Tests
2
Version control tools
2
Information TheoryDiscovering observers
2
Fluids Simulation
2
Optimization
2
Art
2
Photography
2
Testing
1
Music Theory
1
Sub Categories
SIMD programming
166
Mixed Programming <span id="mixed-programming-blogs">
102
Machine Learning
101
WebGPU
89
Programming <span id="programming-competitions">
88
SQL
77
Ray Tracing
77
Python
54
Game and Graphics Programming <span id="game-and-graphics-programming-blogs">
52
Vibe Coding and Spec-Driven Development
51
Topology
49
C++ <span id="cpp">
48
Linux command line
48
Lists of programming projects to try to implement
46
Operating Systems Development
43
Vim
42
Probability and Statistics
41
C++ <span id="cpp-blogs">
41
Zig
39
Game Engines
34
Computer Games AI
31
Theoretical Computer Science
29
ZX Spectrum and Z80 CPU
24
Rust
24
Algebra
23
Shaders
23
Diff Algorithms
22
CSS
22
Lisp dialects
22
Calculus
22
Assembly
21
Other Blogs
19
C
17
Emacs
16
Go
15
Math and Physics <span id="math-and-physics-blogs">
13
DOS
13
Databases Development
12
Geometry
12
Vulkan
9
Books by Fabien Sanglard
9
Proofs
8
Category Theory
8
Mathematical Finance
7
Graph Theory
7
Image Processing
6
Operations Research
6
JavaScript
6
Regular expressions
6
DirectX 12
6
Curl
5
Game Physics
5
OpenGL
5
Haskell
5
AI <span id="ai-blogs">
5
Forth
5
Mathematical Logic
5
Performance and Optimization <span id="performance-and-optimization-blogs">
5
Game Boy
4
Adevent of code on retro machines
4
Demoscene
4
GPU and TPU Programming
4
Jai
4
Odin
4
Commodore 64
4
Prolog
4
Apple II
3
R
3
Erlang
3
Web Development <span id="web-development-blogs">
3
Ada
3
Bloom Filters
3
CP/M <span id="cpm">
3
Creative Coding
2
Django
2
OCaml
2
Game Theory
2
Curves and Surfaces
2
Nix
2
Pascal
2
Smalltalk
2
Ruby
2
Measure Theory
2
Math <span id="math-competitions">
2
Number theory
2
NES
2
Java
2
Simulations
2
PostScript
2
Pyret
2
Metal
2
HTML
2
Lean
1
NoSQL
1
Oberon-2
1
Cuda
1
General problem solving
1
Mega 65
1
Bash
1
Datalog
1
Basic
1
Differential Equations
1
Nim
1
C# <span id="c-sharp">
1
Ya
1
CMake
1
Physics <span id="physics-competitions">
1
D
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