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
Hello!
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.
My response
Step #1: Keep reminding yourself why you are preparing for interviews
Hello!
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.
Good luck!
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.
OK, thanks, that makes sense when the positions pay that highly. Some chemical engineers make that kind of money, I did, but not in my 30’s. I knew there was something I wasn’t seeing correctly. That puts a lot of pressure in the interview, it kind of reminds me of what my chemical engineer son went through to get into medical school and then to match in a high demand specialty, except it sounds even worse. Thanks for explaining that, the tech world is indeed its own kind of thing.
No problem! Indeed, the tech interviews are really competitive.
I don’t get this. I am a chemical engineer and received dozens of job offers throughout my career. I never had to apply anywhere, they sought me out, and that was true of my coworkers as well. They might ask me general questions about my projects but the idea that someone would give me some kind of technical exam before offering me a job, that’s ludicrous. They were trying to sell me on the job, not trying to find out if I was good enough. If I wasn’t good enough to do it they wouldn’t have called me in the first place. Is this just some weird facet of the software sector? Any company that expected me to study or prep for an interview wasn’t a good enough company for me to even consider. It was up to them to try to convince me to take their job, not to judge if I was worthy of it. After a couple of years my previous body of work became my qualifications for the next job, not some interview quiz. The idea of burning out over interview preparation versus burning out from a demanding job, that’s borders on ludicrous as well. Please explain how this is even possible. Is that really how the world of an SWE works?
Hi Steve,
I cannot comment about the chemical engineering positions, since I don’t know the types of companies, the salaries, the type of positions, etc.
However, in the tech sector, there is a huge number of companies. The quality of these companies and their corresponding compensation varies a lot. You can indeed find companies that hire people with much less hassle. However, the top companies do pay top salaries for top-quality Software Engineers. As I said above, I don’t know how much would be a total compensation for somebody in the chemical engineering space, but a Senior Software Engineer in a top company could be getting paid $350k-$450k/year (sometimes before they even hit 30 years old). So, that’s why these companies have a very high bar when they hire people.
It is indeed possible that the chemical engineering world is different. However, in the tech space, it is not possible to get hired by a top company without an interview. Recruiters and staffers do reach out to great candidates every day, so great SWEs do get multiple messages for interviews.