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 Pointers for replacing nested loops with linear scans over arrays and linked lists
- Heaps / Priority queues (useful but not foundational)
- Recursion & Backtracking (flows from BFS/DFS and DP)
Meta-patterns
These aren’t algorithms but the ideas that make many algorithms work:
- Incremental Computation — maintain state as you move, instead of recomputing it
Maybe I will add more later, but for now there’s more than enough work to do.