Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
by Martin Kleppmann
https://www.amazon.com/Designing-Data-Intensive-Applications...
You can learn a lot of algorithms. It's useless unless you start to create architecture and use them in practice.