←back to thread

190 points udev4096 | 1 comments | | HN request time: 0.193s | source
Show context
antonalekseev ◴[] No.41889587[source]
See also https://ferd.ca/a-distributed-systems-reading-list.html, which mentions the OP list.
replies(1): >>41890893 #
1. emmanueloga_ ◴[] No.41890893[source]
I think it's important to clarify who these lists are really for. They're not meant for people simply looking to "learn distributed systems," in my opinion. These might help those pushing the envelope or looking for new approaches.

For the rest of us, imagine asking how to solve quadratic equations and getting 100 papers on category theory.

> See also https://ferd.ca/a-distributed-systems-reading-list.html, which mentions the OP list.

Fred Herbert’s list, more up-to-date than OP’s, isn't even complete according to him. He mentions "Designing Data-Intensive Applications" as essential but suggests something like: "you need to read a bunch of papers first to _really_ get it." (My paraphrasing :-). It can feel like gatekeeping when lists like these are framed as prerequisites for understanding.

Thanks to decades of others' work, we don’t need to read 100 nanokernel papers to be effective Linux users. And while building a good production ready OS from scratch is still hard, 99% of us don’t need to—we just need to get proficient with the tools that already exist. The same goes for distributed systems—it’s does not have to be that hard unless you're trying to push the envelope.

Here are some ideas for SWEs looking to get practical experience rather than diving deep into the research:

* Build something with NATS [1] or YugaByte [2].

* Try a hands-on tutorial like [3].

* Read Designing Data-Intensive Applications. Some books get better with each re-read, and this is one of them. So go ahead and read it, even if you haven't read 100 papers yet. When you hit sections you don’t understand, ask questions and get help. Feel free to skip the massive reading lists. :-). (to be fair Herbert recommends this approach too, at the very end of his post).

--

1: https://nats.io/

2: https://www.yugabyte.com/

3: https://pragprog.com/titles/tjgo/distributed-services-with-g...