**What is an algorithm?**

- An established sequence of programming logic (i.e instructions) aimed at solving a computational problem.

**What is the need for learning an algorithm?**

- There is no need; one can invent one’s own technique for solving a computational problem. But if you want to solve a computational problem efficiently you could use an algorithm aimed at solving the same.

**Do you apply algorithms in day-to-day life for developing software?**

- Depends on the kind of work that you are doing. But I would rather learn an algorithm and not use it because it is not needed than not knowing it at all when it is needed.

**Do you apply algorithms when you are not developing software?**

- There is a world of competitive / sports programming where the participants use algorithms to solve programming challenges
**for kicks**. - Check topcoder.com, codeforces.com, spoj.com etc..

**There are so many algorithms to learn, which one should I learn first?**

- Sorting and searching algorithms are some of the simpler ones. There are easy to learn and easy to apply for solving sorting and searching problem.
- Graph and tree traversal algorithms like Depth-First-Search and Breadth-First-Search are easy and fun to learn too.

**How do I know which algorithm should be used for solving a computational problem?**

- With a little bit of practice solving simple computational problems, you get the idea of the algorithm that could be used.

**What programming languagues should I learn before learning algorithms?**

- C++, Java & Python are some of the preferred programming languages that make it easy to apply an algorithm for solving a programming problem. But there are many other programming language that one could use like C, Go, Kotlin, Php, C-Sharp, etc..

All rights reserved.