Algorithms are like recipes—a sequence of logical steps to solve specific problems.
LLMs can generate algorithms now, but understanding how they work helps you recognize patterns and pick the right approach when solving problems. You’ll also understand trade-offs and evaluate whether a solution is actually good, which makes you a better programmer.
Also, some coding interviews still focus heavily on algorithms and data structures, so knowing how to implement them will help you perform better in the technical rounds.
Fundamental Algorithms
These are algorithms that are widely used as building blocks for solving more complex problems, and are also frequently asked in coding interviews.
This is the list of algorithms I want to learn:
- BFS / DFS - Everything graph-related starts here
- Binary Search
- Hash Tables - Essential for most optimization tricks
- Dynamic Programming - Core problem-solving approach
- Sorting - Just know one well (merge or quick)
- Stacks - Comes up surprisingly often
Other Useful Algorithms
These are “nice to have but not critical”:
- Two-pointer / Sliding window (really just array optimization tricks)
- Heaps / Priority queues (useful but not foundational)
- Recursion & Backtracking (flows from BFS/DFS and DP)
Maybe I will add more later, but for now is more than enough work to do.