In the past I did Princeton and Stanford algorithms + Leetcode, when I needed to prepare for interviews. Now a time has come again to refresh fundamentals, so I decided to do a Coursera class from UCSD. The syllabus seemed solid for all the courses in the specialization, and things are logically grouped (vs Princeton class just felt like a collection of solutions to unrelated problems). I also find problems much better and more challenging than both Princeton and Stanford classes. Generally, there are 5 problems in the assignments: one LC easy, two LC mediums and two LC hards. Plus, they have an automatic grader that works for several languages. My only complaint is that lectures are sometimes non-informative. For example, dynamic programming is briefly explained in like 3 minutes, most of which are spent on the story of the name. However, I think it's OK, if you just need a refresher. If you really forgot, you can watch relevant lectures from the MIT algorithms class, which I find very good. Plus, I read suggested chapters in CLRS from time to time, when I find the topic particularly interesting. So, currently I'm using UCSD specialization as the backbone for my preparation. If I find something unclear, or I want more info, I watch MIT lectures/read CLRS. And, as I am moving through topics, I'm doing Leetcode problems after I'm done with the lectures and assignments. Should it be enough for coding/algorithmic questions? If you choose not enough, give your suggestions, please. PS: No TC at the moment, as I took a several months break for health reasons. Right after my PhD in physics and ML I worked as an MLE in a crazy startup, that totally burned me out. The base there was $230k + 0.5% equity in the form of stock options.
bro has a phd in cs and still needs to refresh on dsa, we’re all doomed
He has a PhD in physics not CS
he said physics and ML