I’m currently finishing a CS degree, so I’ve had some DSA courses. Nonetheless, I don’t feel I have good enough theoretical foundations or proficiency when putting them into practice.
My main goal would be to prepare myself for coding interviews, but I’d also want to make sure I understand well theory.
What are the best resources for learning Data Structures and Algorithms theoretical with good theoretical background that also allows you to succeed in coding interviews?
Some resources I’ve found, but I haven’t followed myself:
Free resources
- Algorithms, Part I by Princeton University (Coursera) taught in Java
- 6.006 Introduction to Algorithms / Electrical Engineering and Computer Science (MIT OpenCourseWare) taught in Python
- FreeCodeCamp article linking to other resources: Learn Data Structures and Algorithms – Introduction and Learning Resources (FreeCodeCamp)
- Learn About Algorithms and Data Structures (FreeCodeCamp) taught in Python
Paid resources
“Introduction to Algorithms” by Ronald Rivest is the standard college level textbook for this topic. I highly suggest starting there. For my undergraduate degree, this was meant to be taught in the first half of the second year and there’s no specific mathematical requirements other than understanding advanced notation.
“Cracking the coding interview” will likely expose you to questions you’ll see again during the interview process, but it lacks the formality.and structure of a mathematics text.
Thanks.
I see it’s the reference book for the 6.006 Introduction to Algorithms (MIT OpenCourseWare) course.