This is a repository for data structures and algorithms. This has code in C++ till now. But you can contribute code to this repository in any language you know as long as it is correct and perfectly documented.
There is no well set roadmap for learning data structures and algorithms other than hard work, consistency and practice. Since this is a very vast field, therefore, only regular practice can help you become a good programmer. If you are a complete beginner then this is what you can do to start learning coding:
- Start learning the basics of any programming language of your own choice
- Be patient and while your progress might seem to be slow, remember that learning data structures and algorithms can be a very daunting task and it has a steep learning curve.
- Practice questions from GeeksForGeeks, Hackerrank and then slowly move onto Codechef. Participate in the Long Challenges.
- Learn new concepts and at the same time, practice more questions on the above mentioned sites.
- Now as you become more experienced with coding, shift to codeforces and keep onn practising.
A. Open Courses to Learn DSA
- Abdulbari Course (GDrive Link)
- Codemonk By hackerearth
- CodeChef's Indian Programming Camp
- MIT OCW Introduction to Algorithms
- NCTU Problem Solving & Programming Techniques
- Khan Academy Algorithms
- Udacity Intro to Algorithms
- T-414-ÁFLV: A Competitive Programming Course
- CodeForces Pilot Course - ITMO
B. Books Available for Learning DSA
- Introduction to Algorithms, CLRS (3rd Ed)
- Algorithms Unlocked - Thomas H. Cormen
- Grokking Algorithms
- Algorithms to Live By - Brian Christian
- Data Structures & Algorithms in Python
- Algorithm Design Manual - Steven S.Skiena
- Algorithms by Vazirani & Dasgupta
- Algorithms & Data Structures N.Wirth
- Competitive Programmer's Handbook
C. Online Contest Websites (CP + Interview)
- CP Based Websites
- Interview Based Contests
D. Online Question Resources (CP + Interview)
-
CP Based Questions
-
Interview Based Questions
F. Online Resources for Implementations