Broadly speaking, it’s for fun and profit
Fun - It’s exciting to make new(to me) discoveries about the nature and workings of these tools. Even better is applying this knowledge to solve difficult problems
Profit - Many companies test for this knowledge during interviews
Having studied lots of the classic algorithms and data structures in the past year, I never could shake the feeling that I didn’t really get it. You see, I had trouble solving many challenge problems without having encountered a similar one in the recent past. In most cases, I would read the solutions, understand them and re-implement them myself. Not bad, but soon, I forgot about them. For example, if I studied general binary trees(not its many special forms like AVL, Cartesian, Splay etc.), I’d like to be able to:
I also want to try writing about each topic, as if it was being explained to me by a master teacher with a focus on following the chain of intuition that led to these discoveries. My hope is that this will leave me with a deeper understanding of the subject beyond what is required during interviews, that would allow me to make new(or new to me) discoveries of my own