Danny Thompson recently posted this story about a CS student who was struggling with DSA(Data Structures and Algorithms) interviews and it sparked a lot of discussion online about the merits of these types of tech interviews. So I figured I would share my thoughts on the matter of DSA-style interviews and whether or not you should practice Leetcode.
DSA stands for Data structures and algorithms and these types of interviews are popular with tech companies to assess a candidate’s skills. They typically involve solving a coding problem using popular data structures and algorithms like Binary Search, Graph Algorithms, stacks, queues, etc.
You will be given a problem to solve and will have to explain your thought process as well as the time and space complexity of your solution.
There are dozens of videos online that will show you the process through a mock interview if you are interested in learning more about it.
Leetcode is a website that has a bunch of coding problems that you can solve in a variety of languages. It’s a popular resource for people who are preparing for these types of technical interviews.
These types of problems typically focus on popular data structures and algorithms(stacks, queues, Depth-first search, Breadth-first search, etc) and are usually solved using a variety of different techniques(recursion, iteration, dynamic programming, etc).
For all of the tech jobs I have had so far, I didn’t have to do these types of DSA style interviews. They always used other methods like take-home assignments or just talking about my experience.
When I was first learning how to code, a lot of people said these types of interviews were a waste of time because there were better ways to assess a candidate’s skills. The sentiment at the time was to skip these types of interviews and focus on building a portfolio instead.
So I didn’t bother with Leetcode or DSA and instead just focused on learning more about web development and building projects. I was able to get a job without having to do these types of interviews.
But that was before the market turned to crap in 2023.
After I got laid off in August of 2023, I was back on the market. As I was looking up jobs in my area it became very clear that a lot of companies were still using these types of DSA interviews. Unfortunately, I found myself in a position where I didn’t know how to solve these types of problems and would probably fail these types of interviews.
So I buckled down and started learning this stuff for the first time. I attended a workshop given by Anthony Mays(former Google Engineer) and signed up for his coaching. Since September, I have been slowly learning and practicing to get ready for interviews.
Even though I was able to land on my feet with another dev job without a DSA interview, it did wake me up to how unprepared I was for the job market today. So I decided to change that and learn the skills necessary to be successful in interviews.
Now, when I am ready to move on to another job, I will be better prepared for these types of interviews. 😀
Yes, it is possible but there are still plenty of companies that ask for it.
Whenever this conversation comes up online, plenty of people will chime in and say that they got a job without doing Leetcode. Heck, I even shared a similar story at the start of this blog post. But that doesn’t mean that will be everyone’s experience.
The fact of the matter is that every company handles interviews differently. Some will ask for DSA, others will do take-home assignments, and some will just talk about your experience and past projects. It all depends on the company.
So if you are looking for a job, you should be prepared for all types of interviews. That means you should be prepared to do DSA type problems because there are still plenty of companies that ask for it.
If you really want to say no to companies that ask for DSA style interviews, then I can’t stop you 😀. But ask yourself, can I afford to do that?
Some people will argue that they have gone their whole career without doing those types of DSA assessments and that is their truth and experience. There are also websites and GitHub repositories dedicated to helping people find companies that don’t do Leetcode.
You might be reading this saying, “Jess, I don’t want to do these types of interviews. I don’t want to work for a company that does that.” And if you have the luxury to do that, then go for it.
But some of you are reading this and need to take any job you can get. You might be in a position where you have been laid off and need to pay your bills. If that is the case, then you might not have the luxury to say no to companies that ask for DSA.
So my motto is, it is better to know DSA and wip it out when you need it than need it and not know it. 😀
I like the interviews that involve discussing my experience and past projects. I also like interviews that involve a take-home assignment because I find those more enjoyable and I think it is a better way to assess a candidate’s skills.
I feel like whenever this conversation comes up online, people will discuss the merits of DSA interviews and how they are not a good way to assess a candidate’s skills. But it doesn’t change the fact that there are still plenty of companies that use them.
Is the hiring process broken? Yes, it is.
But you still have to play the game to win. 😀
Oftentimes, people will use the phrase, “grinding Leetcode” which means they are doing a lot of Leetcode problems(200-300+) to prepare for interviews. Some people will even go as far as spending 6-8 hours a day doing Leetcode.
I don’t believe in grinding Leetcode and doing as many problems as you can. I think it is better to take your time and learn the material at a pace that works for you. It is better to do a couple of problems a day and understand the patterns and techniques than to do 10 problems a day and not understand what you are doing.
The topic of DSA-style interviews has always been a divisive one in the programming community. Some believe that they are a waste of time and that there are better ways to assess a candidate’s skills. Others believe that they are necessary and that you should learn them to get a job.
I believe that you should be prepared for all types of interviews. That means you should be prepared to do DSA type interviews because there are still plenty of companies that ask for it.
If you want to learn more about how to prepare for these types of interviews, I would highly suggest going through some of freeCodeCamp’s videos.