The 4 Week Plan to Nailing Your Next Coding & Technical Interview

Be prepared for blood, sweat, and possible stress tears.

*Scroll down for the mega list of free resources for technical interview prep at the end! Good luck :)
UPDATE:
Added a new version of the interview cheat-sheet that can be downloaded & printed, and added new resources for data structure review!

Weekly Plan

Type 1: Practicing Problems Everyday

One way to break up review so that it is manageable is to set a consistent goal for each day. A simple, yet effective, approach is to do 1 easy and 1 medium problem each day & also 1 hard problem per each week. By the end of the month you will have finished 60 problems!

Type 2: Cramming in on the weekend

If we’re being realistic, most people don’t have the discipline to sit down for 2 hours each day for 4 weeks to review algorithms. What usually happens (for me anyway) is that I maybe spend about an hour per week day on review, and then cram for 10–12 hours on the weekend.

Just remember…

Do whatever works for you and your schedule — just make sure that you’re giving an honest effort. Set realistic goals for each week and keep track of your progress.

When starting off, do not worry about being fast with coming up with your algorithms — understanding always comes first; speed will come naturally later on.

Week 1 — Arrays and Strings

Arrays and Strings are like the bread and butter of coding problems. While they are basic structures, they can easily get complicated and test you on more complex concepts.

Goal for the week: get into the ‘algorithm’ mindset and feel comfortable with basic data structures. Refresh your memory on basic concepts like recursion/binary search and handling off-by-one errors.

It’s likely you haven’t touched on these kinds of problems for a while so this week will mostly be for you to ‘ease’ into the next few weeks of technical review.

Week 2 — Binary Trees and Linked Lists

Everyone in CS loves binary trees — I have no idea why. I also don’t know why the binary tree is also always upside down… but I guess that’s another discussion altogether.

Goal for the week: start becoming critical of runtime and efficiency in your solutions. Understand BFS, DFS, & pros and cons of different approaches.

Binary tree and linked list problems are not all that different from strings & arrays. Many of the concepts will overlap — the algorithms just change slightly since the behavior of these data structures have unique features.

Week 3 — Dynamic Programming & Greedy Algorithms | Focusing on Optimizations*

This is where the fun stuff happens. These questions are usually thrown to test your critical thinking and understanding of time/space complexity.

Goal for the week: start proactively challenging your own solutions and think of possible optimizations for either time or space. Be able to implement your solution both top-down (recursion & memoization) and bottom up (iteratively).

Being a good engineer means being able to explain why one approach is better than another & also have the ability to implement it in clean code.

Week 4 — More Graphs & Final Review

At this point you’ve covered basically 90% of what they will likely ask you. It’s important for you to review hard questions you encountered & go back to redo any problem may have gotten stuck on.

Goal for the week: review, review, and review all the concepts! Start doing mock interviews, timing yourself, and practice talking out loud when doing the problems.

While graphs are sometimes asked during interviews, I believe you can get by with just knowing the basic graph search algorithms.

Data Structure Review Resources

Resources for mock interviews and questions

“One leetcode a day keeps unemployment away!”

*The following resources are not free for long term use, however I highly recommend them as they have helped me and my friends ace our interviews & secure job offers!

This Holy Grail book: https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949

During the interview cheat-sheet (I keep this paper next to me during a phone call coding interview)

*Updated digital version of my original cheat sheet
Original cheat sheet

For a guide on how to work through problems during a live coding challenge in an interview, you can read more here: Breaking It Down: How to Approach Any Technical Interview Problem

Full-time cat & dog lover, part time developer 💖 I like writing to help others! @helenzhxng | Previously @Paypal & @NASA , now @Squarespace— bit.ly/connect-hz