Best Resources to learn Data Structures and Algorithms
Data structures form the bread and butter of any interview for a software engineering role. Irrespective of the job description, a candidate can expect questions on the data structures, algorithms, and their varied applications. So it is of utmost importance to make DSA your first priority and not shy away from its challenges.
1. Master any one programming language.
It is preferred to pick up either Python or C++ for this task. C++ is often preferred by programmers because of the huge number of in-built functions that are available. It has a less running time and its STL library comes very handily in several situations.
2. Start reading books.
CLRS is a comprehensive source when it comes to DSA and you can start from it. It covers all the needed topics, but make sure you understand what you are reading. Take the help of blogs, editorials available online when you are stuck on any topic. If you find CLRS difficult to understand, you can start with the book Data Structures Using C by Thareja.
3. Practice, practice, and practice!
After completing a particular topic, implement it by coding up problems. You can practice from sites such as Hackerrank, Codechef, Codeforces. Unless you implement what you have read, you cannot understand the trickier parts and other such subtleties.
4. Other books
After this, you can look up the book Algorithm Design by Jon Kleinberg and Éva Tardos. Proceeding onto this book after CLRS will be highly beneficial. The book by Steven Skiena, Algorithm Design Manual is also a highly recommended source for a strong concept of algorithms.
5. Online courses
Apart from books, there are online some useful MOOCs. The MOOC by Tim Roughgarden is considered one of the best sources for the preparation of DSA. It covers all the required topics starting right from scratch. Apart from this, Algorithms I and II offered by Princeton University is also good.
The above-mentioned sources are enough to make you an expert in DSA. But you can’t be one unless you solve problems. It might prove to be difficult at first to implement the algorithms but remember to be patient.
Comments
Post a Comment