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?
The book emphasises on the "design" part of the process. It shows how to employ induction to design algorithms. It is unlike any other book I have ever seen in this domain.
You can find it here: https://doc.lagout.org/science/0_Computer%20Science/2_Algori...