I really liked the "Raytracing in one Weekend" Series [0], in terms of: explaining a complicated concept by programming a toy implementation of the thing itself and afterwards one is left with more knowledge and something to "show".<p>Does someone know similar series on other subjects than raytracing? I know there is the Advent of Code, but that's more like solving a puzzle.<p>[0]: <a href="https://raytracing.github.io" rel="nofollow">https://raytracing.github.io</a>
I would recommend Crafting Interpreters (<a href="https://craftinginterpreters.com" rel="nofollow">https://craftinginterpreters.com</a>) or Interpreter Book (<a href="https://interpreterbook.com/" rel="nofollow">https://interpreterbook.com/</a>). Excellent ways to learn how to build an interpreter. You have a functioning interpreter by the end of it, and it's easy enough to extend it into new concepts! I'm using some of the lessons learned from that to build a custom interpreter for a small project I'm working on. It's really fun!
This is a fantastic list of projects. From 3D renderers, blockchain protocols, frameworks to emulators.<p>"Build your own X" - "This repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch." [0]<p>[0] <a href="https://github.com/codecrafters-io/build-your-own-x">https://github.com/codecrafters-io/build-your-own-x</a>
Game Physics in One Weekend [0], Ten Minute Physics [1]<p>[0]: <a href="https://gamephysicsweekend.github.io/" rel="nofollow">https://gamephysicsweekend.github.io/</a><p>[1]: <a href="https://matthias-research.github.io/pages/tenMinutePhysics/" rel="nofollow">https://matthias-research.github.io/pages/tenMinutePhysics/</a>
The "From Nand to Tetris" course or in book form "The Elements of Computing Systems". This steps through building a computer from scratch. Starting with building logic gates from transistors, through to building a CPU and then writing assembly.
<i>Fluid Simulation for Computer Graphics</i> by Robert Bridson [0] is one of my favorites. It’s a very approachable introduction to fluid mechanics pdes, and how to code wonderful fluid simulations like this HN favorite [1].<p>[0]: <a href="https://www.cs.ubc.ca/~rbridson/fluidsimulation/" rel="nofollow">https://www.cs.ubc.ca/~rbridson/fluidsimulation/</a><p>[1]: <a href="https://paveldogreat.github.io/WebGL-Fluid-Simulation/" rel="nofollow">https://paveldogreat.github.io/WebGL-Fluid-Simulation/</a>
<i>Common Lisp: A Gentle Introduction</i> has you code a bunch of neat little projects, I'm especially fond of the substitution cypher solving program. It reminds me of Covert Action.
My curated and update list of Computer Graphics resources you can read online for free [0] with every item having a small description.<p>[0]: <a href="https://legends2k.github.io/note/cg_resources/" rel="nofollow">https://legends2k.github.io/note/cg_resources/</a>
Check out Crafting Interpreters[0]. You learn about Chomsky formal language hierarchy, constructing context-free grammars, lexing, parsing, error reporting, etc by building your own programming language.<p>[0]: <a href="https://craftinginterpreters.com/" rel="nofollow">https://craftinginterpreters.com/</a>
self plug: I wanted to learn how databases work internally, like how they store and retrieve data, build indexes, etc.<p>I built an educational KV store to teach someone to write a database from scratch. I have set up this project in TDD fashion with the tests. So, you start with simple functions, pass the tests, and the difficulty level goes up. There are hints if you get stuck. When all the tests pass, you would have written a persistent key-value store in the end.<p>link: <a href="https://github.com/avinassh/py-caskdb">https://github.com/avinassh/py-caskdb</a>
500 lines or less and the rest of Architecture of Open Source Applications series
<a href="http://www.aosabook.org/en/" rel="nofollow">http://www.aosabook.org/en/</a>
The <i>Sam's Teach Yourself in 24 hours</i> is a series of computing-related books:<p><a href="https://www.pearson.com/us/higher-education/series/Sams-Teach-Yourself/335177.html" rel="nofollow">https://www.pearson.com/us/higher-education/series/Sams-Teac...</a>