| I started with these decks: https://github.com/teivah/algodeck https://github.com/teivah/designdeck Essentially I'd have a question like "invert a binary tree", "implement union-find", or "structure of a topological sort". All of these are small enough that I can keep them in my head. For small algorithms I would just regurgitate the code line-for-line in my head. For more complex ones I would just go over the structure (not actual code), e.g. I know that topological sort can use a stack or queue, you need to track indegree, add nodes to the stack/queue when their indegree == 1, and so on. I also used this to help learn (and really understand) common runtimes which helped me when deriving the runtimes of my own algorithms. Since I started with premade decks I had to look at lot of things up during my walks, but that slowed down as towards the end of my studying. I did all this to prep for interview (which I wrote about on my blog: https://sjer.red/blog/2024/job-hunt/) -- I would say it worked fairly well for me though you definitely need to pair it with LeetCode or similar. |