Disclosure: This post might contain affiliate links. If you click through and make a purchase, I’ll earn a commission, at no additional cost to you. Read my full disclosure here.
In this post, I answer questions from a reader, who is feeling burnout from Software Engineering (SWE) interview preparation. They have been studying theory and solving Leetcode questions for many months and they are losing their motivation. I believe that this is a very common problem, as it is very easy to spend countless months preparing and forget the end goal. My focus is to remind the reader what is their end goal and help structure their learning plan.
This post is part of a post series titled Reader Questions.
The reader’s email
My question is multifold. Before I ask you my question I would like to thank you for this!
I am planning to get a SWE job in top tech companies by September this year or by end of this year. My motivation is to increase my compensation, move to a different city, and some personal issues. I love solving interview problems and was never anxious about interviewing in the past. At this point in my life want to get into a big tech company and move to a different location asap.
I am having a difficult time preparing -> taking a break -> losing motivation -> coming back to where I left off -> forgetting what I did -> restarting from 0. This happens with each topic I pick.
I started my preparation on “theory” by going through sorting searching/recursion/trees/graphs. Dynamic Programming was going to be my stopping point for “theory”. I started DP after doing those topics, and naturally, I have kind of forgotten the fundamentals of those topics too.
For the past 3 months (since the beginning of 2021) I have been preparing theoretical foundations of DP. I read the infamous DP tutorials on quora, CLRS, Topcoder, etc. Then I moved onto a playlist on youtube by Aditya Verma. Now, this person is legit good. This is how I approach each problem: he mentions the problem statement, I pause the video, try to solve brute force/memoize, unpause and proceed.
Note: There are 50 (yes 50) such videos in his playlist. I went ahead pretty fine till video #42 (this one is on Matrix Chain multiplication). Then I got caught (and carried away) with some personal issues. And now, 3 weeks in, I haven’t made any progress.
What do I do to get back on track? I have solved 102 Leetcode problems in total by solving on and off during the past 3 years. I am feeling anxious as to when am I going to continue Leetcoding? When am I going to start System Design prep?
Happy to talk more about the prep strategy that I am using. Appreciate your patience on this.
Step #1: Keep reminding yourself why you are preparing for interviews
I think that you are getting burned out from this continuous interview prep. This is understandable, as it seems that you’ve been doing this on and off for 3 years or so. The best way to keep yourself motivated in these scenarios is to remember why you are going through this lengthy and tough process.
When I was giving the GMAT many years ago, I had written “750” with big letters on a piece of paper and I had hang it out on a wall. I would see this paper countless times every day. Maybe you can write something like “Get out of this city” or “Senior SWE at Google” (whatever works best) on a paper with big letters and put it somewhere where you can always see it. In my case, I ended up scoring 740, which was a huge increase compared to my first mock test where I had scored 610 or so.
The important part is to remaining motivated is to remember your own reasons for doing this. Keep your spirits high!
Step #2: Adjust your study plan
It seems that you might have started to burn out with the theory, after 3 months. Since dp is the last area that you want to cover, my advice would be to put it on pause for now and do some LeetCode problems, so that you return to the problem-solving mindset.
Take a look at my post “How to Prepare for Software Engineering Interviews” (section “How should I prioritize which problems to solve?”) and start with the Curated List of Top 75 Questions (also available as a LeetCode list). It will be a good checking point to figure out where your gaps are.
Continue down the list of LeetCode problems and when you feel stuck in an area, then spend the time to understand the theory behind it. This will help you be more targeted, as it will allow you to understand your gaps and weaknesses.
Step #3: Try to practise every day, in order to avoid losing steam
It is very easy to postpone interview practice one day. And then the next one. And the next. And suddenly, you haven’t solved a problem for 2-3 weeks. This is what happened to you.
My advice is to h.ave a daily goal, e.g. that you will spend X hours every day doing Leetcode (or that you will solve X problems… or whatever works best), no matter what. This is easier if you don’t have a family. However, try to stick to it and prioritize it throughout the day. If you’re feeling tired or not into spending the time, look at the motivational paper (“get out of this city”) that you discussed above.
Also, find the hours that work best for you to prepare. For some people, it’s easier to prepare in the mornings. For others, it’s late at night.
However, it is possible that some days you are really really not into doing this. In that case, what should you do? Take a look at step #4 below 🙂
Step #4: Use your downtime to learn from others
If you have free time, but not into the mood for another Leetcode problem, look at the above post in the section section “What if I need more detailed/structured solutions for some problems, because the idea is not clear, even after reading the solution?”. Find a YouTube video from that list with somebody solving a problem and watch it. Prioritize it on top of watching Netflix/TV/whatever.
This can also be an alternative, if you want to have a “day off” from Leetcoding (see step #3 above).
Step #5: Know when you are ready to stop Leetcoding
At some point, when you keep Leetcoding for a long time, it might be difficult to stop. The adrenaline of solving another problem, optimizing an already-solved problem or looking at somebody else’s solution is tough to overcome. However, you need to know when you are ready to stop.
You already have specific timelines for your interviews. You mentioned that you want to change companies by the end of the year. Also, you need to focus on system design questions. So, your time is not unlimited.
You’ll know that you are ready for interviews when you hit what is described at “How will I know when I am ready to interview?”. Use this as motivation. It helps to have a clear goal. Don’t get stuck on the exact numbers (eg if you solve easy problems in 7 minutes instead of 5), but use this as guidance.
In general, you will need to solve 300-500 problems within the next 3-5 months, so being focused is key.
Do you have any questions for me?
If you’re interested in advice about your career or your financial plans, feel free to Contact me.