Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Congratulations! You’ve earned a new hidden treasure.

This treasure is brought to you by InstaJob.io. InstaJob helps you get a high paying remote job from tech
companies in the US. InstaJob developers see a 125% increase in salary on average. In addition to a
better job, InstaJob developers also get free mentorship from FAANG engineers. You can apply for
InstaJob here.

If you know any talented Software Engineers, tell them about InstaJob.io. Your recommendation helps us
reach more people and make a greater impact. I truly value your support.

Cheers,
Sahil

How much DSA to learn?

I strongly believe that you’ll learn much more when you solve actual problems than when reading a lot of
theory. So, I recommend learning some core concepts and moving on to problem-solving as soon as you
can. Here are the core concepts that I learned before I started practicing problems:

1. Performance of Algorithms: Big O.


2. Sorting: Selection sort, Insertion sort, Mergesort, and Quicksort. Differences between Mergesort
and Quicksort. Partition in Quicksort.
3. Recursion: Learn the basic idea. You’ll encounter this again when learning Heaps and BSTs later.
4. Binary Search: Implementation with and without repeating values. Bisect left and Bisect right
implementation. Understand where the pointer ends up depending on the implementation.
5. Stacks & Queues: LIFO vs FIFO, Implementation using linked list or a resizing array. Applications.
6. Heaps & Priority Queues: Adding and removing elements on a Heap and big O. Heapify and
Heapsort. Use case.
7. HashMap & Dictionary: Implementation with Hash Table. Use case.
8. Binary Search Tree (BST): Adding, Removing, Searching an element, and big O.
9. Graphs: Directed vs Undirected, Traversal using BFS and DFS, Shortest path with Dijkstra,
Topological sort.
10. Dynamic Programming: Learn the basic idea. Actual learning will happen only when you solve
some problems yourself.
11. Tries: Implementation and Application.

If you do everything above, you’ll be ready to solve 90% of the problems. That doesn’t mean you’ll be
able to solve all of them. But you can give them a fair shot. Like I said earlier, actual learning will only
happen by solving problems. So, do not get stuck with the theory. Your theoretical knowledge will keep
improving as you practice problems. Good luck!

If you have not already, sign up for the free interview crash course: interviewmaster.io

You might also like