Ask HN: Suggest rigorous ways to learn design of data structures and algorithms
At the moment I am not opting for something like leetcode. I want something that teach me the principles of how to actually design from the fundamentals.
Also I want to be as much language agnostic as possible. By that I mean the ability to think about algorithmic solutions to problems in terms of mental models that I can then translate to a low level language like C, or a dynamic imperative language like Python, or a functional language like Racket, SML or OCaml. Of course, the assumption here is that I must know the language I want to implement the algorithm in. So basically I want to learn about algorithms in a paradigm agnostic way so that I can implement them in any paradigm I want.
How to go about this? Do you have any book or course suggestions in mind?