How I came to read the first half of Distributed Algorithms by Nancy Lynch
This blog is my story of how I came to read half of Distributed Algorithms by Nancy Lynch. This is a personal story, but also has ideas for how to learn and get unstuck.
The beginning
I first learned of the Distributed Algorithms book from watching the video Distributed Systems Theory for Practical Engineers. In this video, the speaker references 4 books:
- Distributed Algorithms by Nancy Lynch
- Reliable and Secure Distributed Programming by Christian Cachin
- Replication Theory and Practice by Bernadette Charon1.Bost
- Guide to Reliable Distributed Systems by Kenneth Birman
Lets refer to these books by number 1-4. The speaker calls book 1 “the bible”. Then says, “if you are going to read any book, read book 2. I went online and picked up the first two books.
Getting stuck
Next followed a series of attempts to read book 1 with each time resulting in the concepts not sinking in:
- Try to read book 1
- Try to read book 2 before book 1
- Learn Erlang by reading Programming Erlang by Joe Armstrong
- Create an Erlang project with concurrency named dta
- Use Erlang gen_statem behavior
- Learned about TLA+ by this video
- Learn more about TLA+ by doing the video series
- Try to read book 1 again and covert book models to TLA specs
Then came motivation and a good environment
None of the above attempts worked as far as enabling me to start reading book 1 and understand it. I did learn more concepts, but I was not quite there. Next came a series of things that pulled and pushed me in the right direction:
- I had a soft tissue injury in my back and needed to take a break from mountain biking, so I had time to do other things
- I started physical therapy for my back which made me optimistic
- My manager told me “Aaron, you can code all day. What you need to do is learn the way things work”
- I stopped drinking a beer or wine with dinner. Even this casual drinking was slowing me down and causing me to lose motivation
- My youngest started school, so the mornings were now quiet
- TLA+ motivated me, and I knew that I needed more backgound knowledge
- I wanted to grow at work while working on my current projects
Then I could understand
September 4, 2023, which happened to be around the same time that my youngest started school, I started reading book 1. I took the time to understand the concepts and research what I didn’t know. I’ve been reading the book in the morning. I am a morning person, and it is a nice start to the day to get the new knowledge and consider things differently.
Now
It is now February 2, 2023, and I am on page 425 of 827 pages, so I am half way.
Conclusion
I think the difference was having enough reasons, enjoying what you are doing, and taking the time to learn.
What Next
I plan to continue reading book 1. I may take a break to write a TLA spec from a model in the book. I am thinking the Peterson2P algorithm, but I am going to wait and see. I don’t want to lose momentum.
Thank you to the authors
I am thankful to the authors for writing these books and sharing them with us. I have had three people in my career who I consider mentors. I learned a lot from them. When you read someone’s book, if it is the right book, it is like having a senior mentor teaching you.