on

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

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 —

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

3: The Algorithm Design Manual: Steven Skiena

**Some online resources:**

**Resources to practice:**

2: World of Seven — Methods to Solve

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.