Where should I start to learn distributed systems? I know this is pretty vague thing to ask, but I am open to receiving vague answers.😊
For further actions, you may consider blocking this person and/or reporting abuse
Where should I start to learn distributed systems? I know this is pretty vague thing to ask, but I am open to receiving vague answers.😊
For further actions, you may consider blocking this person and/or reporting abuse
Oleg Dubovoi -
Nhan Nguyen -
Muha-mmed -
Vladislav Radchenko -
Top comments (6)
SO. MUCH. RESEARCH.
However, research alone is an insufficient teacher. Many things I read early on, I did not have enough experience to understand its significance. Here's why: Even if you have a mentor to break down every implication of every single architectural detail of their solution, you would be bored into a coma. Many details do not seem relevant (and will get automatically filtered out by your brain) until you actually face the problems they address. I found myself coming back to articles I tried to read multiple times before. But previously when I started to read them, I could not see the benefit of their approach (and sometimes couldn't even understand what they were trying to do). It wasn't until I had more experience that I understood what conditions made certain tactics necessary. And I'm still learning.
Probably nobody is going to lead you by the hand down the scalable distributed systems path anyway. Most of us are flying by the seat of our pants as it is, while we try to build these things. You have to take the initiative, pursue it as an interest, and press for opportunities. And when you do finally get that chance, it can be quite stressful when the technical success of a product rests on your shoulders. But at some point you get it working, and then you have a base to build on.
As far as where to start, remember this quote:
Pick a single topic in distributed computing that interests you. (i.e. scalable databases, or service discovery, or event-driven systems, etc.) Research it. Explore the shape and context of it. Heck, even try it. (Spinning up EC2 instances or Lambda functions or w/e for a few hours now and then is quite cheap.) Then work your way out from there into the next topic. Follow the threads until you start to understand how the tapestry is made.
Thanks for such a detailed response. :)
I recommend starting with Martin Kleppman's book titled Designing Data Intensive Systems. It covers all the fundamentals and advanced stuff in one neat package. Saves you hours of scouring multiple websites and cognitive overload.
Thanks for the book suggestion. :)
Seconding this. This book does a fantastic job of giving you a solid foundation!
I have started to read through this book. And as you say it's pretty solid in terms of explanation about things like the inner workings of DB storage engines, data modeling, etc.