├── CONTRIBUTING.md ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution guidelines 2 | 3 | * First and most importantly those are my personal bookmarks and I will add submitted *book/article/tutorial* only if it seems interesting to me. If you disagree feel free to fork the repository. 4 | 5 | * Currently the list does not contain video *tutorials/courses* but only text ones. I currently have not decided whether to include video ones so avoid submitting such. 6 | 7 | * The official sites of different programming languages and other technologies are not accepted because they are an obvious starting point and can be found easily with a web search engine. 8 | 9 | * All resources have to be freely available on the internet by their authors. Links to pirate content are not accepted. 10 | 11 | * Make sure that submitted resource is not already included in the list. 12 | 13 | * Place the link in the appropriate section or make a new section if appropriate. 14 | 15 | * Keep resource titles and section titles in lexicographic order. 16 | 17 | * The pull request needs to have a descriptive title. 18 | 19 | * Make a separate pull request for each of the resources. 20 | 21 | * Use the format `[Title](link_to_resource)`. 22 | 23 | * Do not include trailing `/` character from the URL. 24 | 25 | * Add the names of the author(s) of the resource after the link in *italic* if known. 26 | 27 | * If the resource is multi-part series and the resource does not have an index section use the following format except the case that the parts are *too many*: 28 | ``` 29 | * Title 30 | * [Part 1](link_to_part_1) 31 | * [Part 2](link_to_part_2) 32 | ``` 33 | 34 | * If the title of the resource is not enough self-explanatory add a short description after it. 35 | 36 | * Write a [good](https://chris.beams.io/posts/git-commit) commit message. 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Programming, Math, Science 2 | 3 | This is a list of links to different freely available learning resources about computer programming, math, and science. 4 | 5 | ## Table of contents 6 | 7 | * [AI](#ai) 8 | * [Machine Learning](#machine-learning) 9 | * [Large Language Models](#large-language-models) 10 | * [Machine Learning Online Courses](#machine-learning-online-courses) 11 | * [Mathematics for Machine Learning](#mathematics-for-machine-learning) 12 | * [Reinforcement learning](#reinforcement-learning) 13 | * [Computer Games AI](#computer-games-ai) 14 | * [Vibe Coding and Spec-Driven Development](#vibe-coding-and-spec-driven-development) 15 | * [Algorithms](#algorithms) 16 | * [Bloom Filters](#bloom-filters) 17 | * [Date-time](#date-time) 18 | * [Diff Algorithms](#diff-algorithms) 19 | * [Art](#art) 20 | * [Biology](#biology) 21 | * [Command Line and Tools](#command-line-and-tools) 22 | * [Curl](#curl) 23 | * [Linux command line](#linux-command-line) 24 | * [Nix](#nix) 25 | * [Competitions and Interview Preparation Websites](#competitions-and-interview-preparation-websites) 26 | * [Math](#math-competitions) 27 | * [Preparation Resources](#math-competitions-preparation) 28 | * [Physics](#physics-competitions) 29 | * [Programming](#programming-competitions) 30 | * [Preparation Resources](#programming-competitions-preparation) 31 | * [Compilers and Interpreters](#compilers-and-interpreters) 32 | * [Static Program Analysis](#static-program-analysis) 33 | * [Computer Graphics](#computer-graphics) 34 | * [Creative Coding](#creative-coding) 35 | * [Curves and Surfaces](#curves-and-surfaces) 36 | * [DirectX 12](#directx-12) 37 | * [Image Processing](#image-processing) 38 | * [Dithering](#dithering) 39 | * [Metal](#metal) 40 | * [OpenGL](#opengl) 41 | * [Ray Tracing](#ray-tracing) 42 | * [Shaders](#shaders) 43 | * [Vulkan](#vulkan) 44 | * [WebGPU](#webgpu) 45 | * [Computer Networks and Network Programming](#computer-networks-and-network-programming) 46 | * [Cryptography](#cryptography) 47 | * [Data Science](#data-science) 48 | * [Debuggers](#debuggers) 49 | * [Databases](#databases) 50 | * [Databases Development](#databases-development) 51 | * [NoSQL](#nosql) 52 | * [SQL](#sql) 53 | * [MySQL](#mysql) 54 | * [PostgreSQL](#postgresql) 55 | * [Oracle](#oracle) 56 | * [Demoscene](#demoscene) 57 | * [Design Patterns](#design-patterns) 58 | * [DevOps](#devops) 59 | * [Digital Signal Processing](#digital-signal-processing) 60 | * [Distributed Systems](#distributed-systems) 61 | * [Electronics](#electronics) 62 | * [Emulators and Virtual Machines](#emulators-and-virtual-machines) 63 | * [Game Programming](#game-programming) 64 | * [Game Engines](#game-engines) 65 | * [Game Physics](#game-physics) 66 | * [General Programming](#general-programming) 67 | * [Lists of programming projects to try to implement](#lists-of-programming-projects-to-try-to-implement) 68 | * [Geographic Information Systems](#geographic-information-systems) 69 | * [GUI Programming](#gui-programming) 70 | * [Hardware](#hardware) 71 | * [Information Theory](#information-theory) 72 | * [IQ Tests](#iq-tests) 73 | * [Logical Games](#logical-games) 74 | * [Low Level Stuff](#low-level-stuff) 75 | * [GPU and TPU programming](#gpu-and-tpu-programming) 76 | * [SIMD programming](#simd-programming) 77 | * [Math](#math) 78 | * [Algebra](#algebra) 79 | * [Linear Algebra](#linear-algebra) 80 | * [Calculus](#calculus) 81 | * [Vector Calculus](#vector-calculus) 82 | * [Category Theory](#category-theory) 83 | * [Differential Equations](#defferential-equations) 84 | * [Game Theory](#game-theory) 85 | * [General problem solving](#general-problem-solving) 86 | * [Geometry](#geometry) 87 | * [Differential Geometry](#differential-geometry) 88 | * [Graph Theory](#graph-theory) 89 | * [Mathematical Finance](#mathematical-finance) 90 | * [Mathematical Logic](#mathematical-logic) 91 | * [Measure Theory](#measure-theory) 92 | * [Number Theory](#number-theory) 93 | * [Operations Research](#operations-research) 94 | * [Probability and Statistics](#probability-and-statistics) 95 | * [Proofs](#proofs) 96 | * [Theoretical Computer Science](#theoretical-computer-science) 97 | * [Topology](#topology)* 98 | * [Multithreading and Concurrency](#multithreading-and-concurrency) 99 | * [Music Theory](#music-theory) 100 | * [Operating Systems](#operating-systems) 101 | * [Operating Systems Development](#operating-systems-development) 102 | * [Photography](#photography) 103 | * [Physics](#physics) 104 | * [Programming Languages](#programming-languages) 105 | * [Ada](#ada) 106 | * [Assembly](#assembly) 107 | * [Bash](#bash) 108 | * [Basic](#basic) 109 | * [C](#c) 110 | * [C#](#c-sharp) 111 | * [C++](#cpp) 112 | * [CMake](#cmake) 113 | * [Cuda](#cuda) 114 | * [D](#d) 115 | * [Datalog](#datalog) 116 | * [Erlang](#erlang) 117 | * [Forth](#forth) 118 | * [Go](#go) 119 | * [Network programming in Go](#network-programming-in-go) 120 | * [Haskell](#haskell) 121 | * [Jai](#jai) 122 | * [Java](#java) 123 | * [JavaScript](#javascript) 124 | * [Lean](#lean) 125 | * [Lisp dialects](#lisp-dialects) 126 | * [Clojure](#clojure) 127 | * [Common Lisp](#common-lisp) 128 | * [Racket](#racket) 129 | * [Scheme](#scheme) 130 | * [Nim](#nim) 131 | * [OCaml](#ocaml) 132 | * [Oberon-2](#oberon-2) 133 | * [Odin](#odin) 134 | * [Pascal](#pascal) 135 | * [PostScript](#postscript) 136 | * [Prolog](#prolog) 137 | * [Pyret](#pyret) 138 | * [Python](#python) 139 | * [R](#R) 140 | * [Regular expressions](#regular-expressions) 141 | * [Ruby](#ruby) 142 | * [Rust](#rust) 143 | * [Smalltalk](#smalltalk) 144 | * [Ya](#ya) 145 | * [Zig](#zig) 146 | * [Retrocomputing](#retrocomputing) 147 | * [Advent of Code on retro machines](#adevent-of-code-on-retro-machines) 148 | * [Apple II](#apple-ii) 149 | * [Commodore 64](#commodore-64) 150 | * [CP/M](#cpm) 151 | * [DOS](#dos) 152 | * [Game Boy](#game-boy) 153 | * [Mega 65](#mega-65) 154 | * [NES](#nes) 155 | * [ZX Spectrum and Z80 CPU](#zx-spectrum-and-z80-cpu) 156 | * [ZX Online Articles](#zx-online-articles) 157 | * [Reverse engineering](#reverse-engineering) 158 | * [Robotics](#robotics) 159 | * [System programming](#system-programming) 160 | * [Technical Writing](#technical-writing) 161 | * [Testing](#testing) 162 | * [Text editors](#text-editors) 163 | * [Emacs](#emacs) 164 | * [Vim](#vim) 165 | * [Unicode](#unicode) 166 | * [Version control tools](#version-control-tools) 167 | * [Web programming](#web-programming) 168 | * [CSS](#css) 169 | * [Django](#django) 170 | * [HTML](#html) 171 | * [Personal Websites and Blogs](#personal-websites-and-blogs) 172 | * [AI](#ai-blogs) 173 | * [C and C++](#c-and-cpp-blogs) 174 | * [Game and Graphics Programming](#game-and-graphics-programming-blogs) 175 | * [Hardware Blogs](#other-blogs) 176 | * [Math and Physics](#math-and-physics-blogs) 177 | * [Mixed Programming](#mixed-programming-blogs) 178 | * [Performance and Optimization](#performance-and-optimization-blogs) 179 | * [Web Development](#web-development-blogs) 180 | * [Other](#other) 181 | * [Other lists](#other-lists) 182 | 183 | ## AI 184 | 185 | * [Agentic Design Patterns](https://docs.google.com/document/u/0/d/1rsaK53T3Lg5KoGwvf8ukOUvbELRtH-V0LnOIFDxBryE/mobilebasic) by *Antonio Gulli* 186 | 187 | * [Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp](https://norvig.github.io/paip-lisp) by *Peter Norvig* 188 | 189 | ### Machine Learning 190 | 191 | * [A Comprehensive Guide to Machine Learning](https://snasiriany.me/files/ml-book.pdf) by *Soroush Nasiriany*, *Garrett Thomas*, *William Wang*, *Alex Yang*, *Jennifer Listgarten*, *Anant Sahai* **[pdf]** 192 | 193 | * [A Course in Machine Learning](http://ciml.info) by *Hal Daumé III* 194 | 195 | * [A Gentle Introduction to Graph Neural Networks](https://distill.pub/2021/gnn-intro) by *Benjamin Sanchez-Lengeling*, *Emily Reif*, *Adam Pearce* and *Alexander B. Wiltschko* 196 | 197 | * [Algorithmic Aspects of Machine Learning](https://people.csail.mit.edu/moitra/docs/bookexv2.pdf) by *Ankur Moitra* **[pdf]** 198 | 199 | * [Algorithms for Artificial Intelligence](https://web.stanford.edu/~mossr/pdf/alg4ai.pdf) by *Robert J. Moss* **[dpf]** **[Stanford]** 200 | 201 | * [Alice’s Adventures in a differentiable wonderland](https://www.sscardapane.it/alice-book) by *Simone Scardapane* 202 | 203 | * [aman.ai](aman.ai) - The art of artificial intelligence one concept at a time by *Aman Chadha* 204 | 205 | * [An Illustrated Guide to Automatic Sparse Differentiation](https://iclr-blogposts.github.io/2025/blog/sparse-autodiff) by *Adrian Hill*, *Guillaume Dalle*, and *Alexis Montoison* 206 | 207 | * [An Introduction to Statistical Learning](https://www.statlearning.com) by *Gareth James, Daniela Witten, Trevor Hastie, Rob Tibshirani* 208 | 209 | * [Applied Machine Learning for Tabular Data](https://aml4td.org) by *Max Kuhn* and *Kjell Johnson* 210 | 211 | * [Books by Andriy Burkov](https://www.thelmbook.com) 212 | * [The Hundred Page Machine Learning Book](http://themlbook.com/wiki) 213 | * [The Hundred-Page Language Models Book](https://www.thelmbook.com) 214 | * [Machine Learning Engineering Book](http://www.mlebook.com/wiki) 215 | 216 | * [Computer Vision: Algorithms and Applications, 2nd Edition](https://szeliski.org/Book) by *Richard Szeliski* 217 | 218 | * [Concise Machine Learning](https://people.eecs.berkeley.edu/~jrs/papers/machlearn.pdf) by *Jonathan Richard Shewchuk* **[pdf]** 219 | 220 | * [Crash Course in Deep Learning (for Computer Graphics)](https://gpuopen.com/learn/deep_learning_crash_course/) by *Jakub Boksansky* [[alternative link]](https://boksajak.github.io/blog/DeepLearning) 221 | 222 | * [Data Science and Machine Learning: Mathematical and Statistical Methods](https://people.smp.uq.edu.au/DirkKroese/DSML) by *Dirk P. Kroese*, *Zdravko I. Botev*, *Thomas Taimre*, *Radislav Vaisman* 223 | 224 | * [Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control](https://faculty.washington.edu/sbrunton/DataBookV2.pdf) by *Steven L. Brunton and J. Nathan Kutz* **[pdf]** 225 | 226 | * [Deep Learning](https://www.deeplearningbook.org/) by *Ian Goodfellow, Yoshua Bengio and Aaron Courville* 227 | 228 | * [Deep Learning Course](https://fleuret.org/dlc) by *François Fleuret* 229 | 230 | * [Deep Learning: Foundations and Concepts](https://www.bishopbook.com) by *Chris Bishop with Hugh Bishop* 231 | 232 | * [Deep Learning Interviews](https://arxiv.org/abs/2201.00650) by *Shlomo Kashani* and *Amir Ivry* 233 | 234 | * [Deep Learning on Graphs](https://yaoma24.github.io/dlg_book) by *Yao Ma* and *Jiliang Tang* 235 | 236 | * [Deep Learning with Python, Second Edition](https://sourestdeeds.github.io/pdf/Deep%20Learning%20with%20Python.pdf) by *François Chollet* **[pdf]** 237 | 238 | * [Dive into Deep Learning](https://d2l.ai) 239 | 240 | * [Dive into Deep Learning Compiler](https://tvm.d2l.ai/) 241 | 242 | * [Dummy's Guide to Modern LLM Sampling](https://rentry.co/samplers) 243 | 244 | * [Foundations of Computer Vision](https://visionbook.mit.edu) by *Antonio Torralba*, *Phillip Isola*, and *William Freeman* 245 | 246 | * [Foundations of Machine Learning](https://cs.nyu.edu/~mohri/mlbook) by *Mehryar Mohri*, *Afshin Rostamizadeh*, and *Ameet Talwalkar* **[MIT]** 247 | 248 | * [GNN From Scratch](https://cultured-avenue-f13.notion.site/GNN-From-Scratch-2a3dfe9550dd80ac87deee4fe6cd0696) by ** 249 | 250 | * [Harvard's undergraduate course in Machine Learning](https://github.com/harvard-ml-courses/cs181-textbook) by *William J. Deuschle* 251 | 252 | * [Introduction to Flow Matching and Diffusion Models](https://diffusion.csail.mit.edu) by *Peter Holderrieth* and *Ezra Erives* 253 | 254 | * [Introduction to ggml](https://huggingface.co/blog/introduction-to-ggml) by *Xuan Son NGUYEN*, *Georgi Gerganov* and *slaren* 255 | 256 | * [Introduction to Machine Learning](https://alex.smola.org/drafts/thebook.pdf) by *Alex Smola* and *S.V.N. Vishwanathan* **[pdf]** 257 | 258 | * [Introduction to Machine Learning](https://princeton-introml.github.io/) by *Sanjeev Arora*, *Simon Park*, *Dennis Jacob* and *Danqi Chen* **[Princeton]** 259 | 260 | * [Introduction to Machine Learning](https://introml.mit.edu/_static/spring24/LectureNotes/6_390_lecture_notes_spring24.pdf) **[pdf]** **[MIT]** 261 | 262 | * [Introduction to Machine Learning Interviews](https://huyenchip.com/ml-interviews-book) by *Chip Huyen* 263 | 264 | * [Learning Theory from First Principles](https://www.di.ens.fr/%7Efbach/ltfp_book.pdf) by *Francis Bach* **[pdf]** 265 | 266 | * [Lecture Notes for Machine Learning and Data Science Courses Information School, University of Washington](https://faculty.washington.edu/otoomet/machineLearning.pdf) by *Ott Toomet* **[pdf]** 267 | 268 | * [Lecture Notes for Machine Learning Theory](https://tselilschramm.org/mltheory/ma.pdf) by *Tengyu Ma* **[pdf]** 269 | 270 | * [Machine Learning Engineering Open Book](https://github.com/stas00/ml-engineering) by *Stas Bekman* 271 | 272 | * [Machine Learning Lecture Notes](https://cs229.stanford.edu/main_notes.pdf) by *Andrew Ng* and *Tengyu Ma* **[pdf]** **[Stanford]** 273 | 274 | * [Machine Learning Systems](https://mlsysbook.ai) by *Vijay Janapa Reddi* 275 | 276 | * [Machine learning with neural networks](https://arxiv.org/pdf/1901.05639) by *Bernard Mehling* [pdf] 277 | 278 | * [Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com) by *Michael Nielsen* 279 | 280 | * [Notes on AutoGrad](https://aschrein.github.io/jekyll/update/2025/08/23/compute_graph.html) by *Anton Schreiner* 281 | 282 | * [Patterns, Predictions, and Actions: A story about machine learning](https://mlstory.org) by *Moritz Hardt* and *Benjamin Recht* 283 | 284 | * [Physics-based Deep Learning](https://physicsbaseddeeplearning.org/intro.html) by *N. Thuerey, P. Holl, M. Mueller, P. Schnell, F. Trost, K. Um* 285 | 286 | * [Probabilistic Artificial Intelligence](https://arxiv.org/abs/2502.05244) by *Andreas Krause*, *Jonas Hübotter* 287 | 288 | * [Probabilistic Machine Learning: An Introduction](https://probml.github.io/pml-book/book1.html) by *Kevin Patrick Murphy* 289 | 290 | * [Probabilistic Machine Learning: Advanced Topics](https://probml.github.io/pml-book/book2.html) by *Kevin Patrick Murphy* 291 | 292 | * [Speech and Language Processing, 3rd edition](https://web.stanford.edu/~jurafsky/slp3/) by *Daniel Jurafsky* and *James H. Martin* 293 | 294 | * [Statistical Learning Theory](https://web.stanford.edu/class/cs229t/notes.pdf) by *Percy Liang* **[pdf]** 295 | 296 | * [The Elements of Differentiable Programming](https://arxiv.org/abs/2403.14606) by *Mathieu Blondel and Vincent Roulet* 297 | 298 | * [The Elements of Statistical Learning](https://hastie.su.domains/ElemStatLearn) by *Trevor Hastie*, *Robert Tibshirani*, and *Jerome Friedman* 299 | 300 | * [The Engineer's Guide To Deep Learning](https://www.interdb.jp/dl) by *Hironobu Suzuki* 301 | 302 | * [The Little Book of Deep Learning](https://fleuret.org/francois) by *François Fleuret* 303 | 304 | * [The Most Important Machine Learning Equations: A Comprehensive Guide](https://chizkidd.github.io//2025/05/30/machine-learning-key-math-eqns) by *Chizoba Obasi* 305 | 306 | * [The Principles of Deep Learning Theory](https://arxiv.org/abs/2106.10165) by *Daniel A. Roberts*, *Sho Yaida*, *Boris Hanin* 307 | 308 | * [The Principles of Diffusion Models: From Origins to Advances](https://arxiv.org/abs/2510.21890) by *Chieh-Hsin Lai*, *Yang Song*, *Dongjun Kim*, *Yuki Mitsufuji*, *Stefano Ermon* 309 | 310 | * [Theory of Deep Learning](https://www.cs.princeton.edu/~arora/TheoryDL.pdf) by *Zhao Song* **[pdf]** 311 | 312 | * [Tutorial on Diffusion Models for Imaging and Vision](https://arxiv.org/abs/2403.18103) by *Stanley H. Chan* 313 | 314 | * [Understanding Deep Learning](https://udlbook.github.io/udlbook) by *Simon J.D. Prince* 315 | 316 | * [Understanding Machine Learning: From Theory to Algorithms](https://www.cs.huji.ac.il/~shais/UnderstandingMachineLearning) by *Shai Shalev-Shwartz* and *Shai Ben-David* 317 | 318 | #### Large Language Models 319 | 320 | * [A Visual Guide to Quantization: Demystifying the Compression of Large Language Models](https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization) by *Maarten Grootendorst* 321 | 322 | * [Defeating Nondeterminism in LLM Inference](https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference) by *Horace He* 323 | 324 | * [Foundations of Large Language Models](https://arxiv.org/abs/2501.09223) by *Tong Xiao* and *Jingbo Zhu* 325 | 326 | * [How to Scale Your Model: A Systems View of LLMs on TPUs](https://jax-ml.github.io/scaling-book) by *Jacob Austin*, *Sholto Douglas*, *Roy Frostig*, *Anselm Levskaya*, *Charlie Chen*, and *Sharad Vikram* 327 | 328 | * [How to run LLMs on PC at home using Llama.cpp](https://www.theregister.com/2025/08/24/llama_cpp_hands_on) by *Tobias Mann* 329 | 330 | #### Machine Learning Online Courses 331 | 332 | * [Google Machine Learning Education](https://developers.google.com/machine-learning) 333 | 334 | * [Neural Networks: Zero to Hero](https://karpathy.ai/zero-to-hero.html) - A course by *Andrej Karpathy* 335 | 336 | * [Practical Deep Learning for Coders](https://course.fast.ai) 337 | 338 | #### Mathematics for Machine Learning 339 | 340 | * [Linear Algebra for Computer Vision, Robotics, and Machine Learning](https://www.cis.upenn.edu/~cis5150/linalg-I-f.pdf) by *Jean Gallier* and *Jocelyn Quaintance* **[pdf]** 341 | 342 | * [Mathematical Analysis of Machine Learning Algorithms](https://tongzhang-ml.org/lt-book.html) by *Tong Zhang* 343 | 344 | * [Mathematical Foundations of Machine Learning](https://nowak.ece.wisc.edu/MFML.pdf) by *Robert Nowak* **[pdf]** 345 | 346 | * [Mathematical Introduction to Deep Learning: Methods, Implementations, and Theory](https://arxiv.org/abs/2310.20360) by *Arnulf Jentzen, Benno Kuckuck, Philippe von Wurstemberger* 347 | 348 | * [Mathematics for Artificial Intelligence Lecure Notes](https://www.imo.universite-paris-saclay.fr/~gilles.blanchard/teaching/Lecture_Notes_MAI.pdf) by *Gilles Blanchard* **[pdf]** 349 | 350 | * [Mathematics for Machine Learning](https://mml-book.github.io/) by *Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon Ong* 351 | 352 | * [Mathematics for Machine Learning](https://gwthomas.github.io/docs/math4ml.pdf) by *Garrett Thomas* **[pdf]** 353 | 354 | * [Mathematics for Inference and Machine Learning](https://www.doc.ic.ac.uk/~dfg/ProbabilisticInference/InferenceAndMachineLearningNotes.pdf) by *Marc Deisenroth* and *Stefanos Zafeiriou* **[pdf]** 355 | 356 | * [Mathematics of Machine Learning](https://ocw.mit.edu/courses/18-657-mathematics-of-machine-learning-fall-2015/pages/lecture-notes) by *Philippe Rigollet* 357 | 358 | * [Mathematics of Machine Learning](https://www.statslab.cam.ac.uk//~rds37/machine_learning.html) by *Rajen D. Shah* 359 | 360 | * [Mathematics of Neural Networks](https://arxiv.org/abs/2403.04807) by *Bart M.N. Smets* 361 | 362 | * [Matrix Calculus (for Machine Learning and Beyond)](https://arxiv.org/abs/2501.14787) by *Paige Bright*, *Alan Edelman*, and *Steven G. Johnson* 363 | * [MIT course](https://ocw.mit.edu/courses/18-s096-matrix-calculus-for-machine-learning-and-beyond-january-iap-2023) 364 | * [GitHub repository](https://github.com/mitmath/matrixcalc) 365 | 366 | * [Optimization for Data Science](https://n.ethz.ch/~jiaxie/graduate_projs/notes_eth.pdf) by *Bernd Gartner*, *Niao He* and *Martin Jaggi* **[pdf]** 367 | 368 | * [Pen and Paper Exercises in Machine Learning](https://arxiv.org/abs/2206.13446) by *Michael U. Gutmann* 369 | 370 | * [The Matrix Calculus You Need For Deep Learning](https://explained.ai/matrix-calculus) by *Terence Parr* and *Jeremy Howard* 371 | 372 | #### Reinforcement learning 373 | 374 | * [A Little Bit of Reinforcement Learning from Human Feedback](https://rlhfbook.com) by *Nathan Lambert* 375 | 376 | * [Deep Reinforcement Learning](https://deep-reinforcement-learning.net) by *Aske Plaat* 377 | 378 | * [Deep Reinforcement Learning: Zero to Hero!](https://github.com/alessiodm/drl-zh) 379 | 380 | * [Distributional Reinforcement Learning](https://www.distributional-rl.org) by *Marc G. Bellemare*, *Will Dabney* and *Mark Rowland* 381 | 382 | * [Mathematical Foundations of Reinforcement Learning](https://github.com/MathFoundationRL/Book-Mathematical-Foundation-of-Reinforcement-Learning) by *Shiyu Zhao* 383 | 384 | * [Multi-Agent Reinforcement Learning: Foundations and Modern Approaches](https://www.marl-book.com) by *Stefano V. Albrecht*, *Filippos Christianos* and *Lukas Schäfer* 385 | 386 | * [Reinforcement Learning: An Introduction, Second Edition](http://incompleteideas.net/book/the-book-2nd.html) by *Richard S. Sutton* and *Andrew G. Barto* 387 | 388 | * [Reinforcement Learning: An Overview](https://arxiv.org/abs/2412.05265) by *Kevin Murphy* 389 | 390 | ### Computer Games AI 391 | 392 | * [Artificial Intelligence and Games](https://gameaibook.org) by *Georgios N. Yannakakis* and *Julian Togelius* 393 | 394 | * [Game AI Pro](http://www.gameaipro.com) by *Steve Rabin* 395 | 396 | * [Programming Starcraft AI](https://makingcomputerdothings.com/an-index-for-the-starcraft-ai-posts) by *Peter Kis* 397 | 398 | ### Vibe Coding and Spec-Driven Development 399 | 400 | * [Basic Claude Code](https://harper.blog/2025/05/08/basic-claude-code) by *Harper Reed* 401 | 402 | * [Disciplined AI Software Development](https://github.com/Varietyz/Disciplined-AI-Software-Development) by *Jay Baleine* 403 | 404 | * [Diving Into Spec-Driven Development With GitHub Spec Kit](https://developer.microsoft.com/blog/spec-driven-development-spec-kit) by *Den Delimarsky* 405 | 406 | * [How I program with Agents](https://crawshaw.io/blog/programming-with-agents) by *David Crawshaw* 407 | 408 | * [How I program with LLMs](https://crawshaw.io/blog/programming-with-llms) by *David Crawshaw* 409 | 410 | * [How I Use Every Claude Code Feature](https://blog.sshh.io/p/how-i-use-every-claude-code-feature) by *Shrivu Shankar* 411 | 412 | * [My LLM codegen workflow atm](https://harper.blog/2025/02/16/my-llm-codegen-workflow-atm) by *Harper Reed* 413 | 414 | * [Spec-driven development with AI: Get started with a new open source toolkit](https://github.blog/ai-and-ml/generative-ai/spec-driven-development-with-ai-get-started-with-a-new-open-source-toolkit) by *Den Delimarsky* 415 | 416 | * [Vibe Coding Terminal Editor](https://matklad.github.io/2025/08/31/vibe-coding-terminal-editor.html) by *Alex Kladov* 417 | 418 | ## Algorithms 419 | 420 | * [A First Course on Data Structures in Python](https://donsheehy.github.io/datastructures) by *Donald R. Sheehy* 421 | 422 | * [Advanced Algorithms](https://www.cs.cmu.edu/~15850/notes/cmu850-f20.pdf) by *Anupam Gupta* **[pdf]** **[CMU]** 423 | 424 | * [Advanced Algorithms](https://people.inf.ethz.ch/aroeyskoe/AA23_materials/AAscript.pdf) by *Mohsen Ghaffari* **[pdf]** **[ETH]** 425 | 426 | * [Advanced Algorithms](https://ocw.mit.edu/courses/6-854j-advanced-algorithms-fall-2008) by *Prof. Michel Goemans* **[MIT]** 427 | 428 | * [Advanced Algorithm Design](https://www.cs.princeton.edu/courses/archive/fall15/cos521) by *Sanjeev Arora* **[Princeton]** **[Fall 2015]** 429 | 430 | * [Advanced Algorithm Design](https://www.cs.princeton.edu/courses/archive/fall18/cos521) by *Pravesh Kothari* and *Christopher Musco* **[Princeton]** **[Fall 2018]** 431 | 432 | * [Advanced Data Structures](https://courses.csail.mit.edu/6.897/spring03/scribe_notes) by *Erik Demaine* 433 | 434 | * [Algorithms](http://jeffe.cs.illinois.edu/teaching/algorithms/) by *Jeff Erickson* 435 | 436 | * [Algorithms](https://courses.grainger.illinois.edu/cs473/fa2021/lec/book.pdf) by *Sariel Har-Peled* **[pdf]** 437 | 438 | * [Algorithms, 4th Edition](https://mrce.in/ebooks/Algorithms%204th%20Ed.pdf) by *Robert Sedgewick* and *Kevin Wayne* 439 | 440 | * [Algorithms and Data Structures](https://people.mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Sanders-Toolbox.pdf) by *Kurt Mehlhorn and Peter Sanders* **[pdf]** 441 | 442 | * [Algorithms Books](https://algorithmsbook.com) by *Mykel J. Kochenderfer* 443 | * [Algorithms for Optimization](https://algorithmsbook.com/optimization) by *Mykel J. Kochenderfer*, and *Tim A. Wheeler* 444 | * [Algorithms for Decision Making](https://algorithmsbook.com/decisionmaking) by *Mykel J. Kochenderfer*, *Tim A. Wheeler*, and *Kyle H. Wray* 445 | * [Algorithms for Validation](https://algorithmsbook.com/validation) by *Mykel J. Kochenderfer*, *Sydney M. Katz*, *Anthony L. Corso*, and *Robert J. Moss* 446 | 447 | * [Algorithms Design (in C)](https://www.ime.usp.br/~pf/algorithms) by *Paulo Feofiloff* 448 | 449 | * [Algorithms for Inference](https://ocw.mit.edu/courses/6-438-algorithms-for-inference-fall-2014) by *Prof. Devavrat Shah* 450 | 451 | * [Algorithms for Massive Data](https://arxiv.org/abs/2301.00754) by *Nicola Prezza* 452 | 453 | * [Algorithms for Modern Hardware](https://en.algorithmica.org/hpc) by *Sergey Slotin* 454 | 455 | * [Algorithms in C](https://theswissbay.ch/pdf/Gentoomen%20Library/Algorithms/Algorithms%20in%20C.pdf) by *Robert Sedgewick* **[pdf]** 456 | 457 | * [An Open Guide to Data Structures and Algorithms](https://pressbooks.palni.org/anopenguidetodatastructuresandalgorithms) by *Paul W. Bible* and *Lucas Moser* 458 | 459 | * [Approximation Algorithms](https://courses.grainger.illinois.edu/cs583/fa2021/approx-algorithms-lecture-notes.pdf) by *Chandra Chekuri* **[pdf]** 460 | 461 | * [Book of All-pairs Shortest Paths](https://olegkarasik.wordpress.com/category/developers-story/book-of-all-pairs-shortest-paths) by *Oleg Karasik* 462 | 463 | * [Clever Algorithms: Nature-Inspired Programming Recipes](https://github.com/clever-algorithms/CleverAlgorithms) by *Jason Brownlee* 464 | 465 | * [Collision Detection](https://www.jeffreythompson.org/collision-detection) by *Jeff Thompson* 466 | 467 | * [Data Structure Visualizations](https://www.cs.usfca.edu/~galles/visualization) by *David Galles* 468 | 469 | * [Data Structures & Algorithm Analysis](https://people.cs.vt.edu/~shaffer/Book) by *Clifford A. Shaffer* 470 | 471 | * [Data Structures & Algorithms in C++, Second Edition](https://eduarmandov.wordpress.com/wp-content/uploads/2017/05/c_c-data-structures-and-algorithms-in-c.pdf) by *Michael T. Goodrich*, *Roberto Tamassia*, and *David M. Mount* **[pdf]** 472 | 473 | * [Data Structures for Data-Intensive Applications: Tradeoffs and Design Guidelines](https://cs-people.bu.edu/mathan/publications/fnt23-athanassoulis.pdf) by *Manos Athanassoulis 474 | , Stratos Idreos and Dennis Shasha* **[pdf]** 475 | 476 | * [Design and Analysis of Algorithms](https://stanford-cs161.github.io/winter2025) by *Nima Anari* and *Moses Charikar* 477 | 478 | * [Essential Coding Theory](https://cse.buffalo.edu/faculty/atri/courses/coding-theory/book) by *Venkatesan Guruswami*, *Atri Rudra*, and *Madhu Sudan* 479 | 480 | * [Exact String Matching Algorithms](http://www-igm.univ-mlv.fr/~lecroq/string) by *Christian Charras and Thierry Lecroq* 481 | 482 | * [Foundations of Data Science](https://www.cs.cornell.edu/jeh/book%20no%20so;utions%20March%202019.pdf) by *Avrim Blum*, *John Hopcroft*, and *Ravindran Kannan* **[pdf]** 483 | 484 | * [Functional Data Structures and Algorithms: A Proof Assistant Approach](https://fdsa-book.net) by *Tobias Nipkow*, *Jasmin Blanchette*, *Manuel Eberl*, *Alejandro Gómez-Londoño*, *Peter Lammich*, *Christian Sternagel*, *Simon Wimmer*, *Bohua Zhan* 485 | 486 | * [How does B-tree make your queries fast?](https://blog.allegro.tech/2023/11/how-does-btree-make-your-queries-fast.html) by *Mateusz Kuźmik* 487 | 488 | * [Introduction to Algorithms: A Creative Approach](https://doc.lagout.org/science/0_Computer%20Science/2_Algorithms/Introduction%20to%20Algorithms_%20A%20Creative%20Approach%20%5BManber%201989-01-11%5D.pdf) by *Udi Manber* **[pdf]** 489 | 490 | * [Introduction to Multi-Armed Bandits](https://arxiv.org/abs/1904.07272) by *Aleksandrs Slivkins* 491 | 492 | * [Kalman Filter from the Ground Up](https://www.kalmanfilter.net) by *Alex Becker* 493 | 494 | * [Lecture Notes on Quantum Algorithms](https://www.cs.umd.edu/~amchilds/qa/qa.pdf) by *Andrew M. Childs* **[pdf]** 495 | 496 | * [Let's build a Full-Text Search engine](https://artem.krylysov.com/blog/2020/07/28/lets-build-a-full-text-search-engine) by *Artem Krylysov* 497 | 498 | * [Matters Computational: Ideas, Algorithms, Source Code](https://www.jjj.de/fxt/fxtbook.pdf) by *Jörg Arndt* **[pdf]** 499 | 500 | * [Monte-Carlo Graph Search from First Principles](https://github.com/lightvector/KataGo/blob/master/docs/GraphSearch.md) by *David J Wu* 501 | 502 | * [Notes on Algorithms](https://www.cs.yale.edu/homes/aspnes/pinewiki/CS365(2f)Notes.html) by *James Aspnes* 503 | 504 | * [Notes on Data Structures and Programming Techniques](https://www.cs.yale.edu/homes/aspnes/classes/223/notes.html) by *James Aspnes* 505 | 506 | * [Notes on Randomized Algorithms](https://www.cs.yale.edu/homes/aspnes/classes/469/notes.pdf) by *James Aspnes* **[pdf]** 507 | 508 | * [Planning Algorithms](http://lavalle.pl/planning) by *Steven M. LaValle* 509 | 510 | * [Principles of Algorithmic Problem Solving](https://www.csc.kth.se/~jsannemo/slask/main.pdf) by *Johan Sannemo* 511 | 512 | * [Problem Solving with Algorithms and Data Structures using Python](https://runestone.academy/runestone/books/published/pythonds/index.html) by *Brad Miller and David Ranum* 513 | 514 | * [Purely Functional Data Structures](https://www.cs.cmu.edu/~rwh/students/okasaki.pdf) by *Chris Okasaki* **[pdf]** 515 | 516 | * [Sequential and Parallel Data Structures and Algorithms: The Basic Toolbox](https://people.mpi-inf.mpg.de/~mehlhorn/ToolboxNew.html) by *Peter Sanders, Kurt Mehlhorn, Martin Dietzfelbinger, and Roman Dementiev* 517 | 518 | * [The Arcane Algorithm Archive](https://www.algorithm-archive.org/) 519 | 520 | * [The Skyline algorithm for packing 2D rectangles](https://jvernay.fr/en/blog/skyline-2d-packer/implementation) by *Julien Vernay* 521 | 522 | * [Think Data Structures](https://greenteapress.com/wp/think-data-structures) by *Allen B. Downey* 523 | 524 | * [Tim Roughgarden's Courses and Lecture Notes](https://timroughgarden.org) 525 | * [Algorithmic Game Theory](https://timroughgarden.org/f13/f13.html) 526 | 527 | ### Bloom Filters 528 | 529 | * [Bloom Filters](https://eli.thegreenplace.net/2025/bloom-filters) by *Eli Bendersky* 530 | 531 | * [Bloom Filters by Example](https://llimllib.github.io/bloomfilter-tutorial) 532 | 533 | * [Let's implement a Bloom Filter](https://onatm.dev/2020/08/10/let-s-implement-a-bloom-filter) by *Onat Yiğit Mercan* 534 | 535 | ### Date-time 536 | 537 | * [A Very Fast 64–Bit Date Algorithm](https://www.benjoffe.com/fast-date-64) by *Ben Joffe* 538 | 539 | ### Diff Algorithms 540 | 541 | * **Building Git** by *James Coglan* 542 | * **The Myers diff algorithm** 543 | * [Part 1](https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1) 544 | * [Part 2](https://blog.jcoglan.com/2017/02/15/the-myers-diff-algorithm-part-2) 545 | * [Part 3](https://blog.jcoglan.com/2017/02/17/the-myers-diff-algorithm-part-3) 546 | * **Myers diff in linear space** 547 | * [Part 1: Theory](https://blog.jcoglan.com/2017/03/22/myers-diff-in-linear-space-theory) 548 | * [Part 2: Implementation](https://blog.jcoglan.com/2017/04/25/myers-diff-in-linear-space-implementation) 549 | * [Merging with diff3](https://blog.jcoglan.com/2017/05/08/merging-with-diff3) 550 | * [Why merges fail and what can be done about it](https://blog.jcoglan.com/2017/06/19/why-merges-fail-and-what-can-be-done-about-it) 551 | * [The patience diff algorithm](https://blog.jcoglan.com/2017/09/19/the-patience-diff-algorithm) 552 | * [Implementing patience diff](https://blog.jcoglan.com/2017/09/28/implementing-patience-diff) 553 | 554 | * [Diff Algorithms](https://flo.znkr.io/diff) 555 | 556 | * [Myers Diff Algorithm - Code & Interactive Visualization](https://blog.robertelder.org/diff-algorithm) by *Robert Elder* 557 | 558 | ## Art 559 | 560 | * [Pixel art articles and tutorials](https://saint11.org) by *Pedro Medeiros* 561 | 562 | ## Biology 563 | 564 | * [Introduction to Genomics for Engineers](https://learngenomics.dev) 565 | 566 | * [The Algorithmic Beauty of Plants](http://algorithmicbotany.org/papers/abop/abop.pdf) by *Przemyslaw Prusinkiewicz* and *Aristid Lindenmayer* **[pdf]** 567 | 568 | ## Command Line and Tools 569 | 570 | * [Command Line Handbook](https://commandline.stribny.name) by *Petr Stribny* 571 | 572 | * [Driving Compilers](https://fabiensanglard.net/dc) by *Fabien Sanglard* 573 | 574 | * [Getting started with tmux](https://ittavern.com/getting-started-with-tmux) by *ittavern* 575 | 576 | * [How I'm still not using GUIs: A guide to the terminal](https://lucasfcosta.com/2019/02/10/terminal-guide-2019.html) by *Lucas Fernandes da Costa* 577 | 578 | * [How is a binary executable organized? Let's explore it!](https://jvns.ca/blog/2014/09/06/how-to-read-an-executable) by *Julia Evans* 579 | 580 | * [Learn Makefiles: With the tastiest examples](https://makefiletutorial.com) by *Chase Lambert*S 581 | 582 | * [rsync: Series](https://michael.stapelberg.ch/posts/2022-06-18-rsync-overview) by *Michael Stapelberg* 583 | 584 | * [Terminal colours are tricky](https://jvns.ca/blog/2024/10/01/terminal-colours) by *Julia Evans* 585 | 586 | * [The Definitive Guide To Docker](https://masteringbackend.com/posts/docker-tutorial) 587 | 588 | * [Use Midnight Commander like a pro](https://klimer.eu/2015/05/01/use-midnight-commander-like-a-pro) by *Igor Klimer* 589 | 590 | * [Write a Shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c) by *Stephen Brennan* 591 | 592 | * [Writing Programs with NCURSES](https://invisible-island.net/ncurses/ncurses-intro.html) by *Eric S. Raymond* and *Zeyd M. Ben-Halim* 593 | 594 | * [Writing Your Own Simple Tab-Completions for Bash and Zsh](https://mill-build.org/blog/14-bash-zsh-completion.html) by *Li Haoyi* 595 | 596 | ### Curl 597 | 598 | * [Curl Cookbook](https://catonmat.net/cookbooks/curl) 599 | 600 | * [Curl Exercises](https://jvns.ca/blog/2019/08/27/curl-exercises) by *Julia Evans* 601 | 602 | * [Mastering curl: interactive text guide](https://antonz.org/mastering-curl) by *Anton Zhiyanov* 603 | 604 | ### Linux command line 605 | 606 | * [Effective Shell](https://effective-shell.com/) by *Dave Kerr* 607 | 608 | * [GameShell: a "game" to teach the Unix shell](https://github.com/phyver/GameShell) by *Pierre Hyvernat* 609 | 610 | * [Linux command line for you and me](https://lym.readthedocs.io/en/latest/index.html) by *Kushal Das* 611 | 612 | * [The Linux Command Handbook](https://www.freecodecamp.org/news/the-linux-commands-handbook) by *Flavio Copes* 613 | 614 | * [The Linux Command Line](https://linuxcommand.org/tlcl.php) by *William Shotts* 615 | 616 | * [Linux Commands Cheat Sheet](https://linux-commands.labex.io/) 617 | 618 | ### Nix 619 | 620 | * [NixOS & Flakes Book](https://nixos-and-flakes.thiscute.world) - An unofficial book for beginners by *Ryan Yin* 621 | 622 | * [Wombat’s Book of Nix](https://mhwombat.codeberg.page/nix-book) by *Amy de Buitléir* 623 | 624 | ## Competitions and Interview Preparation Websites 625 | 626 | ### Math 627 | 628 | * [Erdős](https://erdos.sdslabs.co) 629 | 630 | * [Erdős Problems](https://www.erdosproblems.com) 631 | 632 | * [International Mathematical Olympiad](https://www.imo-official.org) 633 | 634 | #### Preparation Resources 635 | 636 | * [Mathematical Problem Solving](https://www.cip.ifi.lmu.de/~grinberg/t/20f) by *Darij Grinberg* 637 | 638 | ### Physics 639 | 640 | * [International Physics Olympiad](https://ipho-unofficial.org) 641 | 642 | ### Programming 643 | 644 | * [Advent of Code](https://adventofcode.com) - An Advent calendar of small programming puzzles by *Eric Wastl* 645 | 646 | * [Code Golf](https://codegolf.stackexchange.com) - A site for recreational programming competitions. 647 | 648 | * [CodeAbbey](https://www.codeabbey.com) 649 | 650 | * [CodeChef](https://www.codechef.com) 651 | 652 | * [CodeForces](https://codeforces.com) 653 | 654 | * [Coderbyte](https://coderbyte.com) 655 | 656 | * [Codewars](https://www.codewars.com) 657 | 658 | * [Codility](https://app.codility.com/programmers) 659 | 660 | * [CodingBat](https://codingbat.com) - A free site of live coding problems to build coding skill in Java and Python. 661 | 662 | * [CodinGame](https://www.codingame.com) 663 | 664 | * [Daily Programmer](https://www.reddit.com/r/dailyprogrammer) 665 | 666 | * [Edabit](https://edabit.com) 667 | 668 | * [Exercism](https://exercism.org) 669 | 670 | * [Hacker Earth](https://www.hackerearth.com) 671 | 672 | * [HackerRank](https://www.hackerrank.com) 673 | 674 | * [International Collegiate Programming Contest](https://icpc.global) 675 | 676 | * [International Olympiad in Informatics](https://ioinformatics.org) 677 | 678 | * [Kaggle](https://www.kaggle.com) - ML specific. 679 | 680 | * [LabEx](https://labex.io) - Learn Linux, DevOps & Cybersecurity with Hands-on Labs. 681 | 682 | * [Learn OCaml](https://ocaml-sf.org/learn-ocaml-public) 683 | 684 | * [LeetCode](https://leetcode.com) 685 | 686 | * [NeetCode](https://neetcode.io) 687 | 688 | * [Project Euler](https://projecteuler.net) 689 | 690 | * [Rosalind](https://rosalind.info) - A platform for learning bioinformatics through problem solving. 691 | 692 | * [Skilled.dev](https://skilled.dev) 693 | 694 | * [Sphere Online Judge](https://www.spoj.com) 695 | 696 | * [SQLPad](https://sqlpad.io) 697 | 698 | * [takeUforward](https://takeuforward.org) 699 | 700 | * [Top Coder](https://www.topcoder.com/community/arena) 701 | 702 | #### Preparation Resources 703 | 704 | * [Algorithms for Competitive Programming](https://cp-algorithms.com) 705 | 706 | * [Competitive Programmer's Handbook](https://cses.fi/book/index.php) by *Antti Laaksonen* 707 | 708 | * [Competetive Programming](https://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp2.pdf) by *Steven Halim* **[pdf]** 709 | 710 | * [Competitive Programming in Python: 128 Algorithms to Develop your Coding Skills](https://ia804600.us.archive.org/14/items/competitive-programming/Competitive%20Programming.pdf) by *Christoph Dürr* and *Jill-Jênn Vie* 711 | 712 | ## Compilers and Interpreters 713 | 714 | * [A Compiler Writing Journey](https://github.com/DoctorWkt/acwj) by *Warren* 715 | 716 | * [A practical introduction to parsing](https://jhwlr.io/intro-to-parsing) by *Jan Procházka* 717 | 718 | * [Build Your Own Lisp](https://buildyourownlisp.com) by *Daniel Holden* 719 | 720 | * **Building a Toy Programming Language in Python** by *Miguel Grinberg* 721 | * [Part 1](https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python) 722 | * [Part 2](https://blog.miguelgrinberg.com/post/building-a-toy-programming-language-in-python-part-2) 723 | 724 | * **Building the fastest Lua interpreter.. automatically!** by *Haoran Xu* 725 | * [Part 1](https://sillycross.github.io/2022/11/22/2022-11-22) 726 | * [Part 2: Building a baseline JIT for Lua automatically](https://sillycross.github.io/2023/05/12/2023-05-12) 727 | 728 | * [Compiler Design in C](https://holub.com/compiler) by *Allen I. Holub* 729 | 730 | * [Compiling to Assembly from Scratch](https://keleshev.com/compiling-to-assembly-from-scratch) by *Vladimir Keleshev* 731 | 732 | * [Crafting Interpreters](http://craftinginterpreters.com) by *Robert Nystrom* 733 | 734 | * [Creating the Bolt Compiler](https://mukulrathi.co.uk/create-your-own-programming-language/intro-to-compiler) by *Mukul Rathi* 735 | 736 | * [Essentials of Compilation: An Incremental Approach](https://iucompilercourse.github.io/tutorial-web-page) by *Geremy G. Siek* 737 | 738 | * [Graal Truffle tutorial](https://www.endoflineblog.com/graal-truffle-tutorial-part-0-what-is-truffle) by *Adam Ruka* 739 | 740 | * [How Clang Compiles a Function](https://blog.regehr.org/archives/1605) by *John Regehr* 741 | 742 | * [How LLVM Optimizes a Function](https://blog.regehr.org/archives/1603) by *John Regehr* 743 | 744 | * **Introduction to parser combinators** by *James Coglan* 745 | * [Part 1](https://blog.jcoglan.com/2017/07/06/introduction-to-parser-combinators) 746 | * [Part 2: Precedence and associativity in recursive descent](https://blog.jcoglan.com/2017/07/07/precedence-and-associativity-in-recursive-descent) 747 | * [Part 3: Packrat parsing: a top-down performance improvement](https://blog.jcoglan.com/2017/07/30/packrat-parsing-a-top-down-performance-improvement) 748 | 749 | * [Let's Build a Compiler](https://xmonader.github.io/letsbuildacompiler-pretty) by *Jack Crenshaw* 750 | 751 | * **Let's make a Teeny Tiny compiler** by *Austin Z. Henley* 752 | * [Part 1](https://austinhenley.com/blog/teenytinycompiler1.html) 753 | * [Part 2](https://austinhenley.com/blog/teenytinycompiler2.html) 754 | * [Part 3](https://austinhenley.com/blog/teenytinycompiler3.html) 755 | 756 | * **Let's Write a Compiler** by *Brian Robert Callahan* 757 | * [Part 1: Introduction, selecting a language, and doing some planning](https://briancallahan.net/blog/20210814.html) 758 | * [Part 2: A lexer](https://briancallahan.net/blog/20210815.html) 759 | * [Part 3: A parser](https://briancallahan.net/blog/20210816.html) 760 | * [Part 4: Testing](https://briancallahan.net/blog/20210817.html) 761 | * [Part 5: A code generator](https://briancallahan.net/blog/20210818.html) 762 | * [Part 6: Input and output](https://briancallahan.net/blog/20210819.html) 763 | * [Part 7: Arrays](https://briancallahan.net/blog/20210822.html) 764 | * [Part 8: Strings, forward references, and conclusion](https://briancallahan.net/blog/20210826.html) 765 | 766 | * [Low-Level Software Security for Compiler Developers](https://llsoftsec.github.io/llsoftsecbook) by *Bill Wendling*, *Lucian Popescu*, and *Anders Waldenborg* 767 | 768 | * [Make A Language](https://arzg.github.io/lang) - A series about making a programming language called *Eldiro* using the *Rust* programming language. 769 | 770 | * [Strategies for very fast Lexers](https://xnacly.me/posts/2025/fast-lexer-strategie) 771 | 772 | * [Threaded code](https://muforth.dev/threaded-code) 773 | 774 | * [Writing a C compiler in 500 lines of Python](https://vgel.me/posts/c500) by *Theia Vogel* 775 | 776 | * [Writing a C Compiler, in Zig](https://asibahi.github.io/thoughts/c-compiler-1-zig) by *Rahman Sibahi* 777 | 778 | ### Static Program Analysis 779 | 780 | * [Principles of Program Analysis](https://www.researchgate.net/publication/265352570_Principles_of_Program_Analysis) by *Flemming Nielson*, *Hanne Riis Nielson*, and *Chris Hankin* 781 | 782 | * [Secure Programming with Static Analysis](https://ptgmedia.pearsoncmg.com/images/9780321424778/samplepages/9780321424778.pdf) by *Brian Chess* and *Jacob West* 783 | 784 | * [Static Program Analysis](https://cs.au.dk/~amoeller/spa) by *Anders Møller* and *Michael I. Schwartzbach* 785 | 786 | ## Computer Graphics 787 | 788 | * [3D Math Primer for Graphics and Game Development](https://gamemath.com/book/intro.html) by *Fletcher Dunn* and *Ian Parberry* 789 | 790 | * [A fast and precise triangle rasterizer](https://kristoffer-dyrkorn.github.io/triangle-rasterizer) by *Kristoffer Dyrkorn* 791 | 792 | * [A trip through the Graphics Pipeline](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index) by *Fabian Giesen* 793 | 794 | * **A Quick Introduction to Workgraphs** by *Kostas Anagnostou* 795 | * [Part 1](https://interplayoflight.wordpress.com/2024/06/29/a-quick-introduction-to-workgraphs) 796 | * [Part 2: Performance](https://interplayoflight.wordpress.com/2024/09/09/an-introduction-to-workgraphs-part-2-performance) 797 | 798 | * [Blocky Planet — Making Minecraft Spherical](https://www.bowerbyte.com/posts/blocky-planet) 799 | 800 | * **Building Real-Time Global Illumination** by *Jason McGhee* 801 | * [Part 1: Naive GI: A Foundation](https://jason.today/gi) 802 | * [Part 2: Radiance Cascades](https://jason.today/rc) 803 | 804 | * [Collection of AMD Research Publications](https://gpuopen.com/learn/publications) 805 | 806 | * [Computer Graphics from Scratch](https://gabrielgambetta.com/computer-graphics-from-scratch) by *Gabriel Gambetta* 807 | 808 | * [Crash Course in BRDF Implementation](https://boksajak.github.io/blog/BRDF) by *Jakub Boksansky* 809 | 810 | * [FrostKiwi's Secrets](https://blog.frost.kiwi) by *Wladislav Artsimovich* 811 | * [AAA - Analytical Anti-Aliasing](https://blog.frost.kiwi/analytical-anti-aliasing) 812 | * [How to (and how not to) fix color banding](https://blog.frost.kiwi/GLSL-noise-and-radial-gradient) 813 | * [How video games use LUTs and how you can too](https://blog.frost.kiwi/WebGL-LUTS-made-simple) 814 | * [Video Game Blurs (and how the best one works)](https://blog.frost.kiwi/dual-kawase) 815 | 816 | * [Fundamentals of Radiance Cascades](https://m4xc.dev/articles/fundamental-rc) 817 | 818 | * [Noise is Beautiful: Part 1: Procedural textures](https://liu.diva-portal.org/smash/get/diva2:1954979/FULLTEXT01.pdf) by *Stefan Gustavson* **[pdf]** 819 | 820 | * **Noise is Beautiful** by *Stefan Gustavson* 821 | * [Part 1: Procedural textures](https://computer-graphics.se/TNM084/Files/Noise%20if%20beautiful%20Part%201%2020241103.pdf) **[pdf]** 822 | * [Part 2: Noise is beautiful](https://computer-graphics.se/TNM084/Files/Noise%20is%20beautiful%20Part%202%2020241103.pdf) **[pdf]** 823 | 824 | * [Radiometry: Overview](https://momentsingraphics.de/RadiometryOverview.html) by *Christoph Peters* 825 | 826 | * [Rotations with quaternions](https://imadr.me/rotations-with-quaternions) 827 | 828 | * **GPU Gems Books Series** 829 | * [GPU Gems](https://developer.nvidia.com/gpugems/gpugems/contributors) 830 | * [GPU Gems 2](https://developer.nvidia.com/gpugems/gpugems2/copyright) 831 | * [GPU Gems 3](https://developer.nvidia.com/gpugems/gpugems3/contributors) 832 | 833 | * [GPU Performance for Game Artists](http://fragmentbuffer.com/gpu-performance-for-game-artists) by *Keith O’Conor* 834 | 835 | * [GPU Programming Primitives for Computer Graphics](https://gpu-primitives-course.github.io) by *Daniel Meister*, *Atsushi Yoshimura*, and *Chih-Chen Kao* 836 | 837 | * [Implementing a tiny CPU rasterizer](https://lisyarus.github.io/blog/posts/implementing-a-tiny-cpu-rasterizer.html) by *Nikita Lisitsa* 838 | 839 | * [Implementing Order-Independent Transparency](https://osor.io/OIT) by *Rubén Osorio López* 840 | 841 | * [Learn Computer Graphics From Scratch](https://www.scratchapixel.com) 842 | 843 | * [Let's Make a Voxel Engine](https://sites.google.com/site/letsmakeavoxelengine) 844 | 845 | * [Lode's Computer Graphics Tutorial](https://lodev.org/cgtutor) by *Lode Vandevenne* 846 | 847 | * [Marching Cubes, Explained Using Marching Squares](https://blog.42yeah.is/algorithm/2023/07/15/marching-cubes.html) 848 | 849 | * [Matrix Compendium](https://gpuopen.com/learn/matrix-compendium/matrix-compendium-intro) by *Łukasz Izdebski* - The main purpose of this article is to gather information in the field of transformation in computer graphics and put it in one place. 850 | 851 | * [Ocean Rendering, Part 1 - Simulation](https://rtryan98.github.io/2025/10/04/ocean-rendering-part-1.html) by *Robert Ryan* 852 | 853 | * [Optimizing Software Occlusion Culling](https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index) by *Fabian Giesen* 854 | 855 | * **Order Independent Transparency** by *Kostas Anagnostou* 856 | * **Rasterized** 857 | * [Part 1](https://interplayoflight.wordpress.com/2022/06/25/order-independent-transparency-part-1) 858 | * [Part 2](https://interplayoflight.wordpress.com/2022/07/02/order-independent-transparency-part-2) 859 | * [Part 3](https://interplayoflight.wordpress.com/2022/07/10/order-independent-transparency-endgame) 860 | * **Raytraced** 861 | * [Part 1](https://interplayoflight.wordpress.com/2023/07/15/raytraced-order-independent-transparency) 862 | * [Part 2](https://interplayoflight.wordpress.com/2023/07/30/raytraced-order-independent-transparency-part-2) 863 | 864 | * [Physically Based Rendering in Filament](https://google.github.io/filament/Filament.md.html) by *Romain Guy* and *Mathias Agopian* 865 | 866 | * [Physically based rendering from first principles](https://imadr.me/pbr) 867 | 868 | * [Physically Based Shading in Theory and Practice](https://blog.selfshadow.com/publications/s2025-shading-course) by *Laurent Belcour*, *Naty Hoffman*, *Alain Hostettler*, *Peter Kutz*, *Kentaro Suzuki*, *Hajime Uchimura*, *Andrea Weidlich*, *Kenichiro Yasutomi * 869 | 870 | * **Probability Theory for Physically Based Rendering** by *Jacco Bikker* 871 | * [Part 1](https://jacco.ompf2.com/2019/12/11/probability-theory-for-physically-based-rendering) 872 | * [Part 2](https://jacco.ompf2.com/2019/12/13/probability-theory-for-physically-based-rendering-part-2) 873 | 874 | * [Rasterising a triangle](https://jtsorlinis.github.io/rendering-tutorial) by *Jason Tsorlinis* 875 | 876 | * [RasterTek toturials](https://rastertek.com/tutindex.html) 877 | 878 | * **Recreating Nanite** by *Xavier Niochaut* 879 | * [Part 1 - The Plan](https://jglrxavpok.github.io/2023/11/12/recreating-nanite-the-plan.html) 880 | * [Part 2 - Visibility buffer](https://jglrxavpok.github.io/2023/11/26/recreating-nanite-visibility-buffer.html) 881 | * [Part 3 - Cluster rendering](https://jglrxavpok.github.io/2023/12/07/recreating-nanite-cluster-rendering.html) 882 | * [Part 4 - LOD generation](https://jglrxavpok.github.io/2024/01/19/recreating-nanite-lod-generation.html) 883 | * [Part 5 - A basic material pass](https://jglrxavpok.github.io/2024/02/06/recreating-nanite-material-pass.html) 884 | * [Part 6 - LOD generation - faster, better, simpler](https://jglrxavpok.github.io/2024/03/12/recreating-nanite-faster-lod-generation.html) 885 | * [Part 7 - Runtime LOD selection](https://jglrxavpok.github.io/2024/04/02/recreating-nanite-runtime-lod-selection.html) 886 | * [Part 8 - Mesh shader time](https://jglrxavpok.github.io/2024/05/13/recreating-nanite-mesh-shader-time.html) 887 | * [Part 9 - Raytracing](https://jglrxavpok.github.io/2024/08/21/recreating-nanite-raytracing.html) 888 | 889 | * [Software rasterizing hair](https://www.sctheblog.com/blog/hair-software-rasterize) by *Marcin Matuszczyk* 890 | 891 | * [Texture-less Text Rendering](https://poniesandlight.co.uk/reflect/debug_print_text) by *Tim Gfrerer* 892 | 893 | * [The Geometry Behind Normal Maps](https://www.shlom.dev/articles/geometry-behind-normal-maps) by *Shlomi Nissan* 894 | 895 | * [Voxel Engine in a Weekend](https://daymare.net/blogs/voxel-engine-in-a-weekend) 896 | 897 | * [WebGL2 Fundamentals](https://webgl2fundamentals.org/) 898 | 899 | ### Creative Coding 900 | 901 | * [Creative Coding Tutorials and Articles](https://bleuje.com/tutorials) by *Etienne Jacob* 902 | 903 | * [Inigo Quilez Website](https://iquilezles.org) 904 | 905 | * [Paul Bourke's Website](https://paulbourke.net) 906 | 907 | ### Curves and Surfaces 908 | 909 | * [A Primer on Bézier Curves](https://pomax.github.io/bezierinfo) 910 | 911 | * [Cubic spline interpolation](https://eli.thegreenplace.net/2023/cubic-spline-interpolation) by *Eli Bendersky* 912 | 913 | * [Curves and Surfaces](https://ciechanow.ski/curves-and-surfaces) by *Bartosz Ciechanowski* 914 | 915 | ### DirectX 12 916 | 917 | * [A Gentle Introduction to D3D12](https://alextardif.com/DX12Tutorial.html) by *Alex Tardif* 918 | 919 | * [All Sources of DirectX 12 Documentation](https://asawicki.info/news_1794_all_sources_of_directx_12_documentation) by *Adam Sawicki* 920 | 921 | * **Compute with DirectX 12** by *Stefan Pijnacker* 922 | * [Part 1: the Theory](https://www.stefanpijnacker.nl/article/compute-with-directx12-part-1) 923 | * [Part 2: The Setup](https://www.stefanpijnacker.nl/article/compute-with-directx-12-part-2) 924 | 925 | * [DirectX-Graphics-Samples](https://github.com/microsoft/DirectX-Graphics-Samples) 926 | 927 | * [Getting Started With DirectX Raytracing](https://renderingpixels.com/2022/07/getting-started-with-directx-raytracing) by *Seppe Dekeyser* 928 | 929 | * [GPU Work Graphs mesh nodes in Microsoft DirectX® 12](https://gpuopen.com/learn/work_graphs_mesh_nodes/work_graphs_mesh_nodes-intro) by *Max Oberberger* 930 | 931 | * [Ten Years of D3D12](https://therealmjp.github.io/posts/ten-years-of-d3d12) by *Matt Pettineo* 932 | 933 | ### Image Processing 934 | 935 | #### Dithering 936 | 937 | * [Atkinson Dithering](https://beyondloom.com/blog/dither.html) by *John Earnest* 938 | 939 | * [Dithering in Colour](https://obrhubr.org/dithering-in-colour) by *Niklas Oberhuber* 940 | 941 | * [Dithering on the GPU](https://alex-charlton.com/posts/Dithering_on_the_GPU) by *Alex Charlton* 942 | 943 | * [Ditherpunk — The article I wish I had about monochrome image dithering](https://surma.dev/things/ditherpunk) by *Surma* 944 | 945 | * [Image Dithering: Eleven Algorithms and Source Code](https://tannerhelland.com/2012/12/28/dithering-eleven-algorithms-source-code.html) by *Tanner Helland* 946 | 947 | * [Writing My Own Dithering Algorithm in Racket](https://amanvir.com/blog/writing-my-own-dithering-algorithm-in-racket) by *Amanvir Parhar* 948 | 949 | ### Metal 950 | 951 | * [Drawing Graphics on Apple Vision with the Metal Rendering API](https://github.com/gnikoloff/drawing-graphics-on-apple-vision-with-metal-rendering-api) by *Georgi Nikolov* 952 | 953 | * [Metal Tutorial](https://metaltutorial.com) by *Will Martin* 954 | 955 | ### OpenGL 956 | 957 | * [A Guide to Modern OpenGL Functions](https://github.com/fendevel/Guide-to-Modern-OpenGL-Functions) 958 | 959 | * [Best Practices for Modern OpenGL](https://juandiegomontoya.github.io/modern_opengl.html) 960 | 961 | * [Learn OpenGL](https://learnopengl.com) by *Joey de Vries* 962 | 963 | * [Learning Modern 3D Graphics Programming](https://paroj.github.io/gltut) by *Jason L. McKesson* 964 | 965 | * [OGLdev: Modern OpenGL tutorials](https://ogldev.org) by *Etay Meiri* 966 | 967 | * [OpenGL Tutorial](https://www.opengl-tutorial.org) 968 | 969 | ### Ray Tracing 970 | 971 | * [A raycasting engine in 7 easy steps](https://austinhenley.com/blog/raycasting.html) by *Austin Z. Henley* 972 | 973 | * [Amanatides and Woo's fast Voxel Traversal](https://m4xc.dev/articles/amanatides-and-woo) 974 | 975 | * [Demystifying multiple importance sampling](https://lisyarus.github.io/blog/posts/multiple-importance-sampling.html) by *Nikita Lisitsa* 976 | 977 | * [How to build a BVH](https://jacco.ompf2.com/2022/04/13/how-to-build-a-bvh-part-1-basics) by *Jacco Bikker* 978 | 979 | * **Introduction of the Raytracing Technology** 980 | * [Part 1](https://blog.en.uwa4d.com/2022/12/14/introduction-of-the-raytracing-technology-part-1) 981 | * [Part 2](https://blog.en.uwa4d.com/2022/12/21/introduction-of-the-raytracing-technology-part-2) 982 | 983 | * [Physically Based Rendering: From Theory To Implementation](https://www.pbr-book.org/) by *Matt Pharr*, *Wenzel Jakob*, and *Greg Humphreys* 984 | 985 | * [Ray-Casting Tutorial For Game Development And Other Purposes](https://permadi.com/1996/05/ray-casting-tutorial-table-of-contents) by *F. Permadi* 986 | 987 | * [Ray Tracing Gems](https://link.springer.com/book/10.1007/978-1-4842-4427-2) by *Eric Haines and Tomas Akenine-Möller* 988 | 989 | * [Ray Tracing Gems II](https://link.springer.com/book/10.1007/978-1-4842-7185-8) by *Adam Marrs, Peter Shirley, and Ingo Wald* 990 | 991 | * [Ray Tracing in One Weekend: The Book Series](https://raytracing.github.io) by *Peter Shirley* 992 | 993 | * [Ray Tracing with Voxels in C++](https://jacco.ompf2.com/2024/04/24/ray-tracing-with-voxels-in-c-series-part-1) by *Jacco Bikker* 994 | 995 | * [Raymarching explained interactively](https://imadr.me/raymarching-explained-interactively) 996 | 997 | ### Shaders 998 | 999 | * [3D Game Shaders For Beginners](https://github.com/lettier/3d-game-shaders-for-beginners) 1000 | 1001 | * **A Beginner's Guide to Coding Graphics Shaders** by *Omar Shehata* 1002 | * [Part 1](https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders--cms-23313) 1003 | * [Part 2](https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders-part-2--cms-24111) 1004 | * [Part 3](https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders-part-3--cms-24351) 1005 | 1006 | * **A Journey Into Shaders** by *Antoine Mayerowitz* 1007 | * [Part I: The blob](https://www.mayerowitz.io/blog/a-journey-into-shaders) 1008 | 1009 | * [GM Shaders](https://gmshaders.com) - All about shaders for GameMaker! 1010 | 1011 | * [Introducing GPU Reshape - shader instrumentation for everyone](https://gpuopen.com/learn/introducing-gpu-reshape-shader-instrumentation-toolset) by *Miguel Petersen* 1012 | 1013 | * [Introduction to Shaders](https://www.hexaquo.at/pages/introduction-to-shaders) by *Karl Bittner* 1014 | 1015 | * [Learn Shader Programming with Rick and Morty](https://danielchasehooper.com/posts/code-animated-rick) by *Daniel Hooper* 1016 | 1017 | * [Mesh Shaders on RDNA™ Graphics Cards](https://gpuopen.com/learn/mesh_shaders/mesh_shaders-index) by *Max Oberberger*, *Bastian Kuth* and *Quirin Meyer* 1018 | 1019 | * [No More Shading Languages: Compiling C++ to Vulkan Shaders](https://diglib.eg.org/server/api/core/bitstreams/e3553000-9d53-4d13-a5b0-29dc16a116de/content) by *H. Devillers*, M. Kurtenacker*, *R. Membarth*, *S. Lemme*, *M. Kenzel3*, *Ö. Yazici1*, and *P. Slusallek* **[pdf]** 1020 | 1021 | * [On Crafting Painterly Shaders](https://blog.maximeheckel.com/posts/on-crafting-painterly-shaders) 1022 | 1023 | * [Post-Processing Shaders as a Creative Medium](https://blog.maximeheckel.com/posts/post-processing-as-a-creative-medium) 1024 | 1025 | * [Shaders For People Who Don't Know How To Shader](https://github.com/Xibanya/ShaderTutorials) by *Manuela Malasaña* 1026 | 1027 | * [Shader Tutorials by Ronja](https://www.ronja-tutorials.com) 1028 | 1029 | * [The Best Darn Grid Shader (Yet)](https://bgolus.medium.com/the-best-darn-grid-shader-yet-727f9278b9d8) by *Ben Golus* 1030 | 1031 | * [The Book of Shaders](https://thebookofshaders.com/) by *Patricio Gonzalez Vivo and Jen Lowe* 1032 | 1033 | ### Vulkan 1034 | 1035 | * [A Vulkan introduction](https://www.4rknova.com//blog/2025/09/10/vulkan-intro) by *Nikos Papadopoulos* 1036 | 1037 | * [I Am Graphics And So Can You](https://www.fasterthan.life/blog) - a series of blog posts about implementing a Vulkan renderer for Doom 3 by *Dustin H. Land* 1038 | 1039 | * [How I learned Vulkan and wrote a small game engine with it](https://edw.is/learning-vulkan) by *Elias Daler* 1040 | 1041 | * [NVIDIA Vulkan Ray Tracing Tutorial](https://nvpro-samples.github.io/vk_raytracing_tutorial_KHR) by *Martin-Karl Lefrançois*, *Pascal Gautron*, *Nia Bickford*, *David Akeley* 1042 | 1043 | * [Vulkan – Cross platform 3D Graphics](https://www.vulkan.org) 1044 | 1045 | * [Vulkan Guide](https://vkguide.dev) 1046 | 1047 | * [Vulkan Raytracing Tutorials](https://iorange.github.io) 1048 | 1049 | * [Vulkan Tutorial](https://vulkan-tutorial.com) by *Alexander Overvoorde* 1050 | 1051 | * [Vulkan Tutorial (Rust)](https://kylemayes.github.io/vulkanalia) by *Kyle Mayes* 1052 | 1053 | ### WebGPU 1054 | 1055 | * [Learn WebGPU](https://eliemichel.github.io/LearnWebGPU) by *Elie Michel* 1056 | 1057 | * [Learn Wgpu](https://sotrh.github.io/learn-wgpu) by *Ben Hansen* 1058 | 1059 | * [Migrating from WebGL to WebGPU](https://hackernoon.com/migrating-from-webgl-to-webgpu) by *Dmitrii Ivashchenko* 1060 | 1061 | * [WebGPU Fundamentals](https://webgpufundamentals.org) 1062 | 1063 | * [WebGPU Unleashed: A Practical Tutorial](https://shi-yan.github.io/webgpuunleashed) by *Shi Yan* 1064 | 1065 | * [Your first WebGPU app](https://codelabs.developers.google.com/your-first-webgpu-app) by *Brandon Jones* and *François Beaufort* 1066 | 1067 | ## Computer Networks and Network Programming 1068 | 1069 | * [A comprehensive guide for Linux Network (Socket) programming](https://github.com/nguyenchiemminhvu/LinuxNetworkProgramming) 1070 | 1071 | * [An Introduction to Computer Networks](http://intronetworks.cs.luc.edu/current2/html) by *Peter L. Dordal* 1072 | 1073 | * [Computer Networks: A Systems Approach](https://book.systemsapproach.org) by *Larry Peterson and Bruce Davie* 1074 | 1075 | * [Concurrent Servers](https://eli.thegreenplace.net/2017/concurrent-servers-part-1-introduction) by *Eli Bendersky* 1076 | 1077 | * [HTTP2 Explained](https://daniel.haxx.se/http2) by *Daniel Stenberg* 1078 | 1079 | * [HTTP/3 explained](https://http3-explained.haxx.se) by *Daniel Stenberg* 1080 | 1081 | * [Implementing fast TCP fingerprinting with eBPF](https://halb.it/posts/ebpf-fingerprinting-1) by *Alberto Ventafridda* 1082 | 1083 | * [Implementing TCP In Rust](https://github.com/Ghvstcode/Rust-Tcp) by *Ghvst Code* 1084 | 1085 | * **Let's code a TCP/IP stack** by *Sami Niiranen* 1086 | * [Part 1: Ethernet & ARP](https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp) 1087 | * [Part 2: IPv4 & ICMPv4](https://www.saminiir.com/lets-code-tcp-ip-stack-2-ipv4-icmpv4) 1088 | * [Part 3: TCP Basics & Handshake](https://www.saminiir.com/lets-code-tcp-ip-stack-3-tcp-handshake) 1089 | * [Part 4: TCP Data Flow & Socket API](https://www.saminiir.com/lets-code-tcp-ip-stack-4-tcp-data-flow-socket-api) 1090 | * [Part 5: TCP Retransmission](https://www.saminiir.com/lets-code-tcp-ip-stack-5-tcp-retransmission) 1091 | 1092 | * [Mediocre Engineer’s guide to HTTPS](https://devonperoutky.super.site/blog-posts/mediocre-engineers-guide-to-https) by *Devon Peroutky* 1093 | 1094 | * [Networking 101](https://internalpointers.com/post-group/networking-101) by *Internal Pointers* 1095 | 1096 | * [Visual guide to SSH tunneling and port forwarding](https://ittavern.com/visual-guide-to-ssh-tunneling-and-port-forwarding) 1097 | 1098 | ## Cryptography 1099 | 1100 | * [A Graduate Course in Applied Cryptography](https://toc.cryptobook.us) by *Dan Boneh* and *Victor Shoup* 1101 | 1102 | * [Advanced Topics in Cryptography: From Lattices to Program Obfuscation](https://advancedcrypto.github.io) by *Vinod Vaikuntanathan* 1103 | 1104 | * [All I Know About Certificates](https://www.pixelstech.net/article/1722045726-All-I-Know-About-Certificates----Certificate-Authority) by *Ke Pi* 1105 | 1106 | * [Coding Theory & Cryptography](http://www.mathstat.ualberta.ca/~bowman/m422/m422.pdf) by *John C. Bowman* **[pdf]** 1107 | 1108 | * [Cryptography: An Introduction (3rd Edition)](https://www.cs.umd.edu/~waa/414-F11/IntroToCrypto.pdf) by *Nigel Smart* **[pdf]** 1109 | 1110 | * [Practical Cryptography for Developers](https://cryptobook.nakov.com) by *Svetlin Nakov* 1111 | 1112 | * [The Beginner's Textbook for Fully Homomorphic Encryption](https://arxiv.org/abs/2503.05136) by *Ronny Ko* 1113 | 1114 | ## Data Science 1115 | 1116 | * [Advanced Data Science: Statistics and Prediction Algorithms Through Case Studies](https://rafalab.dfci.harvard.edu/dsbook-part-2) by *Rafael A. Irizarry* 1117 | 1118 | * [Data Science at the Command Line](https://jeroenjanssens.com/dsatcl) by *Jeroen Janssens* 1119 | 1120 | * [Fundamentals of Data Visualization](https://clauswilke.com/dataviz) by *Claus O. Wilke* 1121 | 1122 | * [Hands-On Data Visualization](https://handsondataviz.org) by *Jack Dougherty* and *Ilya Ilyankou* 1123 | 1124 | * [Introduction to Data Science: Data Wrangling and Visualization with R](https://rafalab.dfci.harvard.edu/dsbook-part-1) by *Rafael A. Irizarry* 1125 | 1126 | * [Mathematical Methods in Data Science (with Python)](https://mmids-textbook.github.io) by *Sebastien Roch* 1127 | 1128 | * [Mining Social Media](https://socialdata.site) by *Lam Thuy Vo* 1129 | 1130 | * [Topics in Mathematics of Data Science](https://ocw.mit.edu/courses/18-s096-topics-in-mathematics-of-data-science-fall-2015) by *Dr. Afonso Bandeira* 1131 | 1132 | * [Towards Data Science](https://towardsdatascience.com) - The world’s leading publication for data science, AI, and ML professionals. 1133 | 1134 | ## Debuggers 1135 | 1136 | * [Debugging with GDB](https://sourceware.org/gdb/current/onlinedocs/gdb.html) 1137 | 1138 | * [How Does a C Debugger Work?](https://blog.0x972.info/?d=2014/11/13/10/40/50-how-does-a-debugger-work) by *Kevin Pouget* 1139 | 1140 | * [Writing a Linux Debugger](https://blog.tartanllama.xyz/writing-a-linux-debugger-setup) by *Sy Brand* 1141 | 1142 | * **Writing a Debugger From Scratch** by *Tim Misiak* 1143 | * [Part 1 - Attaching to a Process](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-1) 1144 | * [Part 2 - Register State and Stepping](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-2) 1145 | * [Part 3 - Reading Memory](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-3) 1146 | * [Part 4 - Exports and Private Symbols](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-4) 1147 | * [Part 5 - Breakpoints](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-5) 1148 | * [Part 6 - Stacks](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-6) 1149 | * [Part 7 - Disassembly](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-7) 1150 | * [Part 8 - Source and Symbols](https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-8) 1151 | 1152 | ## Databases 1153 | 1154 | * [Database Design for Google Calendar: a tutorial](https://kb.databasedesignbook.com/posts/google-calendar) by *Alexey Makhotkin* 1155 | 1156 | * [Database Fundamentals](https://tontinton.com/posts/database-fundementals) by *Tony Solomonik* 1157 | 1158 | * [The Theory of Relational Databases](http://web.cecs.pdx.edu/~maier/TheoryBook/TRD.html) by *David Maier* 1159 | 1160 | ### Databases Development 1161 | 1162 | * [B-trees and database indexes](https://planetscale.com/blog/btrees-and-database-indexes) by *Benjamin Dicken* 1163 | 1164 | * [Build Your Own Database From Scratch in Go](https://build-your-own.org/database) by *James Smith* 1165 | 1166 | * **Build your own SQLite** by *Geoffrey Copin* 1167 | * [Part 1: Listing tables](https://blog.sylver.dev/build-your-own-sqlite-part-1-listing-tables) 1168 | * [Part 2: Scanning large tables](https://blog.sylver.dev/build-your-own-sqlite-part-2-scanning-large-tables) 1169 | * [Part 3: SQL parsing 101](https://blog.sylver.dev/build-your-own-sqlite-part-3-sql-parsing-101) 1170 | * [Part 4: reading tables metadata](https://blog.sylver.dev/build-your-own-sqlite-part-4-reading-tables-metadata) 1171 | * [Part 5: Evaluating queries](https://blog.sylver.dev/build-your-own-sqlite-part-5-evaluating-queries) 1172 | 1173 | * [Build Your Own Redis with C/C++](https://build-your-own.org/redis) by *James Smith* 1174 | 1175 | * [Concurrency Control and Recovery in Database Systems](https://www.microsoft.com/en-us/research/people/philbe/book) by *Philip A. Bernstein*, *Vassos Hadzilacos*, *Nathan Goodman* 1176 | 1177 | * [Jacob's blog: On database building blocks](https://jacobsherin.com) by *Sherin Jacob* 1178 | * [A B+Tree Node Underflows: Merge or Borrow?](https://jacobsherin.com/posts/2025-08-16-bplustree-compare-borrow-merge) 1179 | * [Cache-Friendly B+Tree Nodes With Dynamic Fanout](https://jacobsherin.com/posts/2025-08-18-bplustree-struct-hack) 1180 | 1181 | * [Let's Build a Simple Database](https://cstack.github.io/db_tutorial) by *Connor Stack* 1182 | 1183 | ### NoSQL 1184 | 1185 | * [MongoDB Tutorial](https://www.mongodbtutorial.org) 1186 | 1187 | ### SQL 1188 | 1189 | * [Mode's SQL Tutorial](https://mode.com/sql-tutorial) 1190 | 1191 | * [SQL Tutorial](https://www.sqltutorial.org) - Master SQL quickly and effectively with clear concepts, hands-on examples, and interactive quizzes. 1192 | 1193 | * [SQL for the Weary](https://gvwilson.github.io/sql-tutorial) by *Greg Wilson* 1194 | 1195 | * [SQLBolt](https://sqlbolt.com) - Learn SQL with simple, interactive exercises. 1196 | 1197 | * [SQLZap](https://sqlzap.com) - Learn SQL with for Free. 1198 | 1199 | * [SQLZoo](https://sqlzoo.net) - SQL Tutorial. 1200 | 1201 | #### MySQL 1202 | 1203 | * [MySQL for Developers](https://planetscale.com/courses/mysql-for-developers) by *Aaron Francis* 1204 | 1205 | * [MySQL Tutorial](https://www.mysqltutorial.org) 1206 | 1207 | #### PostgreSQL 1208 | 1209 | * [PostgreSQL 14 Internals](https://postgrespro.com/community/books/internals) by *Egor Rogov* 1210 | 1211 | * [PostgreSQL Tutorial](https://www.postgresqltutorial.com) 1212 | 1213 | * [The Internals of PostgreSQL](https://www.interdb.jp/pg) by *Hironobu Suzuki* 1214 | 1215 | #### Oracle 1216 | 1217 | * [Oracle Tutorial](https://www.oracletutorial.com) 1218 | 1219 | ## Demoscene 1220 | 1221 | * [Graphics Tricks from Boomers](https://arnaud-carre.github.io/2024-09-08-4ktribute) - Technical details about a 4096 bytes Atari-STE intro, by *Arnaud Carré*. 1222 | 1223 | * [How a 64k intro is made](https://www.lofibucket.com/articles/64k_intro.html) by *Pekka Väänänen* 1224 | 1225 | * The making of Immersion 1226 | * [Part 1: A dive into the making of Immersion](https://www.ctrl-alt-test.fr/2018/a-dive-into-the-making-of-immersion) 1227 | * [Part 2: Texturing in a 64kB intro](http://www.ctrl-alt-test.fr/2018/texturing-in-a-64kb-intro) 1228 | * [Part 3: Procedural 3D mesh generation in a 64kB intro](https://www.ctrl-alt-test.fr/2023/procedural-3d-mesh-generation-in-a-64kb-intro) 1229 | 1230 | ## Design Patterns 1231 | 1232 | * [Building abstractions using higher-order functions](https://eli.thegreenplace.net/2023/building-abstractions-using-higher-order-functions) by *Eli Benderski* 1233 | 1234 | * [Data Engineering Design Patterns (DEDP)](https://www.dedp.online) 1235 | 1236 | * [Data-Oriented Design](https://www.dataorienteddesign.com/dodbook) by *Richard Fabian* 1237 | 1238 | * [Design Patterns & Refactoring](https://sourcemaking.com) *SourceMaking* 1239 | 1240 | * **Design Patterns in Python blog posts series** by *Racey Chan* 1241 | * [Decorators and Functional programming](https://www.lihil.cc/blog/decorators-and--functional-programming) 1242 | * [Design Patterns You Should Unlearn in Python: Part1](https://www.lihil.cc/blog/design-patterns-you-should-unlearn-in-python-part) 1243 | * [Design Patterns You Should Unlearn in Python: Part2](https://www.lihil.cc/blog/design-patterns-you-should-unlearn-in-python-part2) 1244 | * [Most Design Patterns Are Just Dependency Injection in Disguise](https://www.lihil.cc/blog/Most-Design-Patterns-Are-Just-Dependency-Injection-In-Disguise) 1245 | 1246 | * **Discovering observers** by *Sandor Dargo* 1247 | * [Part 1](https://www.sandordargo.com/blog/2025/09/03/observers-part1) 1248 | * [Part 2](https://www.sandordargo.com/blog/2025/09/10/observers-part2) 1249 | * [Part 3](https://www.sandordargo.com/blog/2025/09/17/observers-part3) 1250 | 1251 | * [The expression problem and Rust](https://purplesyringa.moe/blog/the-expression-problem-and-rust) by *Alisa Sireneva* 1252 | 1253 | * [From design patterns to category theory](https://blog.ploeh.dk/2017/10/04/from-design-patterns-to-category-theory) by *Mark Seemann* 1254 | 1255 | * [Game Programming Patterns](http://www.gameprogrammingpatterns.com) by *Robert Nystrom* 1256 | 1257 | * [Handles are the better pointers](https://floooh.github.io/2018/06/17/handles-vs-pointers.html) by *Andre Weissflog* 1258 | 1259 | * [Indices, not Pointers](https://joegm.github.io/blog/indices-not-pointers) by *Joe Mckay* 1260 | 1261 | * [Multiple Dispatch Series](https://eli.thegreenplace.net/2016/the-expression-problem-and-its-solutions) by *Eli Bendersky* 1262 | 1263 | * [Plugins Series](https://eli.thegreenplace.net/tag/plugins) by *Eli Bendersky* 1264 | 1265 | * [The Architecture of Open Source Applications](http://aosabook.org/en/index.html) 1266 | 1267 | ## DevOps 1268 | 1269 | * [DevOps with Docker: Containers for Beginners](https://courses.mooc.fi/org/uh-cs/courses/devops-with-docker) 1270 | 1271 | * [DevOps with Kubernetes: A not-so-gentle introduction to cloud-native container orchestration](https://courses.mooc.fi/org/uh-cs/courses/devops-with-kubernete) 1272 | 1273 | * [devopscube](https://devopscube.com) 1274 | 1275 | ## Digital Signal Processing 1276 | 1277 | * [Digital Signals Theory](https://brianmcfee.net/dstbook-site/content/intro.html) by *Brian McFee* 1278 | 1279 | * [Online Textbooks and Course Materials by Julius Orion Smith III](https://ccrma.stanford.edu/~jos) 1280 | * [AI Audio Signal Processing Reading List](https://cm-gitlab.stanford.edu/jos/music423-2023/-/blob/master/README.md) 1281 | * [Audio Signal Processing in FAUST](https://ccrma.stanford.edu/~jos/aspf) 1282 | * [Intoroduction to Digital Filters](https://ccrma.stanford.edu/~jos/filters) by *Julious O. Smith III** 1283 | * [Mathematics Of The Discrete Fourier Transform (Dft), Second Edition](https://ccrma.stanford.edu/~jos/mdft) 1284 | * [Physical Audio Signal Processing](https://ccrma.stanford.edu/~jos/pasp) 1285 | * [Spectral Audio Signal Processing](https://ccrma.stanford.edu/~jos/sasp) 1286 | 1287 | * [PySDR: A Guide to SDR and DSP using Python](https://pysdr.org) by *Dr. Marc Lichtman* 1288 | 1289 | * [Software-Defined Radio for Engineers](https://www.analog.com/media/en/training-seminars/design-handbooks/Software-Defined-Radio-for-Engineers-2018/SDR4Engineers.pdf) by *Travis F. Collins*, *Robin Getz*, *Di Pu*, and *Alexander M. Wyglinski* **[pdf]** 1290 | 1291 | * [The Scientist and Engineer's Guide to Digital Signal Processing](http://www.dspguide.com) by *Steven W. Smith, Ph.D.* 1292 | 1293 | ## Distributed systems 1294 | 1295 | * [Distributed systems for fun and profit](https://book.mixu.net/distsys) by *Mikito Takada* 1296 | 1297 | * [Implementing Raft](https://eli.thegreenplace.net/2020/implementing-raft-part-0-introduction) by *Eli Bendersky* 1298 | 1299 | * [Implementing the Raft distributed consensus protocol in Go](https://notes.eatonphil.com/2023-05-25-raft.html) by *Phil Eaton* 1300 | 1301 | * [Linearizability in distributed systems](https://eli.thegreenplace.net/2024/linearizability-in-distributed-systems) by *Eli Bendersky* 1302 | 1303 | * [Notes on Theory of Distributed Systems](http://www.cs.yale.edu/homes/aspnes/classes/465/notes.pdf) by *James Aspnes* **[pdf]** 1304 | 1305 | * [Patterns of Distributed Systems](https://martinfowler.com/articles/patterns-of-distributed-systems) by *Unmesh Joshi* 1306 | 1307 | * [Principles of Blockchains](https://web3.princeton.edu/principles-of-blockchains) by *Prof. Pramod Viswanath* **[Princeton]** 1308 | 1309 | * [Rewriting Kafka in Rust Async: Insights and Lessons Learned in Rust](https://wangjunfei.com/2025/06/18/Rewriting-Kafka-in-Rust-Async-Insights-and-Lessons-Learned) by *Rex Wang* 1310 | 1311 | * [Testing Distributed Systems](https://asatarin.github.io/testing-distributed-systems) - Curated list of resources on testing distributed systems by *Andrey Satarin*. 1312 | 1313 | ## Electronics 1314 | 1315 | * [ANALOG SEEKrets: DC to daylight … a master class in electronics design](https://www.eevblog.com/files/seekPDF.pdf) by *Leslie Green* **[pdf]** 1316 | 1317 | * [Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook) 1318 | 1319 | * [Ultimate Electronics](https://ultimateelectronicsbook.com) 1320 | 1321 | ## Emulators and Virtual Machines 1322 | 1323 | * [5 Days To Virtualization: A Series On Hypervisor Development](https://revers.engineering/7-days-to-virtualization-a-series-on-hypervisor-development) by *Daax Rynd, Aidan Khoury and Nick Peterson* 1324 | 1325 | * [Emulators writing tutorials] by *Alexander Dickson* 1326 | * [JavaScript Chip-8 Emulator](https://web.archive.org/web/20210804123851/http://blog.alexanderdickson.com/javascript-chip-8-emulator) 1327 | * **Write a NES Emulator with JavaScript** 1328 | * [Part 1](https://web.archive.org/web/20210624190954/http://blog.alexanderdickson.com/javascript-nes-emulator-part-1) 1329 | * [Part 2](https://web.archive.org/web/20210624190316/http://blog.alexanderdickson.com/javascript-nes-emulator-part-2) 1330 | 1331 | * [GameBoy Emulation in JavaScript](http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-CPU) by *Imran Nazar* 1332 | 1333 | * [Hypervisor in 1,000 Lines](https://1000hv.seiya.me/en) by *Seiya Nuta* 1334 | 1335 | * **Roll your own JavaScript runtime** by *Bartek Iwańczuk* 1336 | * [Part 1](https://deno.com/blog/roll-your-own-javascript-runtime) 1337 | * [Part 2](https://deno.com/blog/roll-your-own-javascript-runtime-pt2) 1338 | * [Part 3](https://deno.com/blog/roll-your-own-javascript-runtime-pt3) 1339 | 1340 | * [Write your Own Virtual Machine](https://justinmeiners.github.io/lc3-vm) by *Justin Meiners* and *Ryan Pendleton* 1341 | 1342 | * [Writing NES emulator in Rust](https://bugzmanov.github.io/nes_ebook) by *Rafael Bagmanov* 1343 | 1344 | ## Game Programming 1345 | 1346 | * [2D Game Development: From Zero To Hero](https://therealpenaz91.itch.io/2dgd-f0th) by *Daniele Penazzo* 1347 | 1348 | * [3D Game Engine Programming](https://www.3dgep.com) by *Jeremiah van Oosten* 1349 | 1350 | * [CSCI 181G PO: Game Engine Programming Course](https://cs.pomona.edu/classes/cs181g) 1351 | 1352 | * [Game Engineering](https://www.cs.usfca.edu/~galles/cs420) by *David Galles* 1353 | 1354 | * [How to program a text adventure in C](https://helderman.github.io/htpataic/htpataic01.html) by *Ruud Helderman* 1355 | 1356 | * [Isometric Projection in Game Development](https://pikuma.com/blog/isometric-projection-in-games) by *Gustavo Pezzi* 1357 | 1358 | * [Isometric Tutorials](https://clintbellanger.net/articles) by *Clint Bellanger* 1359 | 1360 | * [Procedural Content Generation in Games](https://www.pcgbook.com) by *Noor Shaker*, *Julian Togelius*, and *Mark J. Nelson* 1361 | 1362 | * **Procedural Island Generation** by *Chema Guerra* 1363 | * [Part 1](https://brashandplucky.com/2025/09/07/procedural-island-generation-i.html) 1364 | * [Part 2](https://brashandplucky.com/2025/09/10/procedural-island-generation-ii.html) 1365 | * [Part 3](https://brashandplucky.com/2025/09/17/procedural-island-generation-iii.html) 1366 | * [Part 4](https://brashandplucky.com/2025/09/22/procedural-island-generation-iv.html) 1367 | * [Part 5](https://brashandplucky.com/2025/09/25/procedural-island-generation-v.html) 1368 | * [Part 6](https://brashandplucky.com/2025/09/28/procedural-island-generation-vi.html) 1369 | 1370 | * [Programming Vehicles in Games](https://wassimulator.com/blog/programming/programming_vehicles_in_games.html) by *Wassim Alhajomar* 1371 | 1372 | * [Retro Rampage](https://github.com/nicklockwood/RetroRampage) - A tutorial series in which you will learn how to build a Wolfenstein-like game from scratch, in Swift by *Nick Lockwood* 1373 | 1374 | * [Roguelike Tutorial - In Rust](https://bfnightly.bracketproductions.com) by *Herbert Wolverson* 1375 | 1376 | * [Reverse engineering the rendering of The Witcher 3](https://astralcode.blogspot.com/2018/11/reverse-engineering-rendering-of.html) 1377 | 1378 | * [Terrain programmig](https://www.shamusyoung.com/twentysidedtale/?p=141) by *Shamus Young* 1379 | 1380 | * [The guide to implementing 2D platformers](http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers) by *Rodrigo Monteiro* 1381 | 1382 | * [Scroll Back: The Theory and Practice of C`ameras in Side-Scrollers](https://docs.google.com/document/d/1iNSQIyNpVGHeak6isbP6AHdHD50gs8MNXF1GCf08efg/pub) by *Itay Keren* 1383 | 1384 | * [A First-Person Game in 2KB](https://grantshandy.github.io/raycasting/) by *Grant Handy* 1385 | 1386 | ### Game Engines 1387 | 1388 | * [Bevy game development](https://taintedcoders.com) by *Nolan Tait* 1389 | 1390 | * [C# and Shader Tutorials for the Unity Engine](https://catlikecoding.com/unity/tutorials) by *Jasper Flick* 1391 | 1392 | * [Godot Engine 4 Tutorials](https://catlikecoding.com/godot) by *Jasper Flick* 1393 | 1394 | * [Unofficial Bevy Cheat Book](https://bevy-cheatbook.github.io) 1395 | 1396 | ### Game Physics 1397 | 1398 | * [2D Cloth Simulation in Odin with raylib](https://www.marianpekar.com/blog/2d-cloth-simulation-in-odin-with-raylib) by *Marian Pekár* 1399 | 1400 | * [Gentle Introduction to Realtime Fluid Simulation for Programmers and Technical Artists](https://shahriyarshahrabi.medium.com/gentle-introduction-to-fluid-simulation-for-programmers-and-technical-artists-7c0045c40bac) by *Shahriar Shahrabi* 1401 | 1402 | * [iforce2d](https://www.iforce2d.net) - A collection of programming resources, mainly focusing on 2D games development with Box2D. 1403 | 1404 | * [Simulating Fluids, Fire, and Smoke in Real-Time](https://andrewkchan.dev/posts/fire.html) by *Andrew Chan* 1405 | 1406 | * [Ten Minute Physics](https://matthias-research.github.io/pages/tenMinutePhysics) by *Matthias Müller* 1407 | 1408 | ## General Programming 1409 | 1410 | * [freeCodeCamp](https://www.freecodecamp.org) 1411 | 1412 | * [Geeks for Geeks](https://www.geeksforgeeks.org) 1413 | 1414 | * [Programiz](https://www.programiz.com) 1415 | 1416 | * [Tutorials Point](https://www.tutorialspoint.com) 1417 | 1418 | * [W3 Schools](https://www.w3schools.com) 1419 | 1420 | ### Lists of programming projects to try to implement 1421 | 1422 | * [Austin Z. Henley's Lists](https://austinhenley.com) 1423 | * [Challenging algorithms and data structures every programmer should try](https://austinhenley.com/blog/challengingalgorithms.html) 1424 | * [Challenging projects every programmer should try](https://austinhenley.com/blog/challengingprojects.html) 1425 | * [More challenging projects every programmer should try](https://austinhenley.com/blog/morechallengingprojects.html) 1426 | 1427 | * [Writing Toy Software Is A Joy: Why you should write more toy programs](https://blog.jsbarretto.com/post/software-is-joy) by *Joshua Barretto* 1428 | 1429 | ## Geographic Information Systems 1430 | 1431 | * [Building Vector Tiles from scratch](https://www.debuisne.com/writing/geo-tiles) by *Andre Debuisne* 1432 | 1433 | * [Computational Modelling of Terrains](https://tudelft3d.github.io/terrainbook) by *Hugo Ledoux, Ken Arroyo Ohori, Ravi Peters, and Maarten Pronk* 1434 | 1435 | * [Introduction to Python for Geographic Data Analysis](https://pythongis.org) by *Henrikki Tenkanen*, *Vuokko Heikinheimo*, and *David Whipp* 1436 | 1437 | ## GUI Programming 1438 | 1439 | * [A Book about Qt5](https://qmlbook.github.io) by *Jürgen Bocklage-Ryannel* and *Johan 1440 | Thelin* 1441 | 1442 | * [Cross-platform window in C](https://imadr.me/cross-platform-window-in-c) 1443 | 1444 | * [James Brown's Tutorials](https://www.catch22.net/tuts) 1445 | 1446 | * [Minimal Cross-Platform Graphics](https://zserge.com/posts/fenster) by *Serge Zaitsev* 1447 | 1448 | * [Sol on Immediate Mode GUIs](https://solhsa.com/imgui/index.html) by *Jari Komppa* 1449 | 1450 | * [theForger's Win32 API Programming Tutorial](http://www.winprog.org/tutorial) 1451 | 1452 | * [X Window System Basics](https://magcius.github.io/xplain/article) by *Jasper St. Pierre* 1453 | 1454 | ## Hardware 1455 | 1456 | * [Architecture of Consoles](https://www.copetti.org/writings/consoles) by *Rodrigo Copetti* 1457 | 1458 | * [Computer Architecture, Fifth Edition: A Quantitative Approach](https://dl.acm.org/doi/book/10.5555/1999263) by *John L. Hennessy* and *David A Patterson* 1459 | 1460 | * [How Microchips Work](https://exclusivearchitecture.com/03-technical-articles-IC-00-table-of-contents.html) 1461 | 1462 | * [Modern Microprocessors: A 90-Minute Guide!](http://www.lighterra.com/papers/modernmicroprocessors) by *Jason Robert Carey Patterson* 1463 | 1464 | * [Processor Design: An Introduction](http://www.gamezero.com/team-0/articles/math_magic/micro) 1465 | 1466 | * [Simple CPU design](http://simplecpudesign.com) 1467 | 1468 | * [What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) by *Ulrich Drepper* **[pdf]** 1469 | 1470 | * [Zen, CUDA, and Tensor Cores](https://www.computerenhance.com/p/zen-cuda-and-tensor-cores-part-i) by *Casey Muratori* 1471 | 1472 | ## Information TheoryDiscovering observers 1473 | 1474 | * [Information and Entropy](https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008) by *Prof. Paul Penfield* and *Prof. Seth Lloyd* 1475 | 1476 | * [Information Theory, Inference, and Learning Algorithms](https://inference.org.uk/itila/book.html) by *David MacKay* 1477 | 1478 | * [Statistics and Information Theory](https://web.stanford.edu/class/stats311/lecture-notes.pdf) by *John Duchi* **[pdf]** 1479 | 1480 | ## IQ Tests 1481 | 1482 | * [Cognitive Ability Test by University of Cambridge](https://planning.e-psychometrics.com/test/icar60) 1483 | 1484 | * [IQ Test made by Mensa Norway](https://test.mensa.no/Home/Test/en-US) 1485 | 1486 | ## Logical Games 1487 | 1488 | * [Hex: A Strategy Guide](http://www.mseymour.ca/hex_book) by *Matthew Seymour* 1489 | 1490 | * [Learn to Play Go](https://online-go.com/learn-to-play-go) 1491 | 1492 | * [The World's Fastest Scrabble Program](https://www.cs.cmu.edu/afs/cs/academic/class/15451-s06/www/lectures/scrabble.pdf) by Andrew W. Appel and Guy J. Jacobson **[pdf]** 1493 | 1494 | ## Low Level Stuff 1495 | 1496 | * [A gentle introduction to two's complement](https://imapenguin.com/2023/11/a-gentle-introduction-to-twos-complement) by *Michael Doornbos* 1497 | 1498 | * [Beginner's Guide to Linkers](https://www.lurklurk.org/linkers/linkers.html) by *David Drysdale* 1499 | 1500 | * [Computer Science from the Bottom Up](https://www.bottomupcs.com) by *Ian Wienand* 1501 | 1502 | * [CPU performance optimization guide - Preface](https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-preface) by *Hui Zhang* 1503 | * [Part 1](https://gpuopen.com/learn/cpu-performance-guide/cpu-performance-guide-part1) 1504 | 1505 | * [Floating Point Visually Explained](https://fabiensanglard.net/floating_point_visually_explained) by *Fabien Sanglard* 1506 | 1507 | * [Group Borrowing: Zero-Cost Memory Safety with Fewer Restrictions](https://verdagon.dev/blog/group-borrowing) by *Evan Ovadia* 1508 | 1509 | * [Memory Management Reference](https://www.memorymanagement.org) 1510 | 1511 | * [Memory Profiling](https://easyperf.net/blog/2024/02/12/Memory-Profiling-Part1) by *Denis Bakhvalov* 1512 | 1513 | * [Onboarding floating-point](https://www.altdevarts.com/p/onboarding-floating-point) by *Mike Acton* 1514 | 1515 | * [Performance Analysis and Tunning on Modern CPUs](https://github.com/dendibakh/perf-book) by *Denis Bakhvalov* 1516 | 1517 | * [Pointer Tagging in C++: The Art of Packing Bits Into a Pointer](https://vectrx.substack.com/p/pointer-tagging-in-c-the-art-of-packing) by *Caden Parker* 1518 | 1519 | * [Stack frame layout on x86-64](https://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64) by *Eli Bendersky* 1520 | 1521 | * **Understanding Memory Management** by *Eric Rescorla* 1522 | * [Part 1: C](https://educatedguesswork.org/posts/memory-management-1) 1523 | * [Part 2: C++ and RAII](https://educatedguesswork.org/posts/memory-management-2) 1524 | * [Part 3: C++ Smart Pointers](https://educatedguesswork.org/posts/memory-management-3) 1525 | * [Part 4: Rust Ownership and Borrowing](https://educatedguesswork.org/posts/memory-management-4) 1526 | * [Part 5: Fighting with Rust](https://educatedguesswork.org/posts/memory-management-5) 1527 | * [Part 6: Basic Garbage Collection](https://educatedguesswork.org/posts/memory-management-6) 1528 | * [Part 7: Advanced Garbage Collection](https://educatedguesswork.org/posts/memory-management-7) 1529 | 1530 | * [What Every Computer Scientist Should Know About Floating-Point Arithmetic](https://docs.oracle.com/cd/E19957-01/800-7895/800-7895.pdf) **[pdf]** 1531 | 1532 | * [Matrix Multiplication Optimization Article Series](https://salykova.github.io) by *Amanzhol Salykov* 1533 | * [Advanced Matrix Multiplication Optimization on Modern Multi-Core Processors](https://salykova.github.io/gemm-cpu) 1534 | * [Advanced Matrix Multiplication Optimization on NVIDIA GPUs](https://salykova.github.io/gemm-gpu) 1535 | * [Matrix Core Programming on AMD CDNA3 and CDNA4 architecture](https://salykova.github.io/matrix-cores-cdna) 1536 | 1537 | ### GPU and TPU Programming 1538 | 1539 | * [Basic facts about GPUs](https://damek.github.io/random/basic-facts-about-gpus) by *Damek Davis* 1540 | 1541 | * [Inside NVIDIA GPUs: Anatomy of high performance matmul kernels](https://www.aleksagordic.com/blog/matmul) by *Aleksa Gordić* 1542 | 1543 | * [Introduction to CUDA Programming With GPU Puzzles](https://henryhmko.github.io/posts/cuda/cuda.html) by *Henry Ko* 1544 | 1545 | * [TPU Deep Dive](https://henryhmko.github.io/posts/tpu/tpu.html) by *Henry Ko* 1546 | 1547 | ### SIMD programming 1548 | 1549 | * [ARM NEON for C++ Developers](http://const.me/articles/simd/NEON.pdf) **[pdf]** 1550 | 1551 | * [Cuckoo hashing improves SIMD hash tables](https://reiner.org/cuckoo-hashing#large-out-of-cache-tables-successful-lookups) by *Reiner Pope* 1552 | 1553 | * [Designing a SIMD Algorithm from Scratch](https://mcyoung.xyz/2023/11/27/simd-base64) by *Miguel Young de la Sota* 1554 | 1555 | * [SIMD: A Practical Guide](https://vectrx.substack.com/p/simd-a-practical-guide) by *Caden Parker* 1556 | 1557 | * [SIMD for C++ Developers](http://const.me/articles/simd/simd.pdf) **[pdf]** 1558 | 1559 | * [Wojciech Muła — website](http://0x80.pl/notesen.html) 1560 | 1561 | ## Math 1562 | 1563 | * [A Gentle Introduction to Tensors](https://www.ese.wustl.edu/~nehorai/Porat_A_Gentle_Introduction_to_Tensors_2014.pdf) by *Boaz Porat* **[pdf]** 1564 | 1565 | * [A Gentle Introduction to the Art of Mathematics](https://giam.southernct.edu/GIAM) by *Joe Fields* 1566 | 1567 | * [A Programmer's Introduction to Mathematics](https://pimbook.org/) by *Jeremy Kun* 1568 | 1569 | * [Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning](https://www.cis.upenn.edu/~jean/math-deep.pdf) by *Jean Gallier* and * Jocelyn Quaintance* **[pdf]** 1570 | 1571 | * [An animated introduction to Fourier Series](https://www.andreinc.net/2024/04/24/from-the-circle-to-epicycles) by *Andrei Ciobanu* 1572 | 1573 | * [An Infinite Descent into Pure Mathematics](https://infinitedescent.xyz) by *Clive Newstead* 1574 | 1575 | * [An Infinitely Large Napkin](https://venhance.github.io/napkin/Napkin.pdf) by *Evan Chen* **[pdf]** 1576 | 1577 | * [An Introduction to Tensors for Students of Physics and Engineering](https://www.grc.nasa.gov/www/k-12/Numbers/Math/documents/Tensors_TM2002211716.pdf) by *Joseph C. Kolecki* **[pdf]** 1578 | 1579 | * [Approved Textbooks](https://aimath.org/textbooks/approved-textbooks) of the [*American Institute of Mathematics*](https://aimath.org/) 1580 | 1581 | * [Books and papers by *Professor Dimitry P. Bertsekas*](https://web.mit.edu/dimitrib/www/home.html) 1582 | 1583 | * [Books by *Dr. Kenneth Kuttler*](https://klkuttler.com/) 1584 | 1585 | * [Books of Shlomo Sternberg](https://people.math.harvard.edu/~shlomo/) 1586 | * [Advanced Calcululs](https://people.math.harvard.edu/~shlomo/docs/Advanced_Calculus.pdf) **[pdf]** 1587 | * [Dynamical Systems](https://people.math.harvard.edu/~shlomo/docs/dynamical_systems.pdf) **[pdf]** 1588 | * [Lie algebras](https://people.math.harvard.edu/~shlomo/docs/lie_algebras.pdf) **[pdf]** 1589 | * [Semi-classical analysis](https://people.math.harvard.edu/~shlomo/docs/Semi_Classical_Analysis_Start.pdf) by *Victor Guillemin* and *Shlomo Sternberg* **[pdf]** 1590 | * [Semi-Riemann Geometry and General Relativity](https://people.math.harvard.edu/~shlomo/docs/semi_riemannian_geometry.pdf) **[pdf]** 1591 | * [Theory of functions of a real variable](https://people.math.harvard.edu/~shlomo/docs/Real_Variables.pdf) **[pdf]** 1592 | 1593 | * [Courses and lecture notes by Jeffrey Robert Chasnov](https://www.math.hkust.edu.hk/~machas/?menu=1) 1594 | * [Applied Linear Algebra and Differential Equations](https://www.math.hkust.edu.hk/~machas/applied-linear-algebra-and-differential-equations.pdf) **[pdf]** 1595 | * [Calculus for Engineers](https://www.math.hkust.edu.hk/~machas/calculus-for-engineers.pdf) **[pdf]** 1596 | * [Differential Equations for Engineers](https://www.math.hkust.edu.hk/~machas/differential-equations-for-engineers.pdf) **[pdf]** 1597 | * [Differential Equations: Review with YouTube Examples](https://www.math.hkust.edu.hk/~machas/differential-equations-with-youtube-examples.pdf) **[pdf]** 1598 | * [Differential Equations](https://www.math.hkust.edu.hk/~machas/differential-equations.pdf) **[pdf]** 1599 | * [Fibonacci Numbers and the Golden Ratio](https://www.math.hkust.edu.hk/~machas/fibonacci.pdf) **[pdf]** 1600 | * [Flow Around a Cylinder](https://www.math.hkust.edu.hk/~machas/flow-around-a-cylinder.pdf) **[pdf]** 1601 | * [Mathematical Biology](https://www.math.hkust.edu.hk/~machas/mathematical-biology.pdf) **[pdf]** 1602 | * [Matrix Algebra for Engineers](https://www.math.hkust.edu.hk/~machas/matrix-algebra-for-engineers.pdf) **[pdf]** 1603 | * [Numerical Methods for Engineers](https://www.math.hkust.edu.hk/~machas/numerical-methods-for-engineers.pdf) **[pdf]** 1604 | * [Numerical Methods](https://www.math.hkust.edu.hk/~machas/numerical-methods.pdf) **[pdf]** 1605 | * [Scientific Computing](https://www.math.hkust.edu.hk/~machas/scientific-computing.pdf) **[pdf]** 1606 | * [Vector Calculus for Engineers](https://www.math.hkust.edu.hk/~machas/vector-calculus-for-engineers.pdf) **[pdf]** 1607 | 1608 | * [Cournse Notes and Books by Curtis T. McMullen](https://people.math.harvard.edu/~ctm/papers/index.html#books) **[Harvard]** 1609 | * **Books** 1610 | * [Complex Dynamics and Renormalization](https://people.math.harvard.edu/~ctm/papers/home/text/papers/real/real.pdf) **[pdf]** 1611 | * [Renormalization and 3-Manifolds which Fiber over the Circle](https://people.math.harvard.edu/~ctm/papers/home/text/papers/renorm/renorm.pdf) **[pdf]** 1612 | * **Course Notes** 1613 | * [Advanced Complex Analysis](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/213a/course/course.pdf) **[pdf]** 1614 | * [Advanced Real Analysis](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/212b/course/course.pdf) **[pdf]** 1615 | * [Algebra and Dynamics](https://people.math.harvard.edu/~ctm/papers/home/text/class/notes/pn/course.pdf) **[pdf]** 1616 | * [Complex Analysis on Riemann Surfaces](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/213b/course/course.pdf) **[pdf]** 1617 | * [Ergodic theory, geometry and dynamics](https://people.math.harvard.edu/~ctm/papers/home/text/class/notes/ergodic/course.pdf) **[pdf]** 1618 | * [From Conformal Invariants to Percolation](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/219/course/course.pdf) **[pdf]** 1619 | * [Probability Theory](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/154/course/course.pdf) **[pdf]** 1620 | * [Real Analysis](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/114/course/course.pdf) **[pdf]** 1621 | * [Riemann surfaces, dynamics and geometry](https://people.math.harvard.edu/~ctm/papers/home/text/class/notes/rs/course.pdf) **[pdf]** 1622 | * [Sets, Groups and Knots](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/101/course/course.pdf) **[pdf]** 1623 | * [Topology](https://people.math.harvard.edu/~ctm/papers/home/text/class/harvard/131/course/course.pdf) **[pdf]** 1624 | 1625 | * [Course notes by J.S. Milne](https://www.jmilne.org/math/CourseNotes) 1626 | * [Abelian Varieties](https://www.jmilne.org/math/CourseNotes/AV.pdf) **[pdf]** 1627 | * [Algebraic Geometry](https://www.jmilne.org/math/CourseNotes/AG.pdf) **[pdf]** 1628 | * [Algebraic Number Theory](https://www.jmilne.org/math/CourseNotes/ANT.pdf) **[pdf]** 1629 | * [Class Field Theory](https://www.jmilne.org/math/CourseNotes/CFT.pdf) **[pdf]** 1630 | * [Complex Multiplication](https://www.jmilne.org/math/CourseNotes/CM.pdf) **[pdf]** 1631 | * [Fields and Galois Theory](https://www.jmilne.org/math/CourseNotes/FT.pdf) **[pdf]** 1632 | * [Group Theory](https://www.jmilne.org/math/CourseNotes/GT.pdf) **[pdf]** 1633 | * [Lectures on Etale Cohomology](https://www.jmilne.org/math/CourseNotes/LEC.pdf) **[pdf]** 1634 | * [Lie Algebras, Algebraic Groups, and Lie Groups](https://www.jmilne.org/math/CourseNotes/LAG.pdf) **[pdf]** 1635 | * [Modular Functions and Modular Forms](https://www.jmilne.org/math/CourseNotes/MF.pdf) **[pdf]** 1636 | * [Reductive Groups](https://www.jmilne.org/math/CourseNotes/RG.pdf) **[pdf]** 1637 | 1638 | * [Course notes by Kenneth R. Davidson](https://www.math.uwaterloo.ca/~krdavids) 1639 | * [Measure Theory](https://www.math.uwaterloo.ca/~krdavids/MT/PMath451Notes.pdf) **[pdf]** 1640 | * [Nest Algebras](https://www.math.uwaterloo.ca/~krdavids/nestbook.html) 1641 | * [Real Analysis](https://www.math.uwaterloo.ca/~krdavids/PM351/PMath351Notes.pdf) **[pdf]** 1642 | * [Rigorous Calculus](https://www.math.uwaterloo.ca/~krdavids/M148/CalculusNotes.pdf) **[pdf]** 1643 | 1644 | * [Course notes by Rajen Shah](https://www.statslab.cam.ac.uk/~rds37) **[Cambridge]** 1645 | * [Mathematics of Machine Learning](https://www.statslab.cam.ac.uk/~rds37/machine_learning.html) 1646 | * [Modern Statistical Methods](https://www.statslab.cam.ac.uk/~rds37/modern_stat_methods.html) 1647 | * [Principles of Statistics](https://www.statslab.cam.ac.uk/~rds37/PoS.html) 1648 | * [Statistical Modelling](https://www.statslab.cam.ac.uk/~rds37/statistical_modelling.html) 1649 | 1650 | * [Course Notes by Richard Weber](https://www.statslab.cam.ac.uk//~rrw1) 1651 | * [Markov Chains](https://www.statslab.cam.ac.uk//~rrw1/markov/index.html) 1652 | * [Mathematics of Operational Research](https://www.statslab.cam.ac.uk//~rrw1/mor/index.html) 1653 | * [Optimization](https://www.statslab.cam.ac.uk//~rrw1/opt/index.html) 1654 | * [Optimization and Control](https://www.statslab.cam.ac.uk//~rrw1/oc/index.html) 1655 | * [Probability](https://www.statslab.cam.ac.uk//~rrw1/prob/index.html) 1656 | * [Statistics](https://www.statslab.cam.ac.uk//~rrw1/stats/index.html) 1657 | * [Time Series](https://www.statslab.cam.ac.uk//~rrw1/timeseries/index.html) 1658 | 1659 | * [Course notes by Tom Leinster](https://golem.ph.utexas.edu/category/2024/08/galois_theory.html) 1660 | * [Category theory](https://arxiv.org/abs/1612.09375) 1661 | * [Fourier analysis](https://www.maths.ed.ac.uk/~tl/fa/fa_notes.pdf) **[pdf]** 1662 | * [Galois theory](https://arxiv.org/abs/2408.07499) 1663 | * [General topology](https://www.maths.ed.ac.uk/~tl/topology/topology_notes.pdf) **[pdf]** 1664 | * [Linear algebra](https://www.maths.ed.ac.uk/~tl/aa/aa.pdf) by **[pdf]** 1665 | 1666 | * [Everything You Always Wanted To Know About Mathematics](https://www.math.cmu.edu/~jmackey/151_128/bws_book.pdf) by *Brendan W. Sullivan with Professor John Mackey* **[pdf]** 1667 | 1668 | * [Feynman's Trick a.k.a. Differentiation under the Integral Sign & Leibniz Integral Rule](https://zackyzz.github.io/feynman.html) 1669 | 1670 | * [Foundations of Mathematics](https://people.tamu.edu/~florent/teaching/lecture_notes/220lecture_notes.pdf) by *Florent P. Baudier* **[pdf]** 1671 | 1672 | * [How do undergraduates do mathematics?](https://www.maths.ox.ac.uk/system/files/attachments/study_public_0.pdf) **[pdf]** 1673 | 1674 | * [Intermediate Calculus and Linear Algebra](https://www2.math.upenn.edu/~kazdan/202F13/notes/math21-2013.pdf) by *Jerry L. Kazdan* **[pdf]** 1675 | 1676 | * [Introduction to Applied Mathematics](https://math.dartmouth.edu/~m46s21/Script_MATH46_2020.pdf) by *Jan Glaubitz* **[pdf]** 1677 | 1678 | * [Introduction to Homotopy Type Theory](https://arxiv.org/abs/2212.11082) by *Egbert Rijke* 1679 | 1680 | * [Introduction to Stochastic Calculus](https://jiha-kim.github.io/posts/introduction-to-stochastic-calculus) by *Ji-Ha* 1681 | 1682 | * [Lecuture Notes by Aditya Guntuboyina](https://www.stat.berkeley.edu/~aditya/styled/index.html) 1683 | * [Analysis of Time Series](https://www.stat.berkeley.edu/~aditya/resources/FullNotes248Spring2022TimeSeries.pdf) **[pdf]** 1684 | * [Introduction to Probability at an advanced level](https://www.stat.berkeley.edu/~aditya/resources/FullNotes201AFall2022.pdf) **[pdf]** 1685 | * [Theoretical Statistics](https://www.stat.berkeley.edu/~aditya/resources/FullNotes210BSpring2018.pdf) **[pdf]** 1686 | 1687 | * **[Lecture Notes by Ian Tice](https://www.math.cmu.edu/~iantice/lecture_notes.html)** 1688 | * [A crash course in complex analysis](https://www.math.cmu.edu/~iantice/notes/complex_notes.pdf) **[pdf]** 1689 | * [A crash course in interpolation theory](https://www.math.cmu.edu/~iantice/notes/interpolation_notes.pdf) **[pdf]** 1690 | * [Derivation of the fluid equations](https://www.math.cmu.edu/~iantice/notes/basic_fluid_mechanics.pdf) **[pdf]** 1691 | * [Fluid-solid interaction](https://www.math.cmu.edu/~iantice/notes/fluid-structure.pdf) **[pdf]** 1692 | * [From Stokes flow to Darcy's law](https://www.math.cmu.edu/~iantice/notes/stokes_to_darcy.pdf) **[pdf]** 1693 | * [Gamma-convergence of the Ginzburg-Landau energy](https://www.math.cmu.edu/~iantice/notes/gamma_convergence_gl.pdf) **[pdf]** 1694 | * [Linear constant coefficient ordinary differential systems](https://www.math.cmu.edu/~iantice/notes/ODE_notes.pdf) **[pdf]** 1695 | * [Monstrous Functions](https://www.math.cmu.edu/~iantice/notes/monstrous_functions.pdf) **[pdf]** 1696 | * [Quasilinear symmetric hyperbolic systems](https://www.math.cmu.edu/~iantice/notes/quasilinear_hyperbolic_systems.pdf) **[pdf]** 1697 | 1698 | * **Lecture Notes by Jacob Shapiro** 1699 | * [Calculus 1](https://web.math.princeton.edu/~js129/PDFs/teaching/calc1_spring_2019/LectureNotes.pdf) **[pdf]** 1700 | * [Complex Analysis with Applications](https://web.math.princeton.edu/~js129/PDFs/teaching/MAT330_spring_2024/MAT330_Lecture_Notes.pdf) **[pdf]** 1701 | * [Functional Analysis](https://web.math.princeton.edu/~js129/PDFs/teaching/MAT520_fall_2023/MAT520_Lecture_Notes.pdf) **[pdf]** 1702 | * [Measure Theory](https://web.math.princeton.edu/~js129/PDFs/teaching/MAT425_spring_2025/MAT425_Lecture_Notes.pdf) **[pdf]** 1703 | * [Topics in Mathematical Physics](https://web.math.princeton.edu/~js129/PDFs/teaching/MAT595_spring_2024/MAT595_PHY508_Lecture_Notes.pdf) **[pdf]** 1704 | * [Homeworks and other courses materials](https://web.math.princeton.edu/~shapiro/teaching.html) 1705 | 1706 | * **[Lecture Notes by John K. Hunter](https://math.ucdavis.edu/~hunter)** 1707 | * [Applied Analysis](https://www.math.ucdavis.edu/~hunter/book/pdfbook.html) 1708 | * [Applied Mathematics](https://math.ucdavis.edu/~hunter/m280_09/applied_math.html) 1709 | * [Asymptotics](https://www.math.ucdavis.edu/~hunter/asymptotics/asymptotics.html) 1710 | * [Introduction to Analysis](https://www.math.ucdavis.edu/~hunter/intro_analysis_pdf/intro_analysis.html) 1711 | * [Measure Theory](https://www.math.ucdavis.edu/~hunter/measure_theory/measure_theory.html) 1712 | * [Partial Differential Equations](https://www.math.ucdavis.edu/~hunter/pdes/pdes.html) 1713 | 1714 | * **[Lecture Notes by Omer Tamuz](https://tamuz.caltech.edu)** 1715 | * [General Equilibrium Theory](https://tamuz.caltech.edu/teaching/ss205b/lectures.pdf) **[pdf]** 1716 | * [Graduate Real Analysis](https://tamuz.caltech.edu/teaching/ma110a/lecture_notes.pdf) **[pdf]** 1717 | * [Multivariate Calculus](https://tamuz.caltech.edu/teaching/18.022) 1718 | * [Probability: Random Walks](https://tamuz.caltech.edu/teaching/ma140b) 1719 | * [Probability](https://tamuz.caltech.edu/teaching/ma144a) 1720 | * [The Value and Cost of Information](https://tamuz.caltech.edu/teaching/info.pdf) **[pdf]** 1721 | * [Undergraduate Game Theory](https://tamuz.caltech.edu/teaching/ps172) 1722 | 1723 | * **[Lecture Notes by Seongjai Kim](https://skim.math.msstate.edu)** 1724 | * [Calculus Lectures](https://skim.math.msstate.edu/LectureNotes/Calculus-Lectures.pdf) **[pdf]** 1725 | * [Fundamentals of Numerical Linear Algebra](https://skim.math.msstate.edu/LectureNotes/Numer_Lin_Algebra.pdf) **[pdf]** 1726 | * [Heterogeneity in Computational Environments](https://skim.math.msstate.edu/LectureNotes/Hetero_Comp.pdf) **[pdf]** 1727 | * [Linear Algebra with Applications](https://skim.math.msstate.edu/LectureNotes/Linear_Algebra_LectureNote.pdf) **[pdf]** 1728 | * [Mathematical Foundations of Machine Learning](https://skim.math.msstate.edu/LectureNotes/Machine_Learning_Lecture.pdf) **[pdf]** 1729 | * [Numerical Analysis and Applications with Music](https://skim.math.msstate.edu/LectureNotes/Numerical_Analysis_Lecture.pdf) **[pdf]** 1730 | * [Numerical Methods for Partial Differential Equations](https://skim.math.msstate.edu/LectureNotes/NumerPDEs_Lecture.pdf) **[pdf]** 1731 | * [Programming Basics and AI with Matlab and Python](https://skim.math.msstate.edu/LectureNotes/Programming-Basics-and-AI-Lecture.pdf) **[pdf]** 1732 | 1733 | * [Math Alive](https://web.math.princeton.edu/math_alive/index.shtml) by *Ingrid Daubechies* and *Shannon Hughes* - lecture notes on: 1734 | * Cryptography 1735 | * Error correction & compression 1736 | * Probability & Statistics 1737 | * Birth, Growth, Death & Chaos 1738 | * Graph Theory 1739 | * Voting & Social Choice 1740 | 1741 | * [Math Planet](https://www.mathplanet.com) 1742 | 1743 | * [Mathematical Methods for Computer Vision, Robotics, and Graphics](https://graphics.stanford.edu/courses/cs205a-13-fall/assets/notes/cs205a_notes.pdf) by *Justin Solomon* **[pdf]** 1744 | 1745 | * [Mathematical Methods for Physics](https://www.ma.imperial.ac.uk/~dturaev/Mathematical_Methods2021.pdf) by *Dmitry Turaev* **[pdf]** 1746 | * [Problem sheets and solutions](https://www.ma.imperial.ac.uk/~dturaev/phys.php) 1747 | 1748 | * [Mathematics for the Physical Sciences](https://www2.math.upenn.edu/~wilf/website/Mathematics_for_the_Physical_Sciences.html) by *Herbert S. Wilf* 1749 | 1750 | * [Menthal Math Tricks](https://www.johndcook.com/blog/2025/09/17/mental-math-posts) by *John D. Cook* 1751 | 1752 | * [Notes on Mathematics For Engineers](https://websites.umich.edu/~ners311/CourseLibrary/MathNotes.pdf) **[pdf]** 1753 | 1754 | * [Open Mathematics Depository](https://openmathdep.tuxfamily.org) 1755 | 1756 | * [Open textbooks for undergraduate mathematics](https://openaccesstexts.com/math) 1757 | 1758 | * [Paul's Online Math Notes](https://tutorial.math.lamar.edu/) by *Paul Dawkins* 1759 | 1760 | * [Precalculus](https://stitz-zeager.com/) by *Carl Stitz* and *Jeff Zeager* 1761 | 1762 | * [Real Not Complex](https://realnotcomplex.com) - Discover Incredible FREE Resources to Study MathemF comilatics. 1763 | 1764 | * [Street-Fighting Mathematics](https://ocw.mit.edu/courses/18-098-street-fighting-mathematics-january-iap-2008) - Course teaches the art of guessing results and solving problems without doing a proof or an exact calculation by *Sanjoy Mahajan* 1765 | 1766 | * [Teaching notes by Oliver Knill](https://people.math.harvard.edu/~knill/teach/index.html) 1767 | * [Differential Geometry](https://people.math.harvard.edu/~knill/teaching/math136/handouts/differential-geometry-2024.pdf) **[pdf]** 1768 | * [Introduction to Calculus](https://people.math.harvard.edu/~knill/teaching/math1a2024/handouts/1a_2024.pdf) **[pdf]** 1769 | * [Linear Algebra And Vector Calculus](https://people.math.harvard.edu/~knill/teaching/math22b2022/handouts/22b_2022.pdf) **[pdf]** 1770 | * [Linear Algebra And Vector Calculus I](https://people.math.harvard.edu/~knill/teaching/math22a2018/handouts/22a_2018_latest.pdf) **[pdf]** 1771 | * [Linear Algebra And Vector Calculus II](https://people.math.harvard.edu/~knill/teaching/math22b2019/handouts/22b_2019_latest.pdf) **[pdf]** 1772 | * [Multivariable Calculus](https://people.math.harvard.edu/~knill/teaching/summer2024/handouts/multivariable_knill_2024.pdf) **[pdf]** 1773 | * [Probability Theory](https://people.math.harvard.edu/~knill/teaching/math154/handouts/154.pdf) **[pdf]** 1774 | * [Teaching Mathematics with a Historical Perspective](https://people.math.harvard.edu/~knill/teaching/mathe320_2022/handouts/math320_2022.pdf) **[pdf]** 1775 | 1776 | * [Texts, exercises, problems and lecture notes by John Erdman](https://web.pdx.edu/~erdman) 1777 | * [Exercises and Problems in Calculus](https://web.pdx.edu/%7Eerdman/CALCULUS/CALCULUSlicensepage.html) 1778 | * [A ProblemText in Advanced Calculus](https://web.pdx.edu/%7Eerdman/PTAC/problemtext_pdf.pdf) **[pdf]** 1779 | * [Exercises and Problems in Linear Algebra](https://web.pdx.edu/%7Eerdman/LINALG/Linalg_licensepage.html) 1780 | * [Companion to Real Analysis](https://web.pdx.edu/%7Eerdman/CRA/CRAlicensepage.html) 1781 | * [Functional Analysis and Operator Algebras: An Introduction](https://web.pdx.edu/%7Eerdman/FAOA/functional_analysis_operator_algebras_pdf.pdf) **[pdf]** 1782 | 1783 | * [The Lost Art of Logarithms](https://www.lostartoflogarithms.com) by *Charles Petzold* 1784 | 1785 | * [The Mathematics in Toys and Games](https://ocw.mit.edu/courses/es-268-the-mathematics-in-toys-and-games-spring-2010) by *Jing Li*, *Prof. Erik Demaine*, and *Melissa Gymrek* 1786 | 1787 | * [The Matrix Cookbook](https://www2.compute.dtu.dk/pubdb/pubs/3274-full.html) by *Kaare Brandt Petersen* and *Michael Syskind Pedersen* 1788 | 1789 | * [The Princeton Companion to Mathematics](https://sites.math.rutgers.edu/~zeilberg/akherim/PCM.pdf) by *Timothy Gowers - editor* **[pdf]** 1790 | 1791 | * [The Tensor Cookbook](https://tensorcookbook.com) by *Thomas Dybdahl Ahle* 1792 | 1793 | * [Trigonometry](https://mecmath.net/trig/index.html) by *Michael Corral* 1794 | 1795 | * [Visual Complex Analysis](https://umv.science.upjs.sk/hutnik/NeedhamVCA.pdf) by *Tristan Needham* **[pdf]** 1796 | 1797 | ### Algebra 1798 | 1799 | * [Abstract Algebra](https://dongryul-kim.github.io/harvard_notes/Math55a/Notes_Math55a.pdf) taughy by *Yum-Tong Siu*, notes by *Dongryul Kim* **[pdf]** 1800 | 1801 | * [Advanced Modern Algebra](https://david92jackson.neocities.org/images/Advanced_Modern_Algebra-Rotman.pdf) by *Joseph J. Rotman* **[pdf]** 1802 | 1803 | * [Algebra: An Elementary Text-Book](http://onlinebooks.library.upenn.edu/webbin/book/lookupid?key=olbp36404) by [*George Chrystal*](https://en.wikipedia.org/wiki/George_Chrystal) 1804 | 1805 | * [Algebraic Combinatorics](https://math.mit.edu/~apost/courses/18.212) by *Alexander Postnikov* 1806 | 1807 | * [Intermediate Algebra](https://saylordotorg.github.io/text_intermediate-algebra/index.html) by *Saylor Academy* 1808 | 1809 | * [Introduction to Abstract Algebra](https://math.berkeley.edu/~apaulin/AbstractAlgebra.pdf) by *Alexander Paulin* **[pdf]** 1810 | 1811 | * [Learn you Galois Fields for Great Good](https://xorvoid.com/galois_fields_for_great_good_00.html) by *Anthony Bonkoski* 1812 | 1813 | * [Lectures on Abstract Algebra](https://www.math.ucla.edu/~rse/algebra_book.pdf) by *Richard Elman* **[pdf]** 1814 | 1815 | * [The Rising Sea: Foundations Of Algebraic Geometry Notes](https://math.stanford.edu/~vakil/216blog) by *Ravi Vakil* 1816 | 1817 | #### Linear Algebra 1818 | 1819 | * [Graphical Linear Algebra](https://graphicallinearalgebra.net) by *Pawel Sobocinski* 1820 | 1821 | * [Immersive Linear Algebra](http://immersivemath.com/ila/index.html) by *J. Ström, K. Åström, and T. Akenine-Möller* 1822 | 1823 | * [Interactive Linear Algebra](http://textbooks.math.gatech.edu/ila) by *Dan Margalit and Joseph Rabinoff* 1824 | 1825 | * [Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares](https://web.stanford.edu/~boyd/vmls) by *Stephen Boyd* and *Lieven Vandenberghe* 1826 | 1827 | * [Linear Algebra](https://www.math.ucdavis.edu/~linear/linear-guest.pdf) by *David Cherney*, *Tom Denton*, 1828 | *Rohit Thomas* and *Andrew Waldron* **[pdf]** 1829 | 1830 | * [Linear Algebra, Fourth edition](https://www.cs.ox.ac.uk/files/12921/book.pdf) by *Jim Hefferon* **[pdf]** 1831 | 1832 | * [Linear Algebra Done Right](https://linear.axler.net) by *Sheldon Axler* 1833 | 1834 | * [Linear Algebra Done Wrong](https://www.math.brown.edu/streil/papers/LADW/LADW.html) by *Sergei Treil* 1835 | 1836 | * [Linear Algebra for Computer Science](https://la4cs.com) by *Manoj Thulasidas* 1837 | 1838 | * [Linear Algebra Lecture Notes by Terence Tao](https://terrytao.wordpress.com/wp-content/uploads/2016/12/linear-algebra-notes.pdf) **[pdf]** **[UCLA]** 1839 | 1840 | * [Notes for Computational Linear Algebra](https://web.eecs.umich.edu/u/g/grizzle/public_html/papers/ROB_101_ComputationalLinearAlgebra_Grizzle_2020_12_15.pdf) by *Jessy Grizzle* **[pdf]** 1841 | 1842 | * [Numerical Linear Algebra](https://www.csc.kth.se/~barbel/nla/notes.pdf) by *Bärbel Janssen* **[pdf]** 1843 | 1844 | * [The Little Book of Linear Algebra](https://github.com/the-litte-book-of/linear-algebra) by *Duc-Tam Nguyen* 1845 | 1846 | ### Calculus 1847 | 1848 | * [Advanced Multivariable Calculus](https://sites.math.washington.edu/~awaw/teaching/math224_sp23/notes.pdf) by *Alex Wang* **[pdf]** 1849 | 1850 | * [Calculus](https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/pages/textbook) by *Gilbert Strang* 1851 | 1852 | * [Calculus 1 for Honours Mathematics](https://math.uwaterloo.ca/~baforres/UCM137/CourseNotes/Forrest_M137CN.pdf) by *Barbara A. Forrest* and *Brian E. Forrest* **[pdf]** 1853 | 1854 | * [Calculus for Mathematicians, Computer Scientists, and Physicists](https://mathcs.holycross.edu/~ahwang/print/calc.pdf) by *Andrew D. Hwang* **[pdf]** 1855 | 1856 | * [Calculus Made Easy](http://calculusmadeeasy.org/) by [*Silvanus P. Thompson*](https://en.wikipedia.org/wiki/Silvanus_P._Thompson) 1857 | 1858 | * [Calculus with Julia](https://jverzani.github.io/CalculusWithJuliaNotes.jl) by *John Verzani* 1859 | 1860 | * [CLP Calculus Textbooks](https://personal.math.ubc.ca/~CLP) by *Joel Feldman*, *Andrew Rechnitzer* and *Elyse Yeager* 1861 | 1862 | * [Complex Analysis](https://courses.maths.ox.ac.uk/pluginfile.php/111560/mod_resource/content/8/A2%20complex%20analysis%20*2024.pdf) by *Dmitry Belyaev* **[pdf]** 1863 | * [Problems and Solutions](https://courses.maths.ox.ac.uk/mod/assign/view.php?id=60627) 1864 | 1865 | * [Derivatives, Gradients, Jacobians and Hessians](https://blog.demofox.org/2025/08/16/derivatives-gradients-jacobians-and-hessians-oh-my) by *Alan Wolfe* 1866 | 1867 | * [Elementary Calculus](https://mecmath.net/calculus/index.html) by *Michael Corral* 1868 | 1869 | * [Harmonic Function Theory](https://www.axler.net/HFT.html) by *Sheldon Axler*, *Paul Bourdon*, and *Wade Ramey* 1870 | 1871 | * [Integration Theory](https://www.math.chalmers.se/Math/Grundutb/GU/MMA110/A12/integration.pdf) by *Johan Jonasson* **[pdf]** 1872 | 1873 | * [Introduction to Calculus](https://arachnoid.com/calculus/resources/introduction_to_calculus.pdf) by *Paul Lutus* **[pdf]** 1874 | 1875 | * [Multivariable Calculus Lectures](https://math.jhu.edu/~brown/courses/f19/Documents/MultivariableCalculus.pdf) by *Richard J. Brown* **[pdf]** 1876 | 1877 | * [Principles of Mathematical Analysis](https://david92jackson.neocities.org/images/Principles_of_Mathematical_Analysis-Rudin.pdf) by *Walter Rudin* **[pdf]** 1878 | 1879 | * [Real Analysis](https://ocw.mit.edu/courses/18-100a-real-analysis-fall-2020) by *Dr. Casey Rodriguez* 1880 | 1881 | #### Vector Calculus 1882 | 1883 | * [Lectures on Vector Calculus](https://www.damtp.cam.ac.uk/user/tong/vc.html) by *David Tong* 1884 | 1885 | * [Vector and Complex Calculus for the Physical Sciences](https://people.math.wisc.edu/~thiffeault/lecturing/321/Full321-S16.pdf) by *Fabian Waleffe* **[pdf]** 1886 | 1887 | * [Vector Calculus](https://mate.unipv.it/moiola/ReaDG/VC2016/VectorCalculus_LectureNotes_2016.pdf) by *Andrea Moiola* **[pdf]** 1888 | 1889 | * [Vector Calculus](https://www.damtp.cam.ac.uk/user/tong/vc/benjonathan.pdf) by *B. C. Allanacha* and *J.M. Evansa* **[pdf]** 1890 | 1891 | * [Vector Calculus](https://mecmath.net) by *Michael Corral* 1892 | 1893 | ### Category Theory 1894 | 1895 | * [Category Theory for Programmers](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface) by *Bartosz Milewski* 1896 | 1897 | * [Category Theory for Programming](https://arxiv.org/abs/2209.01259) by *Benedikt Ahrens* and *Kobe Wullaert* 1898 | 1899 | * [Category Theory Illustrated](https://boris-marinov.github.io/category-theory-illustrated) by *Boris Marinov* 1900 | 1901 | * [Category Theory in Programming](https://docs.racket-lang.org/ctp/index.html) by *Noah Ma* 1902 | 1903 | * [Category Theory: Lecture Notes and Online Books](https://www.logicmatters.net/categories/) - collection by *Peter Smith* 1904 | 1905 | * [Pragmatic Category Theory](https://chshersh.com/blog/2024-07-30-pragmatic-category-theory-part-01.html) by *Dmitrii Kovanikov* 1906 | 1907 | * [Seven Sketches in Compositionality: An Invitation to Applied Category Theory](https://ocw.mit.edu/courses/18-s097-applied-category-theory-january-iap-2019/resources/18-s097iap19textbook) by *Brendan Fong* and *David I. Spivak* 1908 | 1909 | ### Differential Equations 1910 | 1911 | * [Fourier Series & PDEs](https://courses.maths.ox.ac.uk/course/view.php?id=4942) by *Philip Maini* **[Oxford]** 1912 | 1913 | ### Game Theory 1914 | 1915 | * [Game Theory with Engineering Applications](https://ocw.mit.edu/courses/6-254-game-theory-with-engineering-applications-spring-2010) by *Prof. Asuman Ozdaglar* 1916 | 1917 | * [Lecture Notes for 1st Year Ph.D. Game Theory](https://econweb.ucsd.edu/~jsobel/200Cs09/Kartik_Notes.pdf) by *Navin Kartik* **[pdf]** 1918 | 1919 | ### General problem solving 1920 | 1921 | * [How to Solve It](https://www.hlevkin.com/hlevkin/90MathPhysBioBooks/Math/Polya/George_Polya_How_To_Solve_It_.pdf) by *George Pólya* **[pdf]** 1922 | 1923 | ### Geometry 1924 | 1925 | * [Euclid's Elements](https://mathcs.clarku.edu/~djoyce/java/elements/toc.html) 1926 | 1927 | * [Euclidean and Non-Euclidean Geometries: Development and History](https://www.ime.usp.br/~toscano/disc/2022/GreenbergGeometry.pdf) by *Marvin Jay Greenberg* **[pdf]** 1928 | 1929 | * [Geometry: Euclid and Beyond](https://david92jackson.neocities.org/images/Euclid_and_Beyond-Hartshorne.pdf) by *Robin Hartshorne* **[pdf]** 1930 | 1931 | * [Planes in 3D space](https://alexharri.com/blog/planes) by *Alex Harri* 1932 | 1933 | * [The Foundations of Geometry](https://math.berkeley.edu/~wodzicki/160/Hilbert.pdf) by *David Hilbert* **[pdf]** 1934 | 1935 | * [The Four Pillars of Geometry](https://www.johnval.nl/school/wiskunde/wiskundeD/gratis_studieboeken/FourPillarsOfGeometry.pdf) by *John Stillwell* **[pdf]** 1936 | 1937 | #### Differential Geometry 1938 | 1939 | * [Differential Geometry: A First Course in Curves and Surfaces](https://ghomi.math.gatech.edu/Classes/Math4441Fall2021/ShifrinDiffGeo.pdf) by *Theodore Shifrin* **[pdf]** 1940 | 1941 | * [Functional Differential Geometry](https://groups.csail.mit.edu/mac/users/gjs/6946/calculus-indexed.pdf) by *Gerald Jay Sussman* and *Jack Wisdom* with *Will Farr* **[pdf]** 1942 | 1943 | * [Introduction to Smooth Manifolds](https://julianchaidez.net/materials/reu/lee_smooth_manifolds.pdf) by *John M. Lee* **[pdf]** 1944 | 1945 | * [Lecture Notes on Differential Geometry](https://ghomi.math.gatech.edu/LectureNotes/index.html) by *Mohammad Ghomi* 1946 | 1947 | * [Manifolds and Differential Forms](https://pi.math.cornell.edu/~sjamaar/manifolds/manifold.pdf) by *Reyer Sjamaar* **[pdf]** 1948 | 1949 | * [Open Problems In Geometry Of Curves And Surfaces](https://ghomi.math.gatech.edu/Papers/op.pdf) by *Mohammad Ghomi* **[pdf]** 1950 | 1951 | * [What is differential geometry: curves and surfaces](https://arxiv.org/abs/2012.11814) by *Anton Petrunin* and *Sergio Zamora Barrera* 1952 | 1953 | ### Graph Theory 1954 | 1955 | * [An introduction to graph theory](https://arxiv.org/pdf/2308.04512.pdf) by *Darij Grinberg* **[pdf]** 1956 | 1957 | * [Graphs and Geometry](https://lovasz.web.elte.hu//bookxx/geombook-almost-final.pdf) by *László Lovász* **[pdf]** 1958 | 1959 | * [Graph Theory and Additive Combinatorics](https://yufeizhao.com/gtacbook) by *Yufei Zhao* 1960 | 1961 | * [Graph Theory Lecture Notes](https://roam.libraries.psu.edu/system/files/e-books/MATH485-Graph_Theory.pdf) by *Christopher Griffin* **[pdf]** 1962 | 1963 | * [Introduction to Random Graphs](https://www.math.cmu.edu/~af1p/BOOK.pdf) by *Alan Frieze" and **ALAN FRIEZE and *Michał Karonski* **[pdf]** 1964 | 1965 | * [Large networks and graph limits](https://lovasz.web.elte.hu//bookxx/hombook-almost.final.pdf) by *László Lovász* **[pdf]** 1966 | 1967 | * [Spectral Graph Theory](https://people.orie.cornell.edu/dpw/orie6334/Fall2016) by *David P. Williamson* 1968 | 1969 | ### Mathematical Finance 1970 | 1971 | * [A Practical Guide to Quantitative Finance Interviews](https://academyflex.com/wp-content/uploads/2024/03/a-practical-guide-to-quantitative-finance-interviews.pdf) by *Xinfeng Zhou* **[pdf]** 1972 | 1973 | * [Mathematical Foundations for Finance](https://metaphor.ethz.ch/x/2021/hs/401-3913-01L) by *Prof. Dr. Beatrice Acciaio* 1974 | * [Probability Theory](https://metaphor.ethz.ch/x/2021/hs/401-3913-01L/auth/lethz/notes/probability_theory/probability_theory.pdf) by *Prof. Dr. Alain-Sol Sznitman* **[pdf]** 1975 | * [Mathematical Foundations for Finance Lecture Notes](https://metaphor.ethz.ch/x/2021/hs/401-3913-01L/auth/lethz/notes/mff_script/lecture_notes.pdf) by *M. Schweizer* and *E. W. Farkas* **[pdf]** 1976 | 1977 | * [Statistical Method in Economics](https://ocw.mit.edu/courses/14-381-statistical-method-in-economics-fall-2018) by *Prof. Anna Mikusheva* 1978 | 1979 | * [Topics in Mathematics with Applications in Finance](https://ocw.mit.edu/courses/18-s096-topics-in-mathematics-with-applications-in-finance-fall-2013) by *Dr. Peter Kempthorne*, *Dr. Choongbum Lee*, *Dr. Vasily Strela*, and *Dr. Jake Xia* 1980 | 1981 | * [Trade Signal](https://www.investopedia.com/terms/t/trade-signal.asp) by *Lucas Downey* 1982 | 1983 | ### Mathematical Logic 1984 | 1985 | * [forall x: Calgary: An Introduction to Formal Logic](https://forallx.openlogicproject.org) by *P. D. Magnus*, *Tim Button*, *Robert Trueman*, and *Richard Zach* 1986 | 1987 | * [PQT Logic Textbook](https://www.cis.upenn.edu/~weinstei/PQT.pdf) by *Scott Weinstein*, *Owain West* and *Grace Zhang* **[pdf]** 1988 | 1989 | * [Lecture Notes on The Lambda Calculus](https://www.cs.cmu.edu/~fp/courses/15814-f18/lectures/Notes-15814-f18.pdf) by *Frank Pfenning* **[pdf]** 1990 | 1991 | * **Notes on Mathematical Logic** by *David W. Kueker* 1992 | * [Part 1](https://math.umd.edu/~dkueker/712.pdf) **[pdf]** 1993 | * [Part 2](https://math.umd.edu/~dkueker/713.pdf) **[pdf]** 1994 | 1995 | ### Measure Theory 1996 | 1997 | * [An Introduction to Measure Theory](https://terrytao.wordpress.com/wp-content/uploads/2012/12/gsm-126-tao5-measure-book.pdf) by *Terence Tao* **[pdf]** 1998 | 1999 | * [Measure, Integration & Real Analysis](https://measure.axler.net) by *Sheldon Axler* 2000 | 2001 | * [Measure Theory Princeton University MAT425 Lecture Notes](https://web.math.princeton.edu/~js129/PDFs/teaching/MAT425_spring_2025/MAT425_Lecture_Notes.pdf) **[pdf]** 2002 | 2003 | ### Number theory 2004 | 2005 | * [Elementary Number Theory: Primes, Congruences, and Secrets](https://wstein.org/ent) by *William Stein* 2006 | 2007 | * [Theory of Numbers](https://ocw.mit.edu/courses/18-781-theory-of-numbers-spring-2012) by *Prof. Abhinav Kumar* 2008 | 2009 | ### Operations Research 2010 | 2011 | * [Applied Mathematical Programming](https://web.mit.edu/15.053/www/AMP.htm) by *Stephen P. Bradley*, *Arnoldo C. Hax*, and *Thomas L. Magnanti* 2012 | 2013 | * [Arkadi Nemirovski Books and Lecture Notes on Optimization](https://www2.isye.gatech.edu/~nemirovs) 2014 | 2015 | * [Bridging Continuous and Discrete Optimization](https://people.orie.cornell.edu/dpw/orie6334) by *David P. Williamson* 2016 | 2017 | * [Introduction to Operations Research, Tenth Edition](https://s23.middlebury.edu/MATH0318A/Hillier10th.pdf) by *Frederick S. Hillier*, and *Gerald J. Lieberman* **[pdf]** 2018 | 2019 | * [Linear Programming Lecture Notes by Hal Gabow](https://home.cs.colorado.edu/~hal/565notes.pdf) **[dpf]** 2020 | 2021 | * [MOSEK Modeling Cookbook](https://docs.mosek.com/modeling-cookbook/index.html) 2022 | 2023 | ### Probability and Statistics 2024 | 2025 | * [Advanced Data Analysis from an Elementary Point of View](https://stat.cmu.edu/~cshalizi/ADAfaEPoV) by *Cosma Rohilla Shalizi* 2026 | 2027 | * [Advanced Probability](https://noter.math.ku.dk/vidsand12.pdf) by *Alexander Sokol* and *Anders Rønn-Nielsen* **[pdf]** 2028 | 2029 | * [All of Statistics: A concise Course in Statistical Inference](https://egrcc.github.io/docs/math/all-of-statistics.pdf) by *Larry Wasserman* **[pdf]** 2030 | 2031 | * [AnyDice](https://anydice.com) 2032 | 2033 | * [Bayes Rules! An Introduction to Applied Bayesian Modeling](https://www.bayesrulesbook.com/) by *Alicia A. Johnson, Miles Q. Ott, Mine Dogucu* 2034 | 2035 | * [Bayesian Data Analysis, Third Edition](https://sites.stat.columbia.edu/gelman/book) by *Andrew Gelman*, *John Carlin*, *Hal Stern*, *David Dunson*, *Aki Vehtari*, and *Donald Rubin* 2036 | 2037 | * [Digital textbook on probability and statistics](https://www.statlect.com) by *Marco Taboga* 2038 | 2039 | * [Elementary Probability for Applications](https://sites.math.duke.edu/~rtd/EP4A/EP4A_April2021.pdf) by *Rick Durrett* **[pdf]** 2040 | 2041 | * [Fundamentals of Probability](https://ocw.mit.edu/courses/6-436j-fundamentals-of-probability-fall-2018) by *Prof. Yury Polyanskiy* 2042 | 2043 | * [High-Dimensional Probability: An Introduction with Applications in Data Science](https://www.math.uci.edu/~rvershyn/papers/HDP-book/HDP-book.pdf) by *Roman Vershynin* **[pdf]** 2044 | 2045 | * [High-Dimensional Statistics](https://arxiv.org/abs/2310.19244) by *Philippe Rigollet* and *Jan-Christian Hütter* 2046 | 2047 | * [Introduction to Modern Statistics (2nd Ed)](https://openintro-ims2.netlify.app) by *Mine Çetinkaya-Rundel and Johanna Hardin* 2048 | 2049 | * [Introduction to Probability for Data Science](https://probability4datascience.com/index.html) by *Stanley H. Chan* 2050 | 2051 | * [Lecture Notes on Probability](https://www.tamuz.caltech.edu/teaching/ma144a/lectures.pdf) by *Omer Tamuz* **[pdf]** 2052 | 2053 | * [Lecture Notes on Probability Statistics and Linear Algebra](https://people.math.harvard.edu/~knill/teaching/math19b_2011/handouts/chapters1-19.pdf) by *C. H. Taubes* **[pdf]** 2054 | 2055 | * [Markov Chains for programmers](https://czekster.github.io/markov) by *Ricardo M. Czekster* 2056 | 2057 | * [Modern Discrete Probability: An Essential Toolkit](https://people.math.wisc.edu/~roch/mdp) by *Sebastien Roch* 2058 | 2059 | * [Notes on Counting and Rapidly Mixing Markov Chains](https://www.math.cmu.edu/~af1p/Mixingbook.pdf) by *Alan Frieze* **[pdf]** 2060 | 2061 | * [Notes on Probability](https://web.stanford.edu/~oas/SI/QM/notes/ProbabilityText.pdf) by *Peter J. Cameron* **[pdf]** 2062 | 2063 | * [One Thousand Exercises in Probability](https://amarinoo.ir/wp-content/uploads/2023/11/One_Thousand_Exercises_in_Probability_Third_Edition_Geoffrey_Grimmett-1.pdf) by *Geoffrey R. Grimmett* and *David R. Stirzaker* **[pdf]** 2064 | 2065 | * [OpenIntro Statistics, Fourth Edition](https://www.biostat.jhsph.edu/~iruczins/teaching/books/2019.openintro.statistics.pdf) by *David Diez*, *Mine C¸ etinkaya-Rundel*, and *Christopher D Barr* **[pdf]** 2066 | 2067 | * [Probability 101, the intuition behind martingales and solving problems with them](https://nor-blog.codeberg.page/posts/2022-12-31-probability-and-martingales/) 2068 | 2069 | * [Probability and Statistics: The Science of Uncertainty, Second Edition](https://www.utstat.toronto.edu/mikevans/jeffrosenthal) by *Michael J. Evans* and *Jeffrey S. Rosenthal* 2070 | 2071 | * [Probability and Statistics Cookbook](https://pages.cs.wisc.edu/~tdw/files/cookbook-en.pdf) by *Matthias Vallentin* 2072 | 2073 | * [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) by *Carlos Fernandez-Granda* **[pdf]** 2074 | 2075 | * [Probability for Computer Scientists](https://chrispiech.github.io/probabilityForComputerScientists) by *Chris Piech* 2076 | 2077 | * [Probability for Computer Scientists](https://web.stanford.edu/~mossr/pdf/p4cs.pdf) by *Robert J. Moss* **[pdf]** 2078 | 2079 | * [Probability in High Dimension](https://web.math.princeton.edu/~rvan/APC550.pdf) by *Ramon van Handel* **[pdf]** **[Princeton]** 2080 | 2081 | * [Probability in High Dimensions](https://tropp.caltech.edu/notes/Tro21-Probability-High-LN-corr.pdf) by *Prof. Joel A. Tropp* **[pdf]** **[Caltech]** 2082 | 2083 | * [Probability Theory](https://web.stanford.edu/class/stats310a/lnotes.pdf) by *Amir Dembo* **[pdf]** **[Stanford]** 2084 | * [Other course materials](https://web.stanford.edu/class/stats310a) 2085 | 2086 | * [Probability Theory & Computational Mathematics](https://tropp.caltech.edu/notes/Tro24-Probability-Theory-LN.pdf) by *Prof. Joel A. Tropp* **[pdf]** **[Caltech]** 2087 | 2088 | * [Probability with Engineering Applications](https://hajek.ece.illinois.edu/ECE313Notes.html) by *Bruce Hajek* 2089 | 2090 | * [Probability: Theory and Examples](https://sites.math.duke.edu/~rtd/PTE/PTE5_011119.pdf) by *Rick Durrett* **[pdf]** 2091 | 2092 | * [Seeing Theory](https://seeing-theory.brown.edu) - a book about statistics with interactive visualizations by *Daniel Kunin, Jingru Guo, Tyler Dae Devlin, and Daniel Xiang* 2093 | 2094 | * [Statistical Inference, Second Edition](https://pages.stat.wisc.edu/~shao/stat610/Casella_Berger_Statistical_Inference.pdf) by *George Casella* and *Roger L. Berger* **[pdf]** 2095 | 2096 | * [Statistics Handbook](https://github.com/carloocchiena/the_statistics_handbook) by *Carlo Occhiena* 2097 | 2098 | * [Stochastic Processes](https://adembo.su.domains/math-136/nnotes.pdf) by *Amir Dembo* **[pdf]** 2099 | 2100 | * [The Truth About Linear Regression](https://www.stat.cmu.edu/~cshalizi/TALR) by *Cosma Rohilla Shalizi* 2101 | 2102 | ### Proofs 2103 | 2104 | * [An introduction to mathematical proof](https://personal.math.ubc.ca/~PLP/assets/plp.pdf) by *Seçkin Demirbaş* and *Andrew Rechnitzer* **[pdf]** 2105 | 2106 | * [An Introduction to Mathematical Reasoning](https://sites.math.washington.edu/~conroy/m300-general/ConroyTaggartIMR.pdf) by *Matthew M. Conroy* and *Jennifer L. Taggart* **[pdf]** 2107 | 2108 | * [Book of Proof](https://richardhammack.github.io/BookOfProof), Third Edition by *Richard Hammack* 2109 | 2110 | * [Handbook of Mathematical Proof](https://www.ams.org/open-math-notes/files/course-material/OMN-202405-111405-1-Course_notes-v1.pdf) by *Edward D. Kim* **[pdf]** 2111 | 2112 | * [Language and Proofs in Algebra: An Introduction](https://cs.uwaterloo.ca/~cbruni/pdfs/Math135Notes/M135Notes_S2018.pdf) by *Carmen Bruni* **[pdf]** 2113 | 2114 | * [Mathematical Reasoning & Proofs](https://alistairsavage.ca/mat1362) by *Alistair Savage* **[University of Ottawa]** 2115 | 2116 | * [Reading, Discovering and Writing Proofs](https://cs.uwaterloo.ca/~cbruni/pdfs/Math135SeptDec2015/RDW_1.pdf) by *Carmen Bruni* **[pdf]** 2117 | 2118 | * [The Mechanics of Proof](https://hrmacbeth.github.io/math2001) by *Heather Macbeth* 2119 | 2120 | ### Theoretical Computer Science 2121 | 2122 | * [An Introduction to Abstract Mathematics](https://www.math.uci.edu/~ndonalds/math13/notes.pdf) by *Neil Donaldson* and *Alessandra Pantano* **[pdf]** 2123 | 2124 | * [Analytic Combinatorics](https://algo.inria.fr/flajolet/Publications/book.pdf) by *Philippe Flajolet* and *Robert Sedgewick* **[pdf]** 2125 | 2126 | * [Busy Beavers! - An interactive intro to Computability Theory](https://tigyog.app/d/C:tWWwvJDWlo/r/busy-beavers) by *Jim Fisher* 2127 | 2128 | * [Computational Complexity: A Modern Approach](https://theory.cs.princeton.edu/complexity) by *Sanjeev Arora* and *Boaz Barak* 2129 | 2130 | * [Discrete Mathematical Modeling](https://sites.math.washington.edu/~billey/classes/math.381.spring.2024/course.notes/381notes.pdf) by *Prof. Sara Billey* **[pdf]** 2131 | 2132 | * [Discrete Mathematics](https://www.cs.ox.ac.uk/andrew.ker/docs/discretemaths-lecture-notes-mt2010.pdf) by *Andrew D. Ker* **[pdf]** 2133 | 2134 | * [Discrete Mathematics: An Open Introduction, 4th Edition](https://discrete.openmathbooks.org/dmoi4.html) by *Oscar Levin* 2135 | 2136 | * [Discrete Mathematics and Its Applications, Eighth Edition](https://faculty.ksu.edu.sa/sites/default/files/%5BBook%5D%20Discrete%20mathematics%20and%20its%20applications%20%282019%29_0.pdf) by *Kenneth H. Rosen* 2137 | 2138 | * [Edsger W. Dijkstra Archive](https://www.cs.utexas.edu/~EWD/index03xx.html) 2139 | 2140 | * [Elements of Programming](http://elementsofprogramming.com) by *Alexander Stepanov and Paul McJones* 2141 | 2142 | * [Foundations of Computer Science](http://infolab.stanford.edu/~ullman/focs.html) by *[Alfred V. Aho](https://en.wikipedia.org/wiki/Alfred_Aho)* and *[Jeffrey D. Ullman](https://en.wikipedia.org/wiki/Jeffrey_Ullman)* 2143 | 2144 | * [Great Ideas in Theoretical Computer Science](https://ocw.mit.edu/courses/6-080-great-ideas-in-theoretical-computer-science-spring-2008) by *Prof. Scott Aaronson* 2145 | 2146 | * [Introduction to Theoretical Computer Science](https://introtcs.org) by [*Boaz Barak*](https://en.wikipedia.org/wiki/Boaz_Barak) 2147 | 2148 | * [Introduction to University Mathematics](https://courses.maths.ox.ac.uk/pluginfile.php/30903/mod_resource/content/33/Introduction%20to%20University%20Mathematics.pdf) by *Ian Hewitt* **[pdf]** 2149 | 2150 | * [Mathematical Foundations of Computing](https://web.stanford.edu/class/archive/cs/cs103/cs103.1184/notes/Mathematical%20Foundations%20of%20Computing.pdf) by *Keith Schwarz* **[pdf]** 2151 | 2152 | * [Mathematical Techniques for Algorithm Analysis](https://pages.cs.wisc.edu/~cs809-1/lectures.pdf) by *Eric Bach* **[pdf]** 2153 | 2154 | * [Mathematical Techniques for Computer Science](https://drive.google.com/file/d/1TRs0Yfdlm7UpY1LJ80ya8rLnmsWUVFi6/view) by *Andrea Schalk* **[pdf]** 2155 | 2156 | * [Mathematics and Computation: A Theory Revolutionizing Technology and Science](https://www.math.ias.edu/files/Book-online-Aug0619.pdf) by *Avi Wigderson* **[pdf]** 2157 | 2158 | * [Mathematics for Computer Science](https://people.csail.mit.edu/meyer/mcs.pdf) by *Eric Lehman*, *F. Thomson Leighton*, and *Albert R. Meyer* **[pdf]** 2159 | 2160 | * [Mathematics for Computer Science](https://ocw.mit.edu/courses/6-1200j-mathematics-for-computer-science-spring-2024) by *Prof. Erik Demaine*, *Dr. Zachary Abel*, and *Dr. Brynmor Chapman* 2161 | 2162 | * [Mathematics for Computer Science](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2010) by *Prof. Tom Leighton* and *Dr. Marten van Dijk* 2163 | 2164 | * [Notation as a Tool of Thought](https://www.jsoftware.com/papers/tot.htm) by *Kenneth E. Iverson* 2165 | 2166 | * [Notes on Computational Complexity Theory](https://www.cs.yale.edu/homes/aspnes/classes/468/notes.pdf) by *James Aspnes* **[pdf]** 2167 | 2168 | * [Notes on Discrete Mathematics](https://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf) by *James Aspnes* **[pdf]** 2169 | 2170 | * [Software Foundations](https://softwarefoundations.cis.upenn.edu) - A broad introduction to the mathematical underpinnings of reliable software. 2171 | 2172 | * [Type Theory & Functional Programming](https://www.cs.cornell.edu/courses/cs6110/2015sp/textbook/Simon%20Thompson%20textbook.pdf) by *Simon Thompson* **[pdf]** 2173 | 2174 | * [What Can Be Computed?: A Practical Guide to the Theory of Computation](https://www.softouch.on.ca/kb/data/What%20Can%20Be%20Computed.pdf) by *John MacCormick* **[pdf]** 2175 | 2176 | ### Topology 2177 | 2178 | * [Algebraic Topology for Data Scientists](https://arxiv.org/abs/2308.10825) by *Michael S. Postol* 2179 | 2180 | * [Computational Algebraic Topology](https://people.maths.ox.ac.uk/nanda/cat) by *Vidit Nanda* 2181 | 2182 | * [General Topology](https://www.maths.ed.ac.uk/~tl/topology/topology_notes.pdf) by *Tom Leinster* **[pdf]** 2183 | 2184 | * [Introduction To Symplectic Topology](https://julianchaidez.net/solutions/salamonmcduff.pdf) by *Dusa Mcduff* and *Dietmar Salamon* **[pdf]** 2185 | 2186 | * [Metric and Topological Spaces](https://www.dpmms.cam.ac.uk/~twk10/Top.pdf) by *T. W. K¨orner* **[pdf]** 2187 | 2188 | * [Topology Without Tears](https://www.topologywithouttears.net) by *Sidney A. Morris* 2189 | 2190 | ## Multithreading and Concurrency 2191 | 2192 | * [A C++17 Thread Pool for High-Performance Scientific Computing](https://arxiv.org/abs/2105.00613) by *Barak Shoshany* 2193 | 2194 | * [A Science of Concurrent Programs](https://lamport.azurewebsites.net/tla/science-book.html) by *Leslie Lamport* 2195 | 2196 | * [Implementing simple cooperative threads in C](https://brennan.io/2020/05/24/userspace-cooperative-multitasking) by *Stephen Brennan* 2197 | 2198 | * [Introduction to Parallel Computing Tutorial](https://hpc.llnl.gov/documentation/tutorials/introduction-parallel-computing-tutorial) 2199 | 2200 | * [Is Parallel Programming Hard, And, If So, What Can You Do About It?](https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html) by *Paul E. McKenney* 2201 | 2202 | * [Lockfree Programming: A Mental Model](https://xorvoid.com/lockfree_programming_a_mental_model.html) by *Anthony Bonkoski* 2203 | 2204 | * [POSIX Threads Programming](https://hpc-tutorials.llnl.gov/posix) by *Blaise Barney* 2205 | 2206 | * [Reading and writing](https://blog.jcoglan.com/2020/09/28/reading-and-writing-part-1) - Article series on race conditions by *James Coglan* 2207 | 2208 | * [Spinlocks vs. Mutexes: When to Spin and When to Sleep](https://howtech.substack.com/p/spinlocks-vs-mutexes-when-to-spin) 2209 | 2210 | * [The Deadlock Empire](https://deadlockempire.github.io) 2211 | 2212 | * [The Little Book of Semaphores](https://greenteapress.com/wp/semaphores) by *Allen B. Downey* 2213 | 2214 | * [What every systems programmer should know about concurrency](https://assets.bitbashing.io/papers/concurrency-primer.pdf) by *Matt Kline* **[pdf]** 2215 | 2216 | ## Music Theory 2217 | 2218 | * [Introduction to Computer Music](https://cmtext.com) by *Prof. Jeffrey Hass* 2219 | 2220 | ## Operating Systems 2221 | 2222 | * [A Commentary On The Sixth Edition Unix Operating System](https://warsus.github.io/lions-) by *J. Lions* 2223 | 2224 | * [Advanced Linux Programming](https://agabroward.org/ourpages/auto/2017/10/14/52245814/advanced-linux-programming.pdf) by *Mark Mitchell*, *Jeffrey Oldham*, and *Alex Samuel* **[pdf]** 2225 | 2226 | * [Exploring Operating Systems](https://mohitmishra786.github.io/exploring-os) 2227 | 2228 | * [Linux Insides](https://0xax.gitbooks.io/linux-insides/content/) by *Alex Kuleshov* 2229 | 2230 | * [How to write Rust in the kernel](https://lwn.net/Articles/1024941) by *Daroc Alden* 2231 | * [Part 1](https://lwn.net/Articles/1024202) 2232 | * [Part 2](https://lwn.net/Articles/1025232) 2233 | * [Part 3](https://lwn.net/SubscriberLink/1026694/3413f4b43c862629) 2234 | 2235 | * [Making our own executable packer](https://fasterthanli.me/series/making-our-own-executable-packer) by *Amos Wenger* 2236 | 2237 | * [My Own Private Binary: An Idiosyncratic Introduction to Linux Kernel Modules](https://www.muppetlabs.com/~breadbox/txt/mopb.html) 2238 | 2239 | * [Notes on Operating Systems](https://www.cs.yale.edu/homes/aspnes/pinewiki/CS422(2f)Notes.html) by *James Aspnes* 2240 | 2241 | * [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/) by *Remzi H Arpaci-Dusseau* and *Andrea C Arpaci-Dusseau* 2242 | 2243 | * [Systems Programming: Lecture Notes](http://web.eecs.utk.edu/~huangj/cs360/lecture_notes.html) by *Jian Huang* 2244 | 2245 | * [The Art of Unix Programming](http://www.catb.org/esr/writings/taoup/html) by *Eric Steven Raymond* 2246 | 2247 | * [The Linux Documentation Project](https://tldp.org) 2248 | 2249 | * [The Linux Kernel Module Programming Guide](https://sysprog21.github.io/lkmpg) by *Peter Jay Salzman, Michael Burian, Ori Pomerantz, Bob Mottram, Jim Huang* 2250 | 2251 | * [The UNIX-HATERS Handbook](https://simson.net/ref/ugh.pdf) by *Simson Garfinkel*, *Daniel Weise*, and *Steven Strassmann* **[pdf]** 2252 | 2253 | * [Unix as IDE](https://blog.sanctum.geek.nz/series/unix-as-ide) by *Tom Ryder* 2254 | 2255 | ### Operating Systems Development 2256 | 2257 | * [A Journey in Creating an Operating System Kernel](https://539kernel.com) by *Mohammed Q. Hussain* 2258 | 2259 | * [Baking Pi – Operating Systems Development](https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os) by *Alex Chadwick* 2260 | 2261 | * [Making a RISC-V Operating System using Rust](https://osblog.stephenmarz.com) by *Stephen Marz* 2262 | 2263 | * **Making an RISC-V OS** 2264 | * [Part 1 - Project Setup](https://traxys.me/riscv_os_setup.html) 2265 | * [Part 2 - Kernel in virtual addresses](https://traxys.me/riscv_os_2.html) 2266 | * [Part 3 - Managing free memory](https://traxys.me/riscv_os_buddy.html) 2267 | 2268 | * [Operating System development tutorials in Rust on the Raspberry Pi](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials) by *Andre Richter* 2269 | 2270 | * [Operating System in 1,000 Lines](https://operating-system-in-1000-lines.vercel.app/en) by *Seiya Nuta* 2271 | 2272 | * [Operating Systems: From 0 to 1](https://tuhdo.github.io/os01) by *Tu Do* 2273 | 2274 | * [OSDev.org](https://wiki.osdev.org/Expanded_Main_Page) 2275 | 2276 | * [The little book about OS development](https://littleosbook.github.io) by *Erik Helin* and *Adam Renberg* 2277 | 2278 | * [Writing a Simple Operating System — from Scratch](https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf) by *Nick Blundell* 2279 | 2280 | * [Writing an OS in Rust](https://os.phil-opp.com) by *Philipp Oppermann* 2281 | 2282 | * [Writing an OS in Nim](https://0xc0ffee.netlify.app) by *Khaled Hammouda* 2283 | 2284 | ## Photography 2285 | 2286 | * [Photography for geeks](https://lcamtuf.coredump.cx/photo_basics) by *Michal Zalewski* 2287 | 2288 | ## Physics 2289 | 2290 | * [A free introduction to quantum computing and quantum mechanics](https://quantum.country) by *Andy Matuschak and Michael Nielsen* 2291 | 2292 | * [An introduction to Lagrangian and Hamiltonian mechanics](https://www.macs.hw.ac.uk/~simonm/mechanics.pdf) by *Simon J.A. Malham* **[pdf]** 2293 | 2294 | * [An Intuitive Guide to Maxwell’s Equations](https://photonlines.substack.com/p/an-intuitive-guide-to-maxwells-equations) by *Nick M.* 2295 | 2296 | * [Applications of Classical Physics](http://pmaweb.caltech.edu/Courses/ph136/yr2012) by *Roger D. Blandford* and *Kip S. Thorne* 2297 | 2298 | * [IBM Quantum Learning](https://learning.quantum.ibm.com) - Learn the basics of quantum computing. 2299 | 2300 | * [Introduction to Special Relativity, Quantum Mechanics and Nuclear Physics for Nuclear Engineers](https://websites.umich.edu/~ners311/CourseLibrary/book.pdf) by *Alex F. Bielajew* **[pdf]** 2301 | 2302 | * [Motion Mountain](https://www.motionmountain.net) by *Christoph Schiller* - A free physics textbook in 5 volumes. 2303 | 2304 | * [Open textbooks for undergraduate physics](https://openaccesstexts.com/physics) 2305 | 2306 | * [Orbital Mechanics](https://www.alanzucconi.com/2025/09/04/orbital-mechanics) by * 2307 | Alan Zucconi* 2308 | 2309 | * [Percolation Theory](https://web.mit.edu/ceder/publications/Percolation.pdf) by *Dr. Kim Christensen* **[pdf]** 2310 | 2311 | * [Physics for Mathematicians](https://nicf.net/articles/physics-for-mathematicians) by *Nicolas James Marks Ford* 2312 | 2313 | * [Quantum Computation Lecture Notes](https://math.mit.edu/~shor/435-LN) by *Peter Shor* 2314 | 2315 | * [Quantum Mechanics](https://github.com/basketballguy999/Quantum-Mechanics-Concise-Book) by *basketballguy* 2316 | 2317 | * [Quantum Mechanics for Engineers](https://websites.umich.edu/~ners311/CourseLibrary/Dommelen.pdf) by *Leon van Dommelen* **[pdf]** 2318 | 2319 | * [Relativity: A Modern Primer](http://ramp-book.com) by *Kevin Han* 2320 | 2321 | * [Structure and Interpretation of Classical Mechanics](https://groups.csail.mit.edu/mac/users/gjs/6946/sicm-html) by *[Gerald Jay Sussman](https://en.wikipedia.org/wiki/Gerald_Jay_Sussman)* and *[Jack Wisdom](https://en.wikipedia.org/wiki/Jack_Wisdom)* with *[Meinhard E. Mayer](https://en.wikipedia.org/wiki/Meinhard_E._Mayer)* 2322 | 2323 | * [The Feynman Lectures on Physics](https://www.feynmanlectures.caltech.edu) 2324 | 2325 | * [Physics-Based Simulation](https://phys-sim-book.github.io) by *Minchen Li*, *Chenfanfu Jiang*, and *Zhaofeng Luo* 2326 | 2327 | ## Programming languages 2328 | 2329 | * [A Dumb Introduction to z3](https://asibahi.github.io/thoughts/a-gentle-introduction-to-z3) by *Rahman Sibahi* 2330 | 2331 | * [Control structures in programming languages: from goto to algebraic effects](https://xavierleroy.org/control-structures) by *Xavier Leroy* 2332 | 2333 | * **[Exotic Programming Ideas](https://www.stephendiehl.com/posts/types_of_types/)** by *Stephen Diehl* 2334 | * [Part 1: Module Systems](https://www.stephendiehl.com/posts/exotic_01) 2335 | * [Part 2: Term Rewriting](https://www.stephendiehl.com/posts/exotic_02) 2336 | * [Part 3: Effect Systems](https://www.stephendiehl.com/posts/exotic_03) 2337 | * [Part 4: Datalog](https://www.stephendiehl.com/posts/exotic_04) 2338 | * [Part 5: Types of Types](https://www.stephendiehl.com/posts/types_of_types) 2339 | 2340 | * [Introduction to the Theory of Programming Languages](https://bertrandmeyer.com/itpl) by *Bertrand Meyer* 2341 | 2342 | ### Ada 2343 | 2344 | * [Ada 95: The Craft of Object-Oriented Programming](https://adaic.org/resources/add_content/docs/craft/html/contents.htm) by *John English* 2345 | 2346 | * [Ada Gem Archive](https://www.adacore.com/gems) 2347 | 2348 | * [Introduction to Ada: a project-based exploration with rosettas](https://blog.adacore.com/introduction-to-ada-a-project-based-exploration-with-rosettas) by *Romain Gora* 2349 | 2350 | ### Assembly 2351 | 2352 | * **A friendly introduction to assembly for high-level programmers** by *Manuel Spagnolo* 2353 | * [Part 1: Hello](https://shikaan.github.io/assembly/x86/guide/2024/09/16/x86-64-conditionals.html) 2354 | * [Part 2: Conditionals](https://shikaan.github.io/assembly/x86/guide/2024/09/16/x86-64-conditionals.html) 2355 | 2356 | * [A fundamental introduction to x86 assembly programming](https://www.nayuki.io/page/a-fundamental-introduction-to-x86-assembly-programming) by *Nayuki* 2357 | 2358 | * [An interactive guide to x86-64 assembly](https://halb.it/posts/x64-introduction) by *Alberto Ventafridda* 2359 | 2360 | * [Easy RISC-V](https://dramforever.github.io/easyriscv) 2361 | 2362 | * [FFmpeg School of Assembly Language](https://github.com/FFmpeg/asm-lessons) 2363 | 2364 | * [Learn Assembly Language](https://asmtutor.com) - NASM x86 assembly language tutorial on Linux. 2365 | 2366 | * [Programming from the Ground Up](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf) by *Jonathan Bartlett* **[pdf]** 2367 | 2368 | * [Learn x86-64 assembly by writing a GUI from scratch](https://gaultier.github.io/blog/x11_x64.html) by *Philippe Gaultier* 2369 | 2370 | * **Let's Learn x86-64 Assembly!** 2371 | * [Part 0 - Setup and First Steps](https://gpfault.net/posts/asm-tut-0.txt.html) 2372 | * [Part 1 - Metaprogramming in Flat Assembler](https://gpfault.net/posts/asm-tut-1.txt.html) 2373 | * [Part 2 - We're Writing a Virtual Machine](https://gpfault.net/posts/asm-tut-2.txt.html) 2374 | * [Part 3 - Arithmetic and Logic](https://gpfault.net/posts/asm-tut-3.txt.html) 2375 | * [Part 4 - More About Jumps Than You Wanted To Know](https://gpfault.net/posts/asm-tut-4.html) 2376 | 2377 | * [NASM Tutorial](https://cs.lmu.edu/~ray/notes/nasmtutorial/) 2378 | 2379 | * [PC Assembly Language](https://pacman128.github.io/pcasm) by *Paul A. Carter* 2380 | 2381 | * [RISC-V Assembly Programming](https://riscv-programming.org) by *Prof. Edson Borin* 2382 | 2383 | * [The Art of Assembly Language](https://www.plantation-productions.com/Webster/www.artofasm.com/Linux/HTML/AoATOC.html) by *Randall Hyde* 2384 | 2385 | * [Understanding Windows x64 Assembly](https://sonictk.github.io/asm_tutorial) by *Siew Yi Liang* 2386 | 2387 | * [x86-64 Assembly Language Programming with Ubuntu](http://www.egr.unlv.edu/~ed/x86.html) by *Ed Jorgensen* 2388 | 2389 | ### Bash 2390 | 2391 | * [Introduction to Bash Scripting](https://github.com/bobbyiliev/introduction-to-bash-scripting) by *Bobby Iliev* 2392 | 2393 | ### Basic 2394 | 2395 | * [BBC BASIC for SDL 2.0](https://www.bbcbasic.co.uk/bbcsdl/index.html) 2396 | 2397 | ### C 2398 | 2399 | * [Compiler Options Hardening Guide for C and C++](https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html) 2400 | 2401 | * [Coroutines in C](https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html) by *Simon Tatham* 2402 | 2403 | * [Demystifying bitwise operations, a gentle C tutorial](https://www.andreinc.net/2023/02/01/demystifying-bitwise-ops) by *Andrei Ciobanu* 2404 | 2405 | * [Extreme C](https://www.packtpub.com/free-ebook/extreme-c/9781789343625) by *Kamran Amini* 2406 | 2407 | * [Few lesser known tricks, quirks and features of C](https://jorenar.com/blog/less-known-c) 2408 | 2409 | * [Hacking Coroutines into C](https://wiomoc.de/misc/posts/hacking_coroutines_into_c.html) by *Christoph Walcher* 2410 | 2411 | * [Hacktical C: A practical hacker's guide to the C programming language](https://github.com/codr7/hacktical-c) 2412 | 2413 | * [How to implement a hash table (in C)](https://benhoyt.com/writings/hash-table-in-c) by *Ben Hoyt* 2414 | 2415 | * [I Write Type Safe Generic Data Structures in C](https://danielchasehooper.com/posts/typechecked-generic-c-data-structures) by *Daniel Hooper* 2416 | 2417 | * [Implementing smart pointers for the C programming language](https://snai.pe/posts/c-smart-pointers) 2418 | 2419 | * [Modern C](https://gustedt.gitlabpages.inria.fr/modern-c) by *Jens Gustedt* 2420 | 2421 | * [Object-Oriented Programming with ANSI-C](https://www.mclibre.org/descargar/docs/libros/ooc-ats.pdf) by *Axel-Tobias Schreiner* **[pdf]** 2422 | 2423 | * [So You Think You Know C?](https://wordsandbuttons.online/SYTYKC.pdf) by *Oleksandr Kaleniuk* **[pdf]** 2424 | 2425 | * [The C Book](https://publications.gbdirect.co.uk/c_book) by *Mike Banahan*, *Declan Brady* and *Mark Doran* 2426 | 2427 | * [The Lost Art of Structure Packing](http://www.catb.org/esr/structure-packing) by *Eric S. Raymond* 2428 | 2429 | * [Writing a Simple Garbage Collector in C](http://maplant.com/gc.html) by *Matthew Plant* 2430 | 2431 | ### C# 2432 | 2433 | * [Developing on AWS with C#](https://d1.awsstatic.com/developer-center/DevelopingonAWS_ER_fulldraft_net.pdf) by *Noah Gift* and *James Charlesworth* **[pdf]** 2434 | 2435 | ### C++ 2436 | 2437 | * [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) by *Bjarne Stroustrup* and *Herb Sutter* 2438 | 2439 | * **C++ exceptions uner the hood** by *Nicolás Brailovsky* 2440 | * [Part 1](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehood) 2441 | * [Part 2: A tiny ABI](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehoodiiatinyabi) 2442 | * [Part 3: An ABI to appease the linker](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehood3anabitoappeasethelinker) 2443 | * [Part 4: Catching what you throw](https://nicolasbrailo.github.io/blog/2013/2.html#cexceptionsunderthehood4catchingwhatyouthrow) 2444 | * [Part 5: Magic around __cxa_begin_catch and __cxa_end_catch](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood5magicaround__cxa_begin_catchand__cxa_end_catch) 2445 | * [Part 6: gcc_except_table and the personality function](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood6gcc_except_tableandthepersonalityfunction) 2446 | * [Part 7: A nice personality](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood7anicepersonality) 2447 | * [Part 8: Two-phase handling](https://nicolasbrailo.github.io/blog/2013/3.html#cexceptionsunderthehood8twophasehandling) 2448 | * [Part 9: Catching our first exception](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood9catchingourfirstexception) 2449 | * [Part 10: Unwind and call frame info](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood10unwindandcallframeinfo) 2450 | * [Part 11: Reading a CFI table](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood11readingacfitable) 2451 | * [Part 12: And suddenly, reflexion in C++](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood12andsuddenlyreflexioninc) 2452 | * [Part 13: Setting the context for a landing pad](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood13settingthecontextforalandingpad) 2453 | * [Part 14: Multiple landing pads & the teachings of the guru](https://nicolasbrailo.github.io/blog/2013/4.html#cexceptionsunderthehood14multiplelandingpadstheteachingsoftheguru) 2454 | * [Part 15: Finding the right landing pad](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood15findingtherightlandingpad) 2455 | * [Part 16: Finding the right catch in a landing](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood16findingtherightcatchinalanding) 2456 | * [Part 17: Reflecting on an exception type and reading .gcc_except_table](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood17reflectingonanexceptiontypeandreading.gcc_except_table) 2457 | * [Part 18: Getting the right stack frame](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood18gettingtherightstackframe) 2458 | * [Part 19: Getting the right catch in a landing pad](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood19gettingtherightcatchinalandingpad) 2459 | * [Part 20: Running destructors while unwinding](https://nicolasbrailo.github.io/blog/2013/5.html#cexceptionsunderthehood20runningdestructorswhileunwinding) 2460 | * [Part 21: A summary and some final thoughts](https://nicolasbrailo.github.io/blog/2013/6.html#cexceptionsunderthehood21asummaryandsomefinalthoughts) 2461 | * [Appendix I: The true cost of an exception](https://nicolasbrailo.github.io/blog/2013/6.html#cexceptionsunderthehoodappendixithetruecostofanexception) 2462 | * [Appendix II: Metaclasses and RTTI on C++](https://nicolasbrailo.github.io/blog/2013/6.html#cexceptionsunderthehoodappendixiimetaclassesandrttionc) 2463 | * [Appendix III: RTTI and exceptions orthogonality](https://nicolasbrailo.github.io/blog/2013/7.html#cexceptionsunderthehoodappendixiiirttiandexceptionsorthogonality) 2464 | 2465 | * [C++20 Coroutines: sketching a minimal async framework](https://www.jeremyong.com/cpp/2021/01/04/cpp20-coroutines-a-minimal-async-framework) by *Jeremy Ong* 2466 | 2467 | * [C++20 Concepts: The Definitive Guide](https://thecodepad.com/cpp/c20-concepts-the-definitive-guide) by *Rajat Jain* 2468 | 2469 | * [Effective Modern C++](https://ia902804.us.archive.org/23/items/EffectiveModernC/Effective-Modern-C%2B%2B.pdf) by *Scott Meyers* **[pdf]** 2470 | 2471 | * [Efficient Programming with Components](https://www.jmeiners.com/efficient-programming-with-components) by *Alexander Stepanov* and *Justin Meiners* 2472 | 2473 | * [Fiber in C++: Understanding the Basics](https://agraphicsguynotes.com/posts/fiber_in_cpp_understanding_the_basics) by *Jiayin Cao* 2474 | 2475 | * [Hacking C++](https://hackingcpp.com) 2476 | 2477 | * [Learn C++](https://www.learncpp.com) 2478 | 2479 | * [Learning to read C++ compiler errors: Not a legal base class](https://devblogs.microsoft.com/oldnewthing/20250919-00/?p=111612) by *Raymond Chen* 2480 | 2481 | * [Microsoft C++ language documentation](https://docs.microsoft.com/en-us/cpp/cpp) 2482 | 2483 | * [More C++ Idioms](https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms) 2484 | 2485 | * [My Favorite C++ Pattern: X Macros](https://danilafe.com/blog/chapel_x_macros) by *Daniel Fedorin* 2486 | 2487 | * [Philosophy of coroutines](https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/coroutines-philosophy) by *Simon Tatham* 2488 | 2489 | * [The Boost C++ Libraries](https://theboostcpplibraries.com) by *Boris Schäling* 2490 | 2491 | * **Thoughts on creating a tracking pointer class** by *Raymond Chen* 2492 | * [Part 1: Concept art](https://devblogs.microsoft.com/oldnewthing/20250811-00/?p=111451) 2493 | * [Part 2: Using a std::list](https://devblogs.microsoft.com/oldnewthing/20250812-00/?p=111454) 2494 | * [Part 3: Using a std::vector](https://devblogs.microsoft.com/oldnewthing/20250813-00/?p=111459) 2495 | * [Part 4: Using a circular doubly linked list](https://devblogs.microsoft.com/oldnewthing/20250814-00/?p=111482) 2496 | * [Part 5: Copying our tracking pointer](https://devblogs.microsoft.com/oldnewthing/20250815-00/?p=111484) 2497 | * [Part 6: Non-modifying trackers](https://devblogs.microsoft.com/oldnewthing/20250818-00/?p=111486) 2498 | * [Part 7: Non-modifying trackers, second try](https://devblogs.microsoft.com/oldnewthing/20250819-00/?p=111488) 2499 | * [Part 8: Tracking const objects](https://devblogs.microsoft.com/oldnewthing/20250820-00/?p=111490) 2500 | * [Part 9: Conversion](https://devblogs.microsoft.com/oldnewthing/20250821-00/?p=111492) 2501 | * [Part 10: Proper conversion](https://devblogs.microsoft.com/oldnewthing/20250822-00/?p=111494) 2502 | * [Part 11: Repairing assignment](https://devblogs.microsoft.com/oldnewthing/20250825-00/?p=111497) 2503 | * [Part 12: A shared tracking pointer](https://devblogs.microsoft.com/oldnewthing/20250826-00/?p=111506) 2504 | * [Part 13: Restoring the strong exception guarantee](https://devblogs.microsoft.com/oldnewthing/20250827-00/?p=111518) 2505 | * [Part 14: Nonthrowing moves with the shared tracking pointer](https://devblogs.microsoft.com/oldnewthing/20250828-00/?p=111524) 2506 | * [Part 15: A custom shared pointer](https://devblogs.microsoft.com/oldnewthing/20250829-00/?p=111526) 2507 | * [Part 16: Second attempt to use a list](https://devblogs.microsoft.com/oldnewthing/20250901-00/?p=111537) 2508 | 2509 | ### CMake 2510 | 2511 | * [An Introduction to Modern CMake](https://cliutils.gitlab.io/modern-cmake/README.html) by *Henry Schreiner* 2512 | 2513 | ### Cuda 2514 | 2515 | * [How To Write A Fast Matrix Multiplication From Scratch With Tensor Cores](https://alexarmbr.github.io/2024/08/10/How-To-Write-A-Fast-Matrix-Multiplication-From-Scratch-With-Tensor-Cores.html) by *Alex Armbruster* 2516 | 2517 | ### D 2518 | 2519 | * [Programming in D](http://ddili.org/ders/d.en/index.html) by *Ali Çehreli* 2520 | 2521 | ### Datalog 2522 | 2523 | * [Learn Datalog Today](https://www.learndatalogtoday.org) by *Jonas Enlund* 2524 | 2525 | ### Erlang 2526 | 2527 | * [Adopting Erlang](https://adoptingerlang.org) by *Tristan Sloughter*, *Fred Hebert*, and *Evan Vigil-McClanahan* 2528 | 2529 | * [Learn You Some Erlang for great good!](https://learnyousomeerlang.com) by *Fred Hebert* 2530 | 2531 | * [Stuff Goes Bad: Erlang in Anger](https://www.erlang-in-anger.com) by *Fred Hebert* 2532 | 2533 | ### Forth 2534 | 2535 | * [Easy Forth](https://skilldrick.github.io/easyforth) by *Nick Morgan* 2536 | 2537 | * [Forth: The programming language that writes itself](https://ratfactor.com/forth/the_programming_language_that_writes_itself.html) by *Dave Gauer* 2538 | 2539 | * [Implementing a Forth](https://ratfactor.com/forth/implementing) by *Dave Gauer* 2540 | 2541 | * [Starting FORTH](https://www.forth.com/starting-forth) by *Leo Brodie* 2542 | 2543 | * [Thinking Forth](https://www.forth.com/wp-content/uploads/2018/11/thinking-forth-color.pdf) by *Leo Brodie* **[pdf]** 2544 | 2545 | ### Go 2546 | 2547 | * [A comprehensive guide to go generate](https://eli.thegreenplace.net/2021/a-comprehensive-guide-to-go-generate) by *Eli Bendersky* 2548 | 2549 | * [Accessing PostgreSQL databases in Go](https://eli.thegreenplace.net/2021/accessing-postgresql-databases-in-go) by *Eli Bendersky* 2550 | 2551 | * [Embedding in Go](https://eli.thegreenplace.net/2020/embedding-in-go-part-1-structs-in-structs) by *Eli Bendersky* 2552 | 2553 | * [Generic functions on slices with Go type parameters](https://eli.thegreenplace.net/2021/generic-functions-on-slices-with-go-type-parameters) by *Eli Bendedrsky* 2554 | 2555 | * [Go internals: invariance and memory layout of slices](https://eli.thegreenplace.net/2021/go-internals-invariance-and-memory-layout-of-slices) by *Eli Bendersky* 2556 | 2557 | * [Go Optimization Guide](https://goperf.dev) by *Alexander Stavonin* 2558 | 2559 | * [Higher-order functions in Go](https://eli.thegreenplace.net/2023/higher-order-functions-in-go) by *Eli Benderski* 2560 | 2561 | * [Memory Allocation in Go](https://nghiant3223.github.io/2025/06/03/memory_allocation_in_go.html) by *Nguyen Trong Nghia* 2562 | 2563 | * [Notes on running Go in the browser with WebAssembly](https://eli.thegreenplace.net/2024/notes-on-running-go-in-the-browser-with-webassembly) by *Eli Benderski* 2564 | 2565 | * [Practical Go Lessons](https://www.practical-go-lessons.com) by *Maximilien Andile* 2566 | 2567 | * [Ranging over functions in Go 1.23](https://eli.thegreenplace.net/2024/ranging-over-functions-in-go-123) by *Eli Benderski* 2568 | 2569 | * [The Y combinator in Go with generics](https://eli.thegreenplace.net/2022/the-y-combinator-in-go-with-generics) by *Eli Benderski* 2570 | 2571 | #### Network programming in Go 2572 | 2573 | * [Go HTTPS servers with TLS](https://eli.thegreenplace.net/2021/go-https-servers-with-tls) 2574 | 2575 | * [Go socket servers with TLS](https://eli.thegreenplace.net/2021/go-socket-servers-with-tls) 2576 | 2577 | * [REST Servers in Go](https://eli.thegreenplace.net/2021/rest-servers-in-go-part-1-standard-library) by *Ely Bendersky* 2578 | 2579 | ### Haskell 2580 | 2581 | * [Learn Haskell by building a blog generator](https://lhbg-book.link/) *Gil Mizrahi* 2582 | 2583 | * [Learn You a Haskell for Great Good!](http://learnyouahaskell.com) by *Miran Lipovača* 2584 | 2585 | * [Monads for functional programming](https://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf) by *Philip Wadler* **[pdf]** 2586 | 2587 | * [Monday Morning Haskell](https://mmhaskell.com) 2588 | 2589 | * [Real World Haskell](http://book.realworldhaskell.org) by *Bryan O'Sullivan, Don Stewart, and John Goerzen* 2590 | 2591 | ### Jai 2592 | 2593 | * [Jai articles by James Oswald](https://jamesoswald.dev/tags/jai) 2594 | * [Simplicity, Jai, and Joy (Jai Part 1)](https://jamesoswald.dev/posts/jai-1) 2595 | * [Embedding, Jai, and Joy (Jai Part 2)](https://jamesoswald.dev/posts/jai-2) 2596 | * [Emulating Rust's Result and ? in Jai with Metaprogramming](https://jamesoswald.dev/posts/jai-result) 2597 | 2598 | ### Java 2599 | 2600 | * [How to Design Classes](https://felleisen.org/matthias/HtDC/htdc.pdf) by *Matthias Felleisen, Matthew Flatt, Robert Bruce Findler, Kathryn E. Gray, Shriram Krishnamurthi and Viera K. Proulx* **[pdf]** 2601 | 2602 | * [Think Java](https://greenteapress.com/wp/think-java-2e) by *Allen B. Downey* 2603 | 2604 | ### JavaScript 2605 | 2606 | * [Eloquent JavaScript](https://eloquentjavascript.net) by *Marijn Haverbeke* 2607 | 2608 | * [Exploring JS: JavaScript books for programmers](https://exploringjs.com) by *Dr. Axel Rauschmayer* 2609 | 2610 | * [Structure and Interpretation of Computer Programs — JavaScript Edition](https://sourceacademy.org/sicpjs) by 2611 | - *Harold Abelson and Gerald Jay Sussman with Julie Sussman* — original authors 2612 | - *Martin Henz and Tobias Wrigstad with Julie Sussman* — adapters to JavaScript 2613 | - *Samuel Fang* — designer and developer of this Interactive SICP JS edition 2614 | 2615 | * [The Modern JavaScript Tutorial](https://javascript.info) by *Ilya Kantor* 2616 | 2617 | * [Mostly adequate guide to FP (in JavaScript)](https://mostly-adequate.gitbook.io/mostly-adequate-guide) 2618 | 2619 | ### Lean 2620 | 2621 | * [Functional Programming in Lean](https://leanprover.github.io/functional_programming_in_lean) by *David Thrane Christiansen* 2622 | 2623 | ### Lisp dialects 2624 | 2625 | #### Clojure 2626 | 2627 | * [Babashka Babooka: Write Command-Line Clojure](https://www.braveclojure.com/quests/babooka) by *Daniel Higginbotham* 2628 | 2629 | * [Clojure for the Brave and True](https://www.braveclojure.com/) by *Daniel Higginbotham* 2630 | 2631 | #### Common Lisp 2632 | 2633 | * **Gamedev in Lisp** by *Andrew Kravchuk* 2634 | * [Part 1: ECS and Metalinguistic Abstraction](https://gitlab.com/lockie/cl-fast-ecs/-/wikis/tutorial-1) 2635 | * [Part 2: Dungeons and Interfaces](https://gitlab.com/lockie/cl-fast-ecs/-/wikis/tutorial-2) 2636 | 2637 | * [Learn Lisp The Hard Way](https://llthw.common-lisp.dev) by *"the Phoeron" Colin J.E. Lupton* 2638 | 2639 | * [On Lisp](https://www.paulgraham.com/onlisptext.html) by *Paul Graham* 2640 | 2641 | * [Practical Common Lisp](https://gigamonkeys.com/book) by *Peter Seibel* 2642 | 2643 | * [Successful Lisp: How to Understand and Use Common Lisp](https://dept-info.labri.fr/~strandh/Teaching/MTP/Common/David-Lamkins/cover.html) by *David B. Lamkins* 2644 | 2645 | * [The Common Lisp Cookbook](https://lispcookbook.github.io/cl-cookbook) 2646 | 2647 | * [Typed Lisp, A Primer](http://alhassy.com/TypedLisp) by *Musa Al-hassy* 2648 | 2649 | #### Racket 2650 | 2651 | * **A Functional Introduction To Computer Science** by *Prabhakar Ragde* 2652 | - [Part I](https://cs.uwaterloo.ca/~plragde/flaneries/FICS) 2653 | - [Part II](https://cs.uwaterloo.ca/~plragde/flane/FICS2) 2654 | 2655 | * [Beautiful Racket](https://beautifulracket.com/) by *Matthew Butterick* 2656 | 2657 | * [How to Design Programs](https://htdp.org/), Second Edition by *Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi* 2658 | 2659 | * [Programming Languages: Application and Interpretation](https://www.plai.org) by *Shriram Krishnamurthi* 2660 | 2661 | #### Scheme 2662 | 2663 | * [Structure and Interpretation of Computer Programs](https://xuanji.appspot.com/isicp/index.html) by *Harold Abelson and Gerald Jay Sussman with Julie Sussman* 2664 | 2665 | * [(learn 'scheme)](https://jaredkrinke.github.io/learn-scheme) by *Jared Krinke* 2666 | 2667 | ### Nim 2668 | 2669 | * [Computer Programming with the Nim Programming Language](https://ssalewski.de/nimprogramming.html) by *Dr. Stefan Salewski* 2670 | 2671 | ### OCaml 2672 | 2673 | * [OCaml Programming: Correct + Efficient + Beautiful](https://cs3110.github.io/textbook/cover.html) by *Michael R. Clarkson* 2674 | 2675 | * [Real World OCaml](https://dev.realworldocaml.org) by *Yaron Minsky*, *Anil Madhavapeddy* and *Jason Hickey* 2676 | 2677 | ### Oberon-2 2678 | 2679 | * [Object-Oriented Programming in Oberon-2](https://ssw.jku.at/Research/Books/Oberon2.pdf) by *Hanspeter Mössenböck* **[pdf]** 2680 | 2681 | ### Odin 2682 | 2683 | * ["Handles are the better pointers": An Odin gamedev follow-up](https://zylinski.se/posts/handle-based-arrays) by *Karl Zylinski* 2684 | 2685 | * [Introduction to the Odin Programming Language](https://zylinski.se/posts/introduction-to-odin) by *Karl Zylinski* 2686 | 2687 | * [Mistakes and cool things to do with arena allocators](https://zylinski.se/posts/dynamic-arrays-and-arenas) by *Karl Zylinski* 2688 | 2689 | ### Pascal 2690 | 2691 | * [Modern Object Pascal Introduction for Programmers](https://castle-engine.io/modern_pascal_introduction.html) by *Michalis Kamburelis* 2692 | 2693 | ### PostScript 2694 | 2695 | * [Learning PostScript by Doing](https://staff.science.uva.nl/a.j.p.heck/Courses/Mastercourse2005/tutorial.pdf) by *Andre Heck* **[pdf]** 2696 | 2697 | * [Mathematical Ilustrations: A Manual of Geometry and PostScript](https://personal.math.ubc.ca/~cass/graphics/text/www) by *Bill Casselman* 2698 | 2699 | ### Prolog 2700 | 2701 | * [Datalog in Rust](https://github.com/frankmcsherry/blog/blob/master/posts/2025-06-03.md) by *Frank McSherry* 2702 | 2703 | * [Learn Prolog Now!](https://lpn.swi-prolog.org) by *Patrick Blackburn*, *Johan Bos*, *Kristina Striegnitz* 2704 | 2705 | * [The Power of Prolog](https://www.metalevel.at/prolog) by *Markus Triska* 2706 | 2707 | * [Game Programming in Prolog](https://thingspool.net/morsels/list.html) by *Youngjin Kang* 2708 | 2709 | ### Pyret 2710 | 2711 | * [Programming and Programming Languages](https://papl.cs.brown.edu/2020) by *Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz, Kathi Fisler* 2712 | 2713 | * [A Data-Centric Introduction to Computing](https://dcic-world.org/2022-08-28/index.html) by *Kathi Fisler, Shriram Krishnamurthi, Benjamin S. Lerner, Joe Gibbs Politz* 2714 | 2715 | ### Python 2716 | 2717 | * [30 Days Of Python](https://github.com/Asabeneh/30-Days-Of-Python) by *Asabeneh* 2718 | 2719 | * [Architecture Patterns with Python](https://www.cosmicpython.com) by *Harry Percival* and *Bob Gregory* 2720 | 2721 | * [Composing Programs](https://www.composingprograms.com) by *John DeNero* 2722 | 2723 | * [Computational Discovery on Jupyter](https://computational-discovery-on-jupyter.github.io/Computational-Discovery-on-Jupyter) by *Rob Corless* 2724 | 2725 | * [Data Structures and Information Retrieval in Python](https://allendowney.github.io/DSIRP) by *Allen B. Downey* 2726 | 2727 | * [From Python to Numpy](https://www.labri.fr/perso/nrougier/from-python-to-numpy) by *Nicolas P. Rougier* 2728 | 2729 | * [Full Stack Python](https://www.fullstackpython.com) by *Matt Makai* 2730 | 2731 | * [How Python Asyncio Works: Recreating it from Scratch](https://jacobpadilla.com/articles/recreating-asyncio) by *Jacob Padilla* 2732 | 2733 | * [How to Think Like a Computer Scientist: Interactive Edition](https://levjj.github.io/thinkcspy) by *Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers* 2734 | 2735 | * [Introduction to Computer Programming with Python](https://www.aupress.ca/books/oer-202301-introduction-to-computer-programming-with-python) by *Harris Wang* 2736 | 2737 | * [Introduction to Python Programming](https://assets.openstax.org/oscms-prodcms/media/documents/Introduction_to_Python_Programming_-_WEB.pdf) by *Udayan Das*, *Aubrey Lawson*, *Chris Mayfield*, *Narges Norouzi* **[pdf]** 2738 | 2739 | * [Invent With Python](https://inventwithpython.com) by *Al Sweigart* 2740 | * [Audio, Video, and Webcams in Python (Lost Chapter from Automate the Boring Stuff)](https://inventwithpython.com/blog/lost-av-chapter.html) 2741 | * [Automate the Boring Stuff with Python](https://automatetheboringstuff.com) 2742 | * [Beyond the Basic Stuff with Python](https://inventwithpython.com/beyond) 2743 | * [Cracking Codes with Python](https://inventwithpython.com/cracking) 2744 | * [Invent Your Own Computer Games with Python](https://inventwithpython.com/invent4thed) 2745 | * [Making Games with Python & Pygame](https://inventwithpython.com/pygame) 2746 | * [Python Programming Exercises, Gently Explained](https://inventwithpython.com/pythongently) 2747 | * [Scratch 3 Programming Playground](https://inventwithscratch.com/book3) 2748 | * [The Big Book of Small Python Projects](https://inventwithpython.com/bigbookpython) 2749 | * [The Recursive Book of Recursion](https://inventwithpython.com/recursion) 2750 | 2751 | * [Learn Python the Right Way](https://learnpythontherightway.com) 2752 | 2753 | * [NumPy Illustrated: The Visual Guide to NumPy](https://betterprogramming.pub/numpy-illustrated-the-visual-guide-to-numpy-3b1d4976de1d) by *Lev Maximov* 2754 | 2755 | * [Pandas Illustrated: The Definitive Visual Guide to Pandas](https://betterprogramming.pub/pandas-illustrated-the-definitive-visual-guide-to-pandas-c31fa921a43) by *Lev Maximov* 2756 | 2757 | * [Planet Python](https://planetpython.org) 2758 | 2759 | * [Practical Python Programming](https://dabeaz-course.github.io/practical-python/Notes/Contents.html) by *David Beazley* 2760 | 2761 | * [Python & OpenGL for Scientific Visualization](https://www.labri.fr/perso/nrougier/python-opengl) by *Nicolas P. Rougier* 2762 | 2763 | * [Python Asyncio: The Complete Guide](https://superfastpython.com/python-asyncio) by *Jason Brownlee* 2764 | 2765 | * [Python Courses](https://python-course.eu) by *Bernd Klein* 2766 | 2767 | * [Python Data Science Handbook](https://jakevdp.github.io/PythonDataScienceHandbook) by *Jake VanderPlas* 2768 | 2769 | * [Python Design Patterns](https://python-patterns.guide) by *Brandon Rhodes* 2770 | 2771 | * [Python for Data Analysis, 3rd edition](https://wesmckinney.com/book) by *Wes McKinney* 2772 | 2773 | * [Python Programming for Economics and Finance](https://python-programming.quantecon.org) by *Thomas J. Sargent* and *John Stachurski* 2774 | 2775 | * [Real Python](https://realpython.com) - A collection of Python tutorials. 2776 | 2777 | * [Scientific Visualization: Python + Matplotlib](https://github.com/rougier/scientific-visualization-book) by *Nicolas Rougier* 2778 | 2779 | * [Test-Driven Development with Python](http://www.obeythetestinggoat.com/pages/book.html) by *Harry Percival* 2780 | 2781 | * [The Ultimate Guide to Error Handling in Python](https://blog.miguelgrinberg.com/post/the-ultimate-guide-to-error-handling-in-python) by *Miguel Grinberg* 2782 | 2783 | * [Think Python, 2nd Edition](https://greenteapress.com/wp/think-python-2e) by *Allen B. Downey* 2784 | 2785 | * [Think Python, 3rd Edition](https://allendowney.github.io/ThinkPython/index.html) by *Allen B. Downey* 2786 | 2787 | * [Wicked Python trickery - dynamically patch a Python function's source code at runtime](https://ericmjl.github.io/blog/2025/8/23/wicked-python-trickery-dynamically-patch-a-python-functions-source-code-at-runtime) by *Eric J. Ma* 2788 | 2789 | ### R 2790 | 2791 | * [Big Book of R](https://www.bigbookofr.com) by *Oscar Baruffa* 2792 | 2793 | * [Efficient R Programming](https://csgillespie.github.io/efficientR) by *Colin Gillespie* and *Robin Lovelace* 2794 | 2795 | * [R for Data Science (2e)](https://r4ds.hadley.nz) *Hadley Wickham*, *Mine Cetinkaya-Rundel*, *Garrett Grolemund* 2796 | 2797 | ### Regular expressions 2798 | 2799 | * [Implementing Regular Expressions](https://swtch.com/~rsc/regexp) by *Russ Cox* 2800 | 2801 | * [Learn RegEx step by step, from zero to advanced](https://regexlearn.com/) 2802 | 2803 | * [RegexOne](https://regexone.com) 2804 | 2805 | * [Regular-Expressions.info](https://www.regular-expressions.info) by *Jan Goyvaerts* 2806 | 2807 | * [Rex Eats Regular Expressions for Breakfast](https://www.rexegg.com) 2808 | 2809 | ### Ruby 2810 | 2811 | * [Building Games with DragonRuby](https://book.dragonriders.community) by *Brett Chalupa* 2812 | 2813 | * [Ruby Hacking Guide](https://ruby-hacking-guide.github.io) 2814 | 2815 | ### Rust 2816 | 2817 | * [100 Exercises To Learn Rust](https://rust-exercises.com) 2818 | 2819 | * [A Gentle Introduction to Rust](https://stevedonovan.github.io/rust-gentle-intro/readme.html) by *Steve Donovan* 2820 | 2821 | * [Async Rust in Three Parts](https://jacko.io/async_intro.html) by *Jack O'Connor* 2822 | 2823 | * [Asynchronous Programming in Rust](https://rust-lang.github.io/async-book) 2824 | 2825 | * [Beginner's guide to Error Handling in Rust](https://www.sheshbabu.com/posts/rust-error-handling) by *Shesh Babu* 2826 | 2827 | * [C++ to Rust Phrasebook](https://cel.cs.brown.edu/crp) 2828 | 2829 | * [Clear explanation of Rust’s module system](https://www.sheshbabu.com/posts/rust-module-system) by *Shesh Babu* 2830 | 2831 | * [Comprehensive Rust](https://google.github.io/comprehensive-rust) 2832 | 2833 | * [Dependency Injection like Bevy Engine from Scratch](https://promethia-27.github.io/dependency_injection_like_bevy_from_scratch) 2834 | 2835 | * [Effective Rust](https://www.lurklurk.org/effective-rust) by *David Drysdale* 2836 | 2837 | * [Exploring ways to make async Rust easier](https://carllerche.com/2021/06/17/six-ways-to-make-async-rust-easier) by *Carl Lerche* 2838 | 2839 | * [Learning Async Rust With Entirely Too Many Web Servers](https://ibraheem.ca/posts/too-many-web-servers) by *Ibraheem Ahmed* 2840 | 2841 | * [No-Panic Rust: A Nice Technique for Systems Programming](https://blog.reverberate.org/2025/02/03/no-panic-rust.html) by *Josh Haberman* 2842 | 2843 | * [Rust Atomics and Locks: Low-Level Concurrency in Practice](https://marabos.nl/atomics) by *Mara Bos* 2844 | 2845 | * [Rust data structures with circular references](https://eli.thegreenplace.net/2021/rust-data-structures-with-circular-references) by *Eli Bendersky* 2846 | 2847 | * [Rust Language Cheat Sheet](https://cheats.rs) 2848 | 2849 | * [Testing multiple implementations of a trait in Rust](https://eli.thegreenplace.net/2021/testing-multiple-implementations-of-a-trait-in-rust) by *Eli Bendersky* 2850 | 2851 | * [Things you can’t do in Rust (and what to do instead)](https://blog.logrocket.com/what-you-cant-do-in-rust-and-what-to-do-instead) 2852 | 2853 | ### Smalltalk 2854 | 2855 | * [Smalltalk Resources](https://smalltalk.tech.blog/resources) - A list of free smalltalk books. 2856 | 2857 | ### Ya 2858 | 2859 | * [Я ☞ Articles](https://muratkasimov.art/Ya/Articles) by *Murat Kasimov* 2860 | 2861 | ### Zig 2862 | 2863 | * [Learning Zig](https://www.openmymind.net/learning_zig) by *Karl Seguin* 2864 | 2865 | * [Zigbook](https://www.zigbook.net) 2866 | 2867 | ## Retrocomputing 2868 | 2869 | * [A Guide to the Graphics of the Sega Mega Drive / Genesis](https://rasterscroll.com/mdgraphics) 2870 | 2871 | * [BASIC Code](https://basic-code.bearblog.dev) by *Michael Coorlim* 2872 | 2873 | * [Books by Fabien Sanglard](https://fabiensanglard.net/three_books_update/index.html) 2874 | - **Game Engine Black Book: Wolfenstein 3D** 2875 | - **Game Engine Black Book: DOOM** 2876 | - **The Book of CP-System** 2877 | 2878 | * [Easy 6502](https://skilldrick.github.io/easy6502) by *Nick Morgan* 2879 | 2880 | * [Extra Instructions Of The 65XX Series CPU](http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes) by *Adam Vardy* 2881 | 2882 | * [How PlayStation Graphics & Visual Artefacts Work](https://pikuma.com/blog/how-to-make-ps1-graphics) by *Gustavo Pezzi* 2883 | 2884 | * [How pseudo-3d racing games work](http://www.extentofthejam.com/pseudo) by *Louis Gorenfeld* 2885 | 2886 | * [jsgroth's blog](https://jsgroth.dev/blog) 2887 | 2888 | * [Learn Multiplatform Assembly Programming](https://www.chibiakumas.com) by *ChibiAkumas* 2889 | 2890 | * [Mark Moxon's Software Archaeology](https://www.bbcelite.com) - Fully documented source code for Elite, Revs, Lander, Aviator and more 2891 | 2892 | * [MarkeyJester’s Motorola 68000 Beginner’s Tutorial](https://mrjester.hapisan.com/04_MC68) 2893 | 2894 | * [Michael Abrash’s Graphics Programming Black Book, Special Edition](https://www.jagregory.com/abrash-black-book) by *Michael Abrash* 2895 | 2896 | * [NeHe OpenGL Tutorials](https://nehe.gamedev.net) 2897 | 2898 | * [Patai Gergely's Website](https://cobbpg.github.io) 2899 | * [Porting Stunt Car Racer to the Commodore Plus/4](https://cobbpg.github.io/articles/stunt-car-racer-plus4-port.html) 2900 | * [Porting Stunt Car Racer to the Apple II](https://cobbpg.github.io/articles/stunt-car-racer-apple2-port.html) 2901 | * [Pushing the Boundaries of C64 Graphics with NUFLIX](https://cobbpg.github.io/articles/nuflix.html) 2902 | 2903 | * [Portals and Quake](https://30fps.net/pages/pvs-portals-and-quake) by *Pekka Väänänen* 2904 | 2905 | * [Programming specs for the GBA and NDS hardware](https://problemkaputt.de/gbatek.htm) by *Martin Korth* 2906 | 2907 | * [Retro Game Coders](https://retrogamecoders.com) 2908 | 2909 | * [The Annotated "Programming the Nintendo GBA : The Unofficial Guide](https://www.coranac.com/documents/taptngba) by *Jasper Vijn* 2910 | 2911 | * [Usborne 1980s Computer Books](https://usborne.com/row/books/computer-and-coding-books) 2912 | 2913 | ### Adevent of code on retro machines 2914 | 2915 | * [Advent of Code 2022 on a MikroMikko 4TT m326](http://clb.confined.space/aoc2022) by *Jukka Jylänki* 2916 | 2917 | * [Advent Of Code 2023 on a Commodore 64](http://clb.confined.space/aoc2023) by *Jukka Jylänki* 2918 | 2919 | ### Apple II 2920 | 2921 | * [Apple II Documentation Project](http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project) 2922 | 2923 | * [Apple II graphics: More than you wanted to know](https://nicole.express/2024/phasing-in-and-out-of-existence.html) 2924 | 2925 | * [Colin Leroy-Mira’s Website](https://www.colino.net/wordpress/en/welcome) 2926 | 2927 | * [Neil Parker's Apple II page](https://llx.com/Neil/a2/index.html) 2928 | 2929 | ### Commodore 64 2930 | 2931 | * [An Afterlife User's Guide to the C64](http://www.c64os.com/c64os/afterlifeguide) by *Gregorio Naçu* 2932 | 2933 | * [C64 OS Programmer's Guide](https://www.c64os.com/c64os/programmersguide) by *Gregorio Naçu* 2934 | 2935 | * [Commodore 64 Guides](https://pickledlight.blogspot.com/p/commodore-64-guides.html) 2936 | 2937 | * [Commodore Bookmarks](https://commodore.bookmark.computer) - Bookmarks for the Commodore 64, 128, Plus4, C16, VIC20 & PET Community. 2938 | 2939 | * [The Lost Ways of Programming: Commodore 64 BASIC](http://tomasp.net/commodore64) by *Tomas Petricek* 2940 | 2941 | ### CP/M 2942 | 2943 | * [A gentle introduction to CP/M](https://eerielinux.wordpress.com/2025/08/28/a-gentle-introduction-to-cp-m) 2944 | 2945 | * **A journey into the 8-Bit microcomputing past: Exploring the CP/M operating system** 2946 | * [Part 1](https://eerielinux.wordpress.com/2024/12/20/a-journey-into-the-8-bit-microcomputing-past-exploring-the-cp-m-operating-system-part-1) 2947 | * [Part 2](https://eerielinux.wordpress.com/2024/12/30/a-journey-into-the-8-bit-microcomputing-past-exploring-the-cp-m-operating-system-part-2) 2948 | 2949 | ### DOS 2950 | 2951 | * [256-Color VGA Programming in C](http://www.brackeen.com/vga/index.html) by *David Brackeen* 2952 | 2953 | * [Beyond the 1 MB barrier in DOS](https://blogsystem5.substack.com/p/beyond-the-1-mb-barrier-in-dos) by *Julio Merino* 2954 | 2955 | * [From 0 to 1 MB in DOS](https://blogsystem5.substack.com/p/from-0-to-1-mb-in-dos) by *Julio Merino* 2956 | 2957 | * [How Cosmo’s Cosmic Adventure DOS game works?](https://cosmodoc.org) 2958 | 2959 | * [MS-DOS development resources](https://github.com/SuperIlu/DOSDevelResources) 2960 | 2961 | ### Game Boy 2962 | 2963 | * [Game Boy Development community](https://gbdev.io) 2964 | 2965 | * [Game Boy Advanced programming tutorial](https://www.coranac.com/tonc/text) by *Jasper Vijn* 2966 | 2967 | * [Game Boy Advanced Development Resources](https://gbadev.org) 2968 | 2969 | * [More than you wanted to know about how Game Boy cartridges work](https://abc.decontextualize.com/more-than-you-wanted-to-know) by *Allison Parrish* 2970 | 2971 | ### Mega 65 2972 | 2973 | * [MEGA65 Documentation](https://files.mega65.org/manuals-upload) 2974 | 2975 | * [MEGA65 Welcome Guide](https://dansanderson.com/mega65/welcome/index.html) by *Dan Sanderson* 2976 | 2977 | ### NES 2978 | 2979 | * [Famicom Party: Making NES Games in Assembly](https://famicom.party/book) by *Kevin Zurawel* 2980 | 2981 | * [NesDev.org](https://www.nesdev.org) - A community of homebrew game developers and hardware researchers for the Nintendo Entertainment System (NES) and other retro consoles. 2982 | 2983 | ### ZX Spectrum and Z80 CPU 2984 | 2985 | * [First Steps in Z80 Assembly Language](http://ped.7gods.org/z80.pdf) by *Darryl Sloan* **[pdf]** 2986 | 2987 | * [How to Write ZX Spectrum Games](https://spectrumcomputing.co.uk/zxdb/sinclair/entries/2001501/HowToWriteSpectrumGames%28v1.0%29.pdf) by *Jonathan Cauldwell* **[pdf]** 2988 | 2989 | * [Sinclair ZX Spectrum BASIC programming](http://zxnext.narod.ru/manuals/Basic_Programming.pdf) by *Steven Vicker* **[pdf]** 2990 | 2991 | * [Z80 User's Manual](https://zany80.github.io/documentation/Z80/UserManual.html) 2992 | 2993 | * [ZX Spectrum Next: Assembly Developer Guide](https://github.com/tomaz/zx-next-dev-guide) by *Tomaz Kragelj* 2994 | 2995 | #### [ZX Online Articles](https://zxonline.net/category/development) 2996 | 2997 | * [Angle Calculation on Z80: Doing the Impossible at 3.5 MHz](https://zxonline.net/angle-calculation-on-z80-doing-the-impossible-at-3-5-mhz) 2998 | 2999 | * [ZX Spectrum Graphics Magic: The Basics Every Spectrum Fan Should Know](https://zxonline.net/zx-spectrum-graphics-magic-the-basics-every-spectrum-fan-should-know) 3000 | 3001 | ## Reverse engineering 3002 | 3003 | * [Applied Reverse Engineering Series](https://revers.engineering/applied-reverse-engineering-series) by *Daax Rynd, Aidan Khoury and Nick Peterson* 3004 | 3005 | * [Reverse Engineering for Beginners](https://beginners.re) by *Dennis Yurichev* 3006 | 3007 | * [Reverse Engineering For Everyone](https://0xinfection.github.io/reversing) by *Kevin Thomas* 3008 | 3009 | * [Reversing for dummies - x86 assembly and C code](https://0x44.cc/reversing/2021/07/21/reversing-x86-and-c-code-for-beginners.html) by *Sami Alaoui* 3010 | 3011 | * [Linux Reverse Engineering CTFs for Beginners](https://osandamalith.com/2019/02/11/linux-reverse-engineering-ctfs-for-beginners) 3012 | 3013 | ## Robotics 3014 | 3015 | * [Introduction to Autonomous Robots](https://introduction-to-autonomous-robots.github.io) by *Nikolaus Correll, Bradley Hayes, Christoffer Heckman, and Alessandro Roncone* 3016 | 3017 | * [Mathematics for Robotics](https://github.com/michiganrobotics/rob501) by *Jessy Grizzle* 3018 | 3019 | * [Modern Robotics: Mechanics, Planning, and Control](http://hades.mech.northwestern.edu/index.php/Modern_Robotics) by *Kevin M. Lynch* and *Frank C. Park* 3020 | 3021 | * [Robotics & ROS 2 Essentials](https://github.com/henki-robotics/robotics_essentials_ros2) 3022 | 3023 | * [The open online robotics education resource](https://robotacademy.net.au) 3024 | 3025 | * [Underactuated Robotics](https://underactuated.mit.edu/) by *Russ Tedrake* 3026 | 3027 | ## System programming 3028 | 3029 | * [io_uring basics: Writing a file to disk](https://notes.eatonphil.com/2023-10-19-write-file-to-disk-with-io_uring.html) by *Phil Eaton* 3030 | 3031 | * [io_uring by example](https://unixism.net/2020/04/io-uring-by-example-part-1-introduction) by *Shuveb Hussain* 3032 | 3033 | * [Lord of the io_uring](https://unixism.net/loti/index.html) by *Shuveb Hussain* 3034 | 3035 | ## Technical Writing 3036 | 3037 | * [How to Write a Git Commit Message](https://cbea.ms/git-commit) 3038 | 3039 | * [Refactoring English: Effective Writing for Software Developers](https://refactoringenglish.com) by *Michael Lynch* 3040 | 3041 | * [Software Technical Writing: A Guidebook](https://jamesg.blog/book.pdf) by *James* **[pdf]** 3042 | 3043 | * [Technical Writing Posts](https://jamesg.blog/technical-writing) by *James* 3044 | 3045 | ## Testing 3046 | 3047 | * [How to Test](https://matklad.github.io/2021/05/31/how-to-test.html) by *Alex Kladov* 3048 | 3049 | * [The Fuzzing Book](https://www.fuzzingbook.org) by *Andreas Zeller*, *Rahul Gopinath*, *Marcel Böhme*, *Gordon Fraser*, and *Christian Holler* 3050 | 3051 | ## Text editors 3052 | 3053 | * [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo) 3054 | 3055 | * [Design and Implementation of a Win32 Text Editor](https://www.catch22.net/tuts/neatpad) by *James Brown* 3056 | 3057 | * [Text Buffer Reimplementation](https://code.visualstudio.com/blogs/2018/03/23/text-buffer-reimplementation) by *Peng Lyu* 3058 | 3059 | * [Text Editor: Data Structures](https://www.averylaird.com/programming/the%20text%20editor/2017/09/30/the-piece-table.html) by *Avery Laird* 3060 | 3061 | ### Emacs 3062 | 3063 | * [A Beginner's Guide to Extending Emacs](https://blog.tjll.net/a-beginners-guide-to-extending-emacs) by *Tyler Langlois* 3064 | 3065 | * **Emacs Config From Scratch** by *Arne Bahlo* 3066 | * [Part 1: Foundations](https://arne.me/articles/emacs-from-scratch-part-one-foundations) 3067 | * [Part 2: Projects and Keybindings](https://arne.me/articles/emacs-from-scratch-part-two) 3068 | * [Part 3: LSP & Tree-sitter](https://arne.me/blog/emacs-config-from-scratch-part-three) 3069 | 3070 | * [System Crafters Emacs Guides](https://systemcrafters.net/guides) 3071 | 3072 | * [Emacs Lisp Elements](https://protesilaos.com/emacs/emacs-lisp-elements) by *Protesilaos* 3073 | 3074 | * **Emacs Mini Manual** by *Tu Do* 3075 | * [Part 1: The Basics](https://tuhdo.github.io/emacs-tutor.html) 3076 | * [Part 2: Lisp Primer - Why Parentheses Matter](https://tuhdo.github.io/emacs-tutor2.html) 3077 | * [Part 3: Customizing and Extending Emacs](https://tuhdo.github.io/emacs-tutor3.html) 3078 | * [C/C++ Development Environment for Emacs](https://tuhdo.github.io/c-ide.html) 3079 | 3080 | * [How to learn Emacs](https://david.rothlis.net/emacs/howtolearn.html) by *David Röthlisberger* 3081 | 3082 | * [How I am deeply integrating emacs](https://joshblais.com/blog/how-i-am-deeply-integrating-emacs) by *Joshua Blais* 3083 | 3084 | * [Org Mode](https://orgmode.org) 3085 | 3086 | * [Use GNU Emacs: The Plain Text Computing Environment](https://www2.lib.uchicago.edu/keith/emacs) by *Keith Waclena* 3087 | 3088 | ### Vim 3089 | 3090 | * [Interactive Vim Tutorial](https://www.openvim.com) by *Henrik Huttunen* 3091 | 3092 | * [Learn Vim (the Smart Way)](https://github.com/iggredible/Learn-Vim) by *Igor Irianto* 3093 | 3094 | * [The Vi/Ex Editor](https://www.ele.uri.edu/faculty/vetter/Other-stuff/vi/009-index.html) by *Walter Alan Zintz* 3095 | 3096 | * [Vim from the ground up](https://thevaluable.dev/vim-commands-beginner) by *Matthieu Cneude* 3097 | 3098 | * [Vim Reference Guide](https://learnbyexample.github.io/vim_reference) by *Sundeep Agarwal* 3099 | 3100 | ## Unicode 3101 | 3102 | * [Programming with Unicode](https://unicodebook.readthedocs.io) by *Victor Stinner* 3103 | 3104 | * [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses) by *Joel Spolsky* 3105 | 3106 | * [The Absolute Minimum Every Software Developer Must Know About Unicode in 2023](https://tonsky.me/blog/unicode) by *Nikita Prokopov* 3107 | 3108 | * [Unicode programming, with examples](https://begriffs.com/posts/2019-05-23-unicode-icu.html) by *Joe Nelson* 3109 | 3110 | ## Version control tools 3111 | 3112 | * [Git from the Bottom Up](https://jwiegley.github.io/git-from-the-bottom-up) by *John Wiegley* 3113 | 3114 | * [Learn the workings of Git, not just the commands](https://developer.ibm.com/tutorials/d-learn-workings-git) by *Andre Fachat* 3115 | 3116 | ## Web programming 3117 | 3118 | * [A book about using Node.js](https://book.mixu.net/node) by *Mikito Takada* 3119 | 3120 | * [A masochist’s guide to web development](https://sebastiano.tronto.net/blog/2025-06-06-webdev) by *Sebastiano Tronto* 3121 | 3122 | * [FastCGI — The Forgotten Treasure](http://www.nongnu.org/fastcgi) by *Peter Simons and Ralph Babel* 3123 | 3124 | * [Full Stack open](https://fullstackopen.com/en) - Deep Dive Into Modern Web Development. 3125 | 3126 | * [Implementing React From Scratch](https://www.rob.directory/blog/react-from-scratch#conditional-elements) by *Robby Pruzan* 3127 | 3128 | * [Intro to Web Dev](https://btholt.github.io/intro-to-web-dev-v2) 3129 | 3130 | * [Let's build a browser engine!](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) by *Matt Brubeck* 3131 | 3132 | * **Let’s write a search engine** by *Amit Patel* 3133 | * [Part 1](https://www.redblobgames.com/blog/2025-08-29-lets-write-a-search-engine-1) 3134 | * [Part 2](https://www.redblobgames.com/blog/2025-08-30-lets-write-a-search-engine-2) 3135 | 3136 | * [Mozilla Developers Network](https://developer.mozilla.org) - Resources for Developers, 3137 | by Developers. Documenting CSS, HTML, and JavaScript, since 2005. 3138 | 3139 | * [Ruby on Rails Guides](https://guides.rubyonrails.org) 3140 | 3141 | * [Single page apps in depth](https://singlepageappbook.com/) by *Mikito Takada* 3142 | 3143 | * [Tania Rascia'a Web Development Deep Dives](https://www.taniarascia.com/topics) 3144 | * [A Complete Guide to CSS Concepts and Fundamentals](https://www.taniarascia.com/overview-of-css-concepts) 3145 | * [An Introduction to GraphQL](https://www.taniarascia.com/introduction-to-graphql) 3146 | * [Design for Developers: Specific Steps to Improve Your Website Design](https://www.taniarascia.com/design-for-developers) 3147 | * [Everything I Know as a Software Developer Without a Degree](https://www.taniarascia.com/everything-i-know-as-a-software-developer-without-a-degree) 3148 | * [How to Set up a Mac for Development](https://www.taniarascia.com/setting-up-a-brand-new-mac-for-development) 3149 | * [How to Set Up webpack 5 From Scratch](https://www.taniarascia.com/how-to-use-webpack) 3150 | * [How to Structure and Organize a React Application](https://www.taniarascia.com/react-architecture-directory-structure) 3151 | * [How to Use React, the JavaScript Framework](https://www.taniarascia.com/getting-started-with-react) 3152 | * [How to Use Redux and React](https://www.taniarascia.com/redux-react-guide) 3153 | * [How to Use Vue, the JavaScript Framework](https://www.taniarascia.com/getting-started-with-vue) 3154 | * [Setting Up Virtual Hosts](https://www.taniarascia.com/setting-up-virtual-hosts) 3155 | * [The Event Loop, Callbacks, Promises, and Async/Await in JavaScript](https://www.taniarascia.com/asynchronous-javascript-event-loop-callbacks-promises-async-await) 3156 | 3157 | * [The Copenhagen Book](https://thecopenhagenbook.com) - A general guideline on implementing auth in web applications. 3158 | 3159 | * [The Flask Mega-Tutorial](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) by *Miguel Grinberg* 3160 | 3161 | * [The Odin Project](https://www.theodinproject.com) - An open-source curriculum for learning full-stack web development. 3162 | 3163 | * [Web Browser Engineering](https://browser.engineering) by *Pavel Panchekha* and *Chris Harrelson* 3164 | 3165 | * [WebDev](https://web.dev) - Guidance to build modern web experiences that work on any browser. 3166 | 3167 | * [What happens when you type google.com into your browser's address box and press enter?](https://github.com/alex/what-happens-when) by *Alex Gaynor* 3168 | 3169 | ### CSS 3170 | 3171 | * [A Complete Guide to CSS Grid](https://css-tricks.com/snippets/css/complete-guide-grid) by *Chris House* 3172 | 3173 | * [CSS Tricks](https://css-tricks.com) 3174 | 3175 | * [Learn CSS Layout the pedantic way](https://book.mixu.net/css) by *Mikito Takada* 3176 | 3177 | * [Modern CSS Solutions for Old CSS Problems](https://moderncss.dev) by *Stephanie Eckles* 3178 | 3179 | * [You no longer need JavaScript](https://lyra.horse/blog/2025/08/you-dont-need-js) by *Lyra Rebane* 3180 | 3181 | * [What You Need to Know about Modern CSS (2025 Edition)](https://frontendmasters.com/blog/what-you-need-to-know-about-modern-css-2025-edition) by *Chris Coyier* 3182 | 3183 | ### Django 3184 | 3185 | * [Learn Django](https://learndjango.com) by *Will Vincent* 3186 | 3187 | * [Modern JavaScript for Django Developers](https://www.saaspegasus.com/guides/modern-javascript-for-django-developers) 3188 | 3189 | ### HTML 3190 | 3191 | * [HTML for People](https://htmlforpeople.com) by *Blake Watson* 3192 | 3193 | * [Learn HTML](https://learn-html.org) 3194 | 3195 | ## Personal Websites and Blogs 3196 | 3197 | ### AI 3198 | 3199 | * [Ahead of AI](https://magazine.sebastianraschka.com) by *Sebastian Raschka* 3200 | 3201 | * [Aleksa Gordić blog](https://www.aleksagordic.com) 3202 | 3203 | * [Chizoba Obasi's Blog](https://chizkidd.github.io) 3204 | 3205 | * [Hugging Face Blog](https://huggingface.co/blog) 3206 | 3207 | * [Jake Tae's Blog](https://jaketae.github.io) 3208 | 3209 | * [Randorithms](https://randorithms.com) by *Ben Coleman* 3210 | 3211 | ### C and C++ 3212 | 3213 | * [Alf on programming (mostly C++)](https://alfps.wordpress.com) 3214 | 3215 | * [Andrzej's C++ Blog](https://akrzemi1.wordpress.com) by *Andrzej Krzemieński* 3216 | 3217 | * [Asymmetric Transfer](https://lewissbaker.github.io) *Lewis Baker* 3218 | 3219 | * [Bannalia: trivial notes on themes diverse](https://bannalia.blogspot.com) by *Joaquín M López Muñoz* 3220 | 3221 | * [Barry's C++ Blog](https://brevzin.github.io) by *Barry Revzin* 3222 | 3223 | * [Borislav Stanimirov's Website](https://ibob.bg) 3224 | 3225 | * [Braden Ganetsky's Website](https://ganets.ky) 3226 | 3227 | * [C++ Metaprogramming](https://odinthenerd.blogspot.com) by *Odin Holmes* 3228 | 3229 | * [C++ on a Friday](https://blog.knatten.org) by *Anders Schau Knatten* 3230 | 3231 | * [C++ Stories](https://www.cppstories.com) by *Bartłomiej Filipek* 3232 | 3233 | * [C++ Truths](https://cpptruths.blogspot.com) 3234 | 3235 | * [Crascit's Blog](https://crascit.com) by *Craig Scott* 3236 | 3237 | * [Cristian Adam's Blog](https://cristianadam.eu) 3238 | 3239 | * [Eric Niebler's Blog](https://ericniebler.com) 3240 | 3241 | * [Fluent C++](https://www.fluentcpp.com) by *Jonathan Boccara* 3242 | 3243 | * [foonathan::​blog()](https://www.foonathan.net) by *Jonathan Müller* 3244 | 3245 | * [Functional C++](https://functionalcpp.wordpress.com) 3246 | 3247 | * [Just Software Solutions' Blog](https://www.justsoftwaresolutions.co.uk/blog) by *Anthony Williams* 3248 | 3249 | * [Lu's blog](https://uvdn7.github.io) by *Lu Pan* 3250 | 3251 | * [Manu Sanchez's Blog](https://manu343726.github.io) 3252 | 3253 | * [Marshall's C++ Musings](https://cplusplusmusings.wordpress.com) 3254 | 3255 | * [Mathieu Ropert's Blog](https://mropert.github.io) 3256 | 3257 | * [Modernes C++](https://www.modernescpp.com) by *Rainer Grimm* 3258 | 3259 | * [Molecular Musings](https://blog.molecular-matters.com) by *Stefan Reinalter* 3260 | 3261 | * [Moody Camel](https://moodycamel.com) by *Cameron Desrochers* 3262 | 3263 | * [Nibble Stew's Blog](https://nibblestew.blogspot.com) 3264 | 3265 | * [null program](https://nullprogram.com/) by *Chris Wellons* 3266 | 3267 | * [Peter Dimov'a Blog](https://pdimov.github.io/blog) 3268 | 3269 | * [Preshing on Programming](https://preshing.com) by *Jeff Preshing* 3270 | 3271 | * [Programming Nonsense](https://tartanllama.xyz) by *Sy Brand* 3272 | 3273 | * [ReachableCode](https://www.reachablecode.com) by *Gianluca Delfino * 3274 | 3275 | * [Sandor Dargo's Blog](https://www.sandordargo.com) 3276 | 3277 | * [Simplify C++](https://arne-mertz.de) by *Arne Mertz* 3278 | 3279 | * [The C++ way](https://thecppway.com) by *Andrzej Krzemieński* 3280 | 3281 | * [The Old New Thing: Practical development throughout the evolution of Windows](https://devblogs.microsoft.com/oldnewthing) by *Raymond Chen* 3282 | 3283 | * [The Pasture](https://thephd.dev) by *JeanHeyd Meneide* 3284 | 3285 | * [The Sparkelling Bedangler](https://morwenn.github.io) 3286 | 3287 | * [Thinking Asynchronously in C++](http://blog.think-async.com) by * 3288 | Christopher Kohlhoff* 3289 | 3290 | * [Tomasz Wisniewski's Blog](https://twdev.blog) 3291 | 3292 | * [vector-of-bool](https://vector-of-bool.github.io) 3293 | 3294 | * [Victor Zverovich's Blog](https://vitaut.net) 3295 | 3296 | * [Video Cortex](http://videocortex.io) by *Adi Shavit* 3297 | 3298 | * [Vishal Chovatiya's Blog](https://vishalchovatiya.com) 3299 | 3300 | * [Vittorio Romeo's Blog](https://vittorioromeo.com) 3301 | 3302 | * [Vorbrodt's C++ Blog](https://vorbrodt.blog) by *Martin Vorbrodt* 3303 | 3304 | ### Game and Graphics Programming 3305 | 3306 | * [30fps.net: Computer Graphics & Programming with Pekka Väänänen](https://30fps.net) 3307 | 3308 | * [A small freedom area](https://blog.pkh.me) by *Clément Bœsch* 3309 | 3310 | * [Adam Sawicki's Blog](https://asawicki.info) 3311 | 3312 | * [Alan Zucconi's Website](https://www.alanzucconi.com) - Game Development, Shader Coding & Artificial Intelligence. 3313 | 3314 | * [Alexandru Ene's blog](https://alexene.dev) 3315 | 3316 | * [Anton Schreiner's Blog](https://aschrein.github.io) 3317 | 3318 | * [Aras Pranckevičius's Website](https://aras-p.info) 3319 | 3320 | * [Bits, pixels, cycles and more](https://zeux.io) by *Arseny Kapoulkine* 3321 | 3322 | * [Bumbershoot Software Blog](https://bumbershootsoft.wordpress.com) by *Michael Martin* 3323 | 3324 | * [c0de517e's weblore](https://www.c0de517e.com) by *Angelo Pesce* 3325 | 3326 | * [Chema Guerra's Blog](https://brashandplucky.com) 3327 | 3328 | * [Cyanilux Game Dev Blog & Tutorials](https://www.cyanilux.com) 3329 | 3330 | * [DirectX Developer Blog](https://devblogs.microsoft.com/directx) 3331 | 3332 | * [Eric Arnebäck's Blog](https://erkaman.github.io) 3333 | 3334 | * [Eurographics Digital Library](https://diglib.eg.org) 3335 | 3336 | * [Evolve Benchmark](https://www.evolvebenchmark.com/blog) 3337 | 3338 | * [Fabien Sanglard's Website](https://fabiensanglard.net) 3339 | 3340 | * [Forward Scattering](https://www.forwardscattering.org) by *Nicholas Chapman* 3341 | 3342 | * [FrostKiwi's Secrets](https://blog.frost.kiwi) by *Wladislav Artsimovich* 3343 | 3344 | * [Frozen Fractal](https://frozenfractal.com) by *Thomas ten Cate* 3345 | 3346 | * [Graphics Programming weekly](https://www.jendrikillner.com/tags/weekly) by *Jendrik Illner* 3347 | 3348 | * [Ignacio Castaño's Blog](https://www.ludicon.com/castano/blog) 3349 | 3350 | * [imad's website](https://imadr.me) 3351 | 3352 | * [Interplay of Light](https://interplayoflight.wordpress.com) by *Kostas Anagnostou* 3353 | 3354 | * [Irradiance Blog](https://irradiance.ca) by *Pablo Zurita* 3355 | 3356 | * [Jacco Bikker's Blog](https://jacco.ompf2.com) 3357 | 3358 | * [Jason Mcghee's Blog](https://jason.today) 3359 | 3360 | * [JMS55's Blog](https://jms55.github.io) 3361 | 3362 | * [John Novak's Website](https://www.johnnovak.net) 3363 | 3364 | * [lisyarus blog](https://lisyarus.github.io) by *Nikita Lisitsa* 3365 | 3366 | * [Martin Fuller's Graphics Ramblings](https://martinfullerblog.wordpress.com) 3367 | 3368 | * [Maister's Graphics Adventures](https://themaister.net/blog) by *Hans-Kristian Arntzen* 3369 | 3370 | * [Matt Pharr’s blog](https://pharr.org/matt/blog) 3371 | 3372 | * [Max Slater's Blog: Computer Graphics, Programming, and Math](https://thenumb.at) 3373 | 3374 | * [Maxime Heckel's Blog](https://blog.maximeheckel.com) 3375 | 3376 | * [Moments in Graphics](https://momentsingraphics.de) by *Christoph Peters* 3377 | 3378 | * [Nikolaos Papadopoulos' Blog](https://www.4rknova.com) 3379 | 3380 | * [Of Shaders & Triangles](https://blog.42yeah.is) by *Hao Joe* 3381 | 3382 | * [Peter Strahle's Blog](https://peterstrahle.dev/blog.html) 3383 | 3384 | * [Pikuma's Blog](https://pikuma.com) by *Gustavo Pezzi* 3385 | 3386 | * [Randy Gaul's Game Programming Blog](https://randygaul.github.io) 3387 | 3388 | * [RayLib Help](https://raylibhelp.wuaze.com) 3389 | 3390 | * [Red Blob Games](https://www.redblobgames.com) - Interactive visual explanations of math and algorithms, using motivating examples from computer games by *Amit Patel* 3391 | 3392 | * [Rendering Dreams](https://blog.thomaspoulet.fr) by *Thomas Poulet* 3393 | 3394 | * [Rendering Engine Architecture Conference](https://enginearchitecture.org) - A conference about the craft of real-time rendering systems. 3395 | 3396 | * [Rubén Osorio's Blog](https://osor.io) 3397 | 3398 | * [Ryan Kaplan's Blog](https://www.rykap.com) 3399 | 3400 | * [Self Shadow](https://blog.selfshadow.com) 3401 | 3402 | * [Stephen Sherratt's Blog](https://www.gridbugs.org) 3403 | 3404 | * [The blog at the bottom of the sea](https://blog.demofox.org) by *Alan Wolfe* 3405 | 3406 | * [The Brain Dump](https://floooh.github.io) by *Andre Weissflog* 3407 | 3408 | * [The Code Corsair](https://www.elopezr.com) by *Emilio López* 3409 | 3410 | * [The Danger Zone](https://therealmjp.github.io) by *Matt Pettineo* 3411 | 3412 | * [The Journal of Computer Graphics Techniques](https://jcgt.org) 3413 | 3414 | * [The ryg blog](https://fgiesen.wordpress.com) by *Fabian Giesen* 3415 | 3416 | * [wassimulato](https://wassimulator.com) by *Wassim Alhajomar* 3417 | 3418 | * [hexaquo](https://hexaquo.at) by *Karl Bittner* 3419 | 3420 | * [Zero Radiance](https://zero-radiance.github.io/post) by *Evgenii Golubev* 3421 | 3422 | ### Hardware Blogs 3423 | 3424 | * [Just another electronics blog](https://justanotherelectronicsblog.com) 3425 | 3426 | * [Ken Shirriff's blog](https://www.righto.com) 3427 | 3428 | ### Math and Physics 3429 | 3430 | * [3Blue1Brown](https://www.3blue1brown.com) by *Grant Sanderson* 3431 | 3432 | * [Almost Sure: A Random Mathematical Blog](https://almostsuremath.com) 3433 | * [Stochastic Calculus](https://almostsuremath.com/stochastic-calculus) 3434 | * [Probability Theory](https://almostsuremath.com/probability-theory) 3435 | * [Absolutely Sure](https://almostsuremath.com/absolutely-sure) 3436 | 3437 | * [Ben Brubaker's Blog](https://benbrubaker.com/blog) 3438 | 3439 | * [Better Explained](https://betterexplained.com) 3440 | 3441 | * [Galileo Unbound Blog](https://galileo-unbound.blog) by *Prof. David D. Nolte* 3442 | 3443 | * [Ji-Ha's Blog](https://jiha-kim.github.io) 3444 | 3445 | * [John D. Cook's Blog](https://www.johndcook.com/blog) 3446 | 3447 | * [Machine Logic](https://lawrencecpaulson.github.io) by *Lawrence C. Paulson* 3448 | 3449 | * [Math3ma](https://www.math3ma.com/) by *Tai-Danae Bradley* 3450 | 3451 | * [Mathematical Enchantment](https://mathenchant.wordpress.com) by *James Propp* 3452 | 3453 | * [Oran Looney's Blog](https://www.oranlooney.com) 3454 | 3455 | ### Mixed Programming 3456 | 3457 | * [0pfs](https://0fps.net) by *Mikola Lysenko* 3458 | 3459 | * [A Random Walk Through Geek-Space](https://www.sebastiansylvan.com) by *Sebastian Sylvan* 3460 | 3461 | * [Aaro Luomanen's Blog](https://aarol.dev) 3462 | 3463 | * [Alberto Ventafridda's Blog](https://halb.it) 3464 | 3465 | * [Amanzhol Salykov's Blog](https://salykova.github.io) 3466 | 3467 | * [Amit's Thoughts](https://amitp.blogspot.com) by *Amit Patel* 3468 | 3469 | * [Andreas Herrmann's Blog](https://aherrmann.github.io) 3470 | 3471 | * [Andrew Gallant's Blog](https://burntsushi.net) 3472 | 3473 | * [Andrew Healey's Blog](https://healeycodes.com) 3474 | 3475 | * [Andrey Listopadov's Blog](https://andreyor.st) 3476 | 3477 | * [Anton Zhiyanov's Blog](https://antonz.org) 3478 | 3479 | * [Anubhav Nain's Blog](https://eagledot.xyz) 3480 | 3481 | * [Arjun Sreedharan's Blog](https://arjunsreedharan.org) 3482 | 3483 | * [Artem Krylysov's Blog](https://artem.krylysov.com) 3484 | 3485 | * [Austin Z. Henley's Blog](https://austinhenley.com/blog.html) 3486 | 3487 | * [Bartosz Milewski's Programming Cafe](https://bartoszmilewski.com) 3488 | 3489 | * [Beej's Home Page](https://beej.us) 3490 | 3491 | * [Bradley Chatha's D Blog](https://bradley.chatha.dev/blog) 3492 | 3493 | * [Chris Loy's Blog](https://chrisloy.dev) 3494 | 3495 | * [Chris Penner's Blog](https://chrispenner.ca) 3496 | 3497 | * [Chris Warbo's Blog](http://www.chriswarbo.net/blog) 3498 | 3499 | * [Chuniversiteit](https://chuniversiteit.nl/archive) by *Chun Fei Lung* 3500 | 3501 | * [Considerations on Codecrafting](https://blog.polybdenum.com) 3502 | 3503 | * [Dan Hollick's Blog](https://typefully.com/DanHollick) 3504 | 3505 | * [Daniel Fedorin's Blog](https://danilafe.com) 3506 | 3507 | * [Daniel Hooper's Blog](https://danielchasehooper.com) 3508 | 3509 | * [Daniel Lemire's Blog](https://lemire.me) 3510 | 3511 | * [Dayvi Schuster's Blog](https://dayvster.com) 3512 | 3513 | * [Digital Grove](https://www.rfleury.com) by *Ryan Fleury* 3514 | 3515 | * [Dissecting the Code](https://sergeyteplyakov.github.io/Blog) by *Sergey Teplyakov* 3516 | 3517 | * [Edoardo Putti's Blog](https://edoput.it) 3518 | 3519 | * [Educated Guesswork](https://educatedguesswork.org) by *Eric Rescorla* 3520 | 3521 | * [Eli Bendersky's website](https://eli.thegreenplace.net) 3522 | 3523 | * [Entropic Thoughts](https://entropicthoughts.com) by *Christoffer Stjernlöf* 3524 | 3525 | * [Evan Ovadia's Blog](https://verdagon.dev) 3526 | 3527 | * [Fernando Borretti's Website](https://borretti.me) 3528 | 3529 | * [Francesco Mazzoli's Blog](https://mazzo.li/archive.html) 3530 | 3531 | * [Games by Mason](https://gamesbymason.com/blog) 3532 | 3533 | * [Gerneral Protection Fault](https://gpfault.net) 3534 | 3535 | * [Giles' blog](https://www.gilesthomas.com) by *Giles Thomas* 3536 | 3537 | * [glfmn.io](https://glfmn.io) 3538 | 3539 | * [Interjected Future](https://interjectedfuture.com) by *Wil Chung* 3540 | 3541 | * [IT Hare on Soft.ware](http://ithare.com) by *Sergey Ignatchenko* 3542 | 3543 | * [James Oswald's Blog](https://jamesoswald.dev/posts) 3544 | 3545 | * [Jan Wedekind's Blog](https://www.wedesoft.de) 3546 | 3547 | * [Jamie Brandon's Blog](https://www.scattered-thoughts.net) 3548 | 3549 | * [Jari Komppa's Website](https://solhsa.com) 3550 | 3551 | * [Jaz's Blog](https://jazco.dev) 3552 | 3553 | * [Jens Gustedt's Blog](https://gustedt.wordpress.com) 3554 | 3555 | * [Joe Mckay's Blog](https://joegm.github.io) 3556 | 3557 | * [Jonathan Marler's Blog](https://marler8997.github.io) 3558 | 3559 | * [Julia Evans](https://jvns.ca) 3560 | 3561 | * [Justin Meiners's Blog](https://www.jmeiners.com) 3562 | 3563 | * [Karl Seguin's Blog](https://www.openmymind.net) 3564 | 3565 | * [Karl Zylinski'a Website](https://zylinski.se) 3566 | 3567 | * [KC Sivaramakrishnan's Blog](https://kcsrk.info/blog) 3568 | 3569 | * [Lei Xia's Blog](https://www.ddhigh.com/en) 3570 | 3571 | * [Lesley Lai's Blog](https://lesleylai.info) 3572 | 3573 | * [Loris Cro's Personal Website](https://kristoff.it) 3574 | 3575 | * [Mario's Lab](https://marioslab.io) by *Mario Zechner* 3576 | 3577 | * [Martin Janiczek's Blog](https://martin.janiczek.cz) 3578 | 3579 | * [Martin Uecker's Blog](https://uecker.codeberg.page/blog.html) 3580 | 3581 | * [MALTSEV.SPACE](https://maltsev.space) by *Aleksey Maltsev* 3582 | 3583 | * [Matt Godbolt's Blog](https://xania.org) 3584 | 3585 | * [Max Bernstein's Blog](https://bernsteinbear.com) 3586 | 3587 | * [mcyoung](https://mcyoung.xyz) by *Miguel Young de la Sota* 3588 | 3589 | * [Melatoni's Blog](https://nghiant3223.github.io) by *Nguyen Trong Nghia* 3590 | 3591 | * [Miguel Grinberg's Blog](miguelgrinberg.com) 3592 | 3593 | * [Mikael Zayenz Lagerkvist's Personal Website](https://zayenz.se) 3594 | 3595 | * [MonoidMusicianʼs Blog](https://blog.veritates.love) by *Verity Scheel* 3596 | 3597 | * [Nicholas Nethercote's Blog](https://nnethercote.github.io) 3598 | 3599 | * [Nicolas Rinaudo's Blog](https://nrinaudo.github.io/articles.html) 3600 | 3601 | * [Niko Matsakis's Blog](https://smallcultfollowing.com/babysteps/blog/) 3602 | 3603 | * [NULL BITMAP](https://buttondown.com/jaffray) by *Justin Jaffray* 3604 | 3605 | * [NULL on error](https://nullonerror.org) - Flipping bits whilst updating pixels by *Rodrigo Delduca* 3606 | 3607 | * [Omar Aflak's Blog](https://omaraflak.medium.com) 3608 | 3609 | * [Owen Shepherd's Blog](https://owen.cafe) 3610 | 3611 | * [Paul Smith's Blog](https://www.pauladamsmith.com) 3612 | 3613 | * [Phil Eaton's Website](https://eatonphil.com) 3614 | 3615 | * [Playing with code](https://haqr.eu) by *Dmitry V. Sokolov* 3616 | * **On the site** 3617 | * [TinyRenderer: Software rendering in 500 lines of bare C++](https://haqr.eu/tinyrenderer) 3618 | * [TinyCompiler: a compiler in a week-end](https://haqr.eu/tinycompiler) 3619 | * [TinyOptimizer: an optimizing compiler challenge](https://haqr.eu/tinyoptimizer) 3620 | * [Cursed fire or #define black magic](https://haqr.eu/strange/cursed-fire) 3621 | * **On the [author's GitHub](https://github.com/ssloy)** 3622 | * [Tiny renderer or how OpenGL works: software rendering in 500 lines of code](https://github.com/ssloy/tinyrenderer/wiki) 3623 | * [Understandable RayTracing in 256 lines of bare C++](https://github.com/ssloy/tinyraytracer/wiki) 3624 | * [KABOOM! in 180 lines of bare C++](https://github.com/ssloy/tinykaboom/wiki) 3625 | * [Least squares for programmers](https://github.com/ssloy/least-squares-course) 3626 | 3627 | * [Pointers Gone Wild](https://pointersgonewild.com) by *Maxime Chevalier-Boisvert* 3628 | 3629 | * [Probably Dance](https://probablydance.com) 3630 | 3631 | * [protty](https://kprotty.me) 3632 | 3633 | * [purplesyringa](https://purplesyringa.moe) by *Alisa Sireneva* 3634 | 3635 | * [Racey Chan's Blog](https://www.lihil.cc/blog) 3636 | 3637 | * [Rahman Sibahi's Blog](https://asibahi.github.io) 3638 | 3639 | * [Rahul Gopinath's Blog](https://rahul.gopinath.org/posts) 3640 | 3641 | * [RasterGrid](https://www.rastergrid.com/blog) 3642 | 3643 | * [Reasonably Polymorphic](https://reasonablypolymorphic.com) by *Sandy Maguire* 3644 | 3645 | * [Sam Rose's Blog](https://samwho.dev) 3646 | 3647 | * [Serge Skoredin's Blog](https://skoredin.pro/blog) 3648 | 3649 | * [Simon Willison's Weblog](https://simonwillison.net) 3650 | 3651 | * [Squadrick](https://squadrick.dev) by *Dheeraj Reddy* 3652 | 3653 | * [Stephen Diehl's Blog](https://www.stephendiehl.com) 3654 | 3655 | * [stuffwithstuff](https://stuffwithstuff.com) by *Robert Nystrom* 3656 | 3657 | * [Syed Jafar Naqvi's Blog](https://medium.com/@naqvi.jafar91) 3658 | 3659 | * [The If Works](https://blog.jcoglan.com) by *James Coglan* 3660 | 3661 | * [Theia Vogel's Blog](https://vgel.me) 3662 | 3663 | * [Thomas Leonard's blog](https://roscidus.com) 3664 | 3665 | * [TK Kinoshita's Blog](https://www.iamtk.co) 3666 | 3667 | * [Vectorized](https://vectrx.substack.com) by *Caden Parker* 3668 | 3669 | * [Vladimir Makarov's Blog](https://vnmakarov.github.io) 3670 | 3671 | * [xnacly - blog](https://xnacly.me) 3672 | 3673 | * [Zaid Humayun's Blog](https://redixhumayun.github.io) 3674 | 3675 | ### Performance and Optimization 3676 | 3677 | * [Agner Fog's Website](https://www.agner.org) 3678 | 3679 | * [Branch Prediction Demystified](https://joegm.github.io/blog/branch-prediction-demystified) by *Joe Mckay* 3680 | 3681 | * [Denis Bakhvalov's Website](https://easyperf.net) 3682 | 3683 | * [Johnny's Software Lab](https://johnnysswlab.com) by *Ivica Bogosavljević* 3684 | 3685 | * [Optimizing a Math Expression Parser in Rust](https://rpallas.xyz/math-parser) by *Ricardo Pallás* 3686 | 3687 | * [Romain Guy's Blog](https://www.romainguy.dev/posts) 3688 | 3689 | ### Web Development 3690 | 3691 | * [nullpt-rs blog](https://nullpt.rs) 3692 | 3693 | * [Frontend Masters](https://frontendmasters.com) 3694 | 3695 | * [Hugo Daniel's Blog](https://hugodaniel.com) 3696 | 3697 | * [Josh Comeau's Website](https://www.joshwcomeau.com) - Animation, CSS, JavaScript, React 3698 | 3699 | * [JSLegendDev’s Substack](https://jslegenddev.substack.com) - Web development, game development and their intersection. 3700 | 3701 | * [Tania Rascia’s blog](https://www.taniarascia.com) by *Tania Rascia* 3702 | 3703 | ## Other 3704 | 3705 | * [Explained from First Principles](https://explained-from-first-principles.com) by *Kaspar Etter* 3706 | 3707 | * [How These Things Work](https://reasonablypolymorphic.com/book/preface.html) - a book about abstraction 3708 | 3709 | * [Improve Your Social Skills](https://www.improveyoursocialskills.com) by *Dr. Daniel Wendler* 3710 | 3711 | * [Project Oberon: The Design of an Operating System, a Compiler, and a Computer](https://www.projectoberon.net) by *Niklaus Wirth* and *Jürg Gutknecht* 3712 | 3713 | * [Rocket and Space Technology](http://www.braeunig.us) 3714 | 3715 | * [Teach Yourself Computer Science](https://teachyourselfcs.com) 3716 | 3717 | * [The Art of HPC](https://theartofhpc.com) by *Victor Eijkhout* 3718 | 3719 | * [The Art of Insight in Science and Engineering: Mastering Complexity](https://ocw.mit.edu/courses/res-6-011-the-art-of-insight-in-science-and-engineering-mastering-complexity-fall-2014/resources/mitres_6-011f14_art_insfin) by *Sanjoy Mahajan* 3720 | 3721 | * [The Fundamentals of Control Theory](https://engineeringmedia.com/books) by *Brian Douglas* 3722 | 3723 | * [The Missing Semester of Your CS Education](https://missing.csail.mit.edu) 3724 | 3725 | * [The Nature of Code](https://natureofcode.com) - A book about how can we capture the unpredictable evolutionary and emergent properties of nature in software by *Daniel Shiffman* 3726 | 3727 | * [Vjeux Blog](https://blog.vjeux.com) 3728 | 3729 | ## Other lists 3730 | 3731 | * [Become a Programmer, Motherfucker](http://programming-motherfucker.com/become.html) - A list of free programming books. 3732 | 3733 | * [Build Your Own X](https://github.com/danistefanovic/build-your-own-x/blob/master/README.md) 3734 | 3735 | * [Electronic References](https://www.cs.drexel.edu/~csg63/books.html) by *Colin S. Gordon* - a loosely-categorized collection of links to CS textbooks in a variety of areas that are freely available online. 3736 | 3737 | * [Free Computer Books](https://freecomputerbooks.com) 3738 | 3739 | * [Free Tech Books](https://www.freetechbooks.com) 3740 | 3741 | * [GPU Optimization for GameDev](https://gist.github.com/silvesthu/505cf0cbf284bb4b971f6834b8fec93d) by *Ken Hu* 3742 | 3743 | * [LibreTexts](https://libretexts.org) - Collections of science books. 3744 | 3745 | * [Lovely Professional University Books](https://www.lpude.in/SLMs) 3746 | 3747 | * [Max Slater's Bookmarks](https://github.com/TheNumbat/Lists) 3748 | 3749 | * [My favorite technical blogs](https://eatonphil.com/blogs.html) by *Phil Eaton* 3750 | 3751 | * [Open Source Society University](https://ossu.dev) 3752 | 3753 | * [Programming Notes for Professionals books](https://goalkicker.com) 3754 | 3755 | * [Project Based Learning](https://github.com/practical-tutorials/project-based-learning/blob/master/README.md) 3756 | 3757 | * [Raspberry Pi Official Magazine Books](https://magazine.raspberrypi.com/books) 3758 | --------------------------------------------------------------------------------