Distributed Systems

There's an incredible knowledge base out there. I'll just list a few pieces that really inspired me to get into Distributed Systems.

  • Jim Kurose and Keith Ross' Computer Networking - A Top Down Approach convinced me to study Computer Science in the first place. Besides, it played a major part in my decision to go to UMass Amherst, and taking Jim Kurose's grad class on Advanced Computer Networks was simply amazing. The book manages to pick you up from wherever you stand, as an absolute beginner or even if you're familiar with some of the basics of networked communication, and explains the concepts in an engaging manner that will make you understand why things are a certain way. I particularly loved the section on TCP and the various models the book talks about until finally arriving at TCP.
  • Andrew S. Tanenbaum's Modern Operating Systems book really changed the way I think about computers. At the time, I considered operating systems as a black box that does whatever I ask it to do. It is humbling to read about all the work that's been done to make life for users and application developers easier. Must-read for every aspiring CS student.
  • Maarten van Steen and Andrew S. Tanenbaum's Distributed Systems was the book to a grad class on Distributed Systems I took at UMass Amherst. Great read for foundational ideas on the big problems in the field, and how they can be solved.

Since I've been working on microservices for a little while, here are a few resources on that topic I recommend: