Master plan to crack your next software interview

Photo by Amy Hirschi on Unsplash
  • Problem Solving
  • Algorithms
  • System Design (If preparing for senior SDE role)

Timeline

Start planning backwards. When is your next important interview? Let's say you have 3 months for the interview, plan to invest half of the time (6 weeks) for revising and practicing questions on focused areas. For the second half you can focus on general problem solving on mixed concepts and solve past coding interview questions of the companies you are appearing for.

Schedule

Photo by Emma Matthews Digital Content Production on Unsplash

Strategy

Start with what you are most comfortable in and has some context on the concepts. Pickup your notes for reading summary of all those DS Algos or take help of books and YouTube videos. Examples to start with are Arrays, Linked Lists, Sorting and Searching Algos.

Revision

If you have notes then you can revise from those, if you don’t have one this might be the great time to start so that you can use it for your next preparations. It's a onetime investment and will help tremendously in the future. You can either use OneNote/Evernote to write digitally or use a physical note book (old schools is the best :P).

Resources on data structures and algorithms

15 Data structures in 5–10 mins each by Gayle Laakmann McDowell

Learning path with topic wise concepts and problems

A book that cover all concepts and types problems for interviews

Practice

Photo by Ilya Pavlov on Unsplash

3 step method to solve any problem

After reading and understanding the question completely, start figuring out the solution in your head. Use notebook to write the assumptions and come up with most simple solution which might be brute force. Create 2–3 sample data to test through your solution.

  1. Write the actual code using pen and paper referring pseudo code from last step using any preferred language. Writing on paper is important as it makes you think of all edge cases and nuances of problem which you might have missed in solutioning phase. You won’t get help of IDEs and Intellisense, this emulates online coding interviews where you have to write code on word doc (like in google).
  2. Write the code on your computer and run it through all test cases you created. this is where you will find out if there are any build or run time issues. this will help in machine coding rounds, which are common in start-ups as qualifiers round.

Sources to practice

Practice paths

System design preparation

If you have 2+ years of experience and appearing for Senior positions like SDE 2/ SDE3 then you will also need to prepare for design rounds. It's necessary to have good understanding of design systems, patterns and scalability. If you have some experience of design in your current company then you might already know few things and it will help you in the interviews

Conclusion

  1. Start preparing 1–3 months before the major interview, plan in reverse from interview date to today.
  2. Create a daily schedule and stick to it as much as possible, put 2 slots in a day. On weekends do coding marathons/challenges of 3–4 hours each.
  3. Read and revise the basic concepts, use your notes or read online summaries.
  4. Practice as many as possible. Solve the problem using 3 step methods. Iterate till you get the best solution
  5. Prepare for design interviews using sample design videos on YouTube. Practice with your friends and brainstorm ideas.

Software Engineer 2 at Microsoft with 6+ years of experience in Software Development | CSE Grad from VNIT Nagpur | Travel Enthusiast | Design Thinker