What’s the best way to learn algorithms for programmers?

1 min read

Once I was asked this question on Quora. My answer got 17.7k Views and many upvotes. The person who asked the question needed some specific learning path & resources. When I was used to do competitive programming and learn algorithms, I followed some steps to learn algorithms. Those steps were best fit for me. May be those steps can be helpful for you also. So, here I am sharing my learning steps –

Reading a book is very essential because every topic is described in detail into a book, but in videos/tutorials everything is described in short.

For books I will recommend —

1: Introduction to Algorithms: Charles E. Leiserson, Clifford Stein, Ronald Rivest, and Thomas H. Cormen

2: Algorithms (4th Edition): Robert Sedgewick, Kevin Wayne

3: The Algorithm Design Manual: Steven Skiena

Some online resources:

Data Science Tutorials

Algorithms — GeeksforGeeks

Resources to practice:

1: LightOJ Problems

2: World of Seven — Methods to Solve

3: A2 Online Judge

4: HackerRank

5: CodeForces

Now come to the steps: I follow “Learning by doing” philosophy.

Step 1: At first you should learn the theory of any particular algorithm from your books/resources.

Step 2: Try to implement the algorithm(theory) you’ve learnt into code without looking at others implementation. After much trying if you can’t implement then take help of others.

Step 3: Now pick up a link from Resources to practice and solve some problems related to the algorithm you’ve learned recently.

To me this my best way to learn algorithms.

Best of luck.