How to plan and Prepare your software job interviews

Most of you had asked how to start DSA. So here is a step by step guide to master DSA which I would suggest.

1. Pick a programming language and explore fundamentals.
— You can start with popular languages like C++, Java, Python
I would recommend Hackerank(https://www.hackerrank.com/) for this

2. Learn the basics of Data Structures & Algorithms.
— Data Structures — Arrays, Strings, LinkedList, Stacks, Queues, Trees, Graphs, Tries, Heaps
Algorithms — Searching, Sorting, Hashing(Hash Tables), Greedy, Divide and Conquer
Other Concepts — Time Complexity Analysis, Recursion, Backtracking, Dynamic Programming, Number Theory, Graph Theory, OOPs
Useful Resources:
a.) https://www.programiz.com/dsa
b.) https://www.geeksforgeeks.org/100-days-of-code-a-complete-guide-for-beginners-and-experienced/
c.) https://www.codechef.com/certification/data-structures-and-algorithms/prepare
d.) https://leetcode.com/discuss/general-discussion/494279/comprehensive-data-structure-and-algorithm-study-guide

3. Get familiar with libraries for implementing data structures.
— Like STL library in C++. For example which data structure to use for implementing trees, graphs, heaps, etc.
C++ — https://www.geeksforgeeks.org/the-c-standard-template-library-stl/
Java — https://www.geeksforgeeks.org/java-collection-tutorial/
Python —https://stackoverflow.com/questions/4637095/python-equivalent-for-c-stl-vector-list-containers

4. Start solving questions.
— You can start practicing on platforms like LeetCode and GeeksforGeeks. Try solving easy questions first to gain confidence and build logic for problem solving. Later you can move to medium and hard level problems. Try solving DSA topics in this order:-
Array -> String -> LinkedList -> Stack & Queue -> Recursion -> DP -> Trees -> Graph -> Heap -> Trie
Leetcode — https://leetcode.com/problemset/all/
GeeksforGeeks — https://practice.geeksforgeeks.org/

5. Solve interview specific questions.
— Don’t waste too much time in step 4. Try to solve questions on each topic to familiarise yourself with them. Wasting time in solving random questions will not help. Instead move to questions widely asked in interviews.
Important Links:-
a.) Striver’s SDE Sheet (https://takeuforward.org/interviews/strivers-sde-sheet-top-coding-interview-problems/)
b.) GFG Imp Questions(https://www.geeksforgeeks.org/must-do-coding-questions-for-companies-like-amazon-microsoft-adobe/)
c.) Neetcode Blind 75 and 150(https://neetcode.io/)

6. Revise and participate in contests.
— Keep a track of questions you have solved in excel sheet and make notes for each question so that it becomes easy for you to revise. If you have time, then participates in contests held on LeetCode, GeeksforGeeks and other platforms.

Some good YouTube channels to follow:-
takeUforward, NeetCode, TechDose, Tushar Roy, Kevin Naughton, Nicholas White, Aditya Verma, Abdul Bari, Backtoback SWE

LeetCode guide — https://leetcode.com/discuss/general-discussion/665604/important-and-useful-links-from-all-over-the-leetcode/

These steps are both for beginners and intermediates in DSA. According to your level, you can start from any step.
Keep in mind not to rush during prep. Plan and prepare according to time you have. Solving 2–4 questions everyday is better than solving 10 questions. Also dedicate some hours everyday for practice.

Lastly believe in yourself that YOU CAN DO IT.

Happy Learning.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Manjunathkalburgi

Manjunathkalburgi

13 Followers

I am a software developer and international dance fitness instructor