Some examples that come to my mind are
1. https://build-your-own.org/
2. https://github.com/codecrafters-io/build-your-own-x<p>I'm interested mainly in distributed systems and machine learning, if you folks have any such recommendations I would really appreciate it.<p>In ML, I'm looking for something to absolutely learn from scratch. I'm fairly comfortable with Linear Algebra so anything that helps understand the algorithm underneath such resources will be very beneficial.
By happenchance today I learned that Manning recently started working on publishing a X From Scratch series, which currently includes:<p>* Container Orchestrator: <a href="https://www.manning.com/books/build-an-orchestrator-in-go-from-scratch" rel="nofollow">https://www.manning.com/books/build-an-orchestrator-in-go-fr...</a><p>* LLM : <a href="https://www.manning.com/books/build-a-large-language-model-from-scratch" rel="nofollow">https://www.manning.com/books/build-a-large-language-model-f...</a><p>* Frontend Framework: <a href="https://www.manning.com/books/build-a-frontend-web-framework-from-scratch" rel="nofollow">https://www.manning.com/books/build-a-frontend-web-framework...</a><p>The first book might be most interesting, given your particular subject interest.
There is a list of projects:
<a href="https://github.com/practical-tutorials/project-based-learning?tab=readme-ov-file#python">https://github.com/practical-tutorials/project-based-learnin...</a><p>And another one: <a href="https://github.com/Xtremilicious/projectlearn-project-based-learning">https://github.com/Xtremilicious/projectlearn-project-based-...</a>
With regards to distributed systems you must understand transmission. I suggest learning about streams and pipes for moving binary between local interfaces and secondly tcp/udp sockets for moving binary between computers.<p>I do not have books to recommend for this as I am self taught writing hobby applications in Node.js
not distributed systems, but I have a build your own KV store project. It is in TDD fashion with the tests. So, you start with simple functions, pass the tests, and the difficulty level goes up. When all the tests pass, you will have written a persistent key-value store.<p><a href="https://github.com/avinassh/py-caskdb">https://github.com/avinassh/py-caskdb</a>
<i>Distributed Services with Go</i> is a great learn-by-building book for distributed systems: <a href="https://pragprog.com/titles/tjgo/distributed-services-with-go/" rel="nofollow">https://pragprog.com/titles/tjgo/distributed-services-with-g...</a><p>> <i>This book walks the reader through building a real-world software project (a self-contained, persistent event-stream service) from start to finish. There isn’t a book that walks through building a complete system like this in any language. This book introduces distributed systems practically, explaining the pieces that make up a distributed system and showing how they fit together.</i>