The Importance of Learning Algorithms and Data Structures for Technical Interviews(also a little bonus at the end)
Tags: beginners, career, discuss
Published: 2019-12-19 23:38:15

**Disclaimer:** I first want to start this post by saying that anything I mention here is based on my own opinion and from things that I have learned along the way thus far. Since it's based on opinion, I know I can definitely be wrong and I'd be more than happy to have a discussion and learn. So feel free to let me if that's the case! Now that that is out of the way, let's continue.

If you're trying to get into a big company like Google, Microsoft, Amazon, etc. then learning sorting/search algorithms and data structures is very important. If you're trying to get into a startup or very small company, then learning those algorithms/data structures is only slightly important. Let's discuss why that is.

When it comes to big companies, it's become more and more apparent to me that being able to solve problems that are given to you during your technical interview, already knowing these algorithms and data structures is tremendous help to passing your interview and getting the job. Now, I'm also not trying to say that just knowing these things well will be enough to get you a job at those places, because being able to talk through the process of you solving the problem and showing that you're able to deal with difficult situations is just as important. But without knowing these things like what a Stack data structure is or Quick Sort algorithm is for example can really hurt your chances of even getting an in-person interview since they do online screenings where all you do is solve either one or two coding problems within an hour. If you can't do those problems effectively, they won't take you for consideration anymore. (Also a side note to this, make sure you also understand the Big O notation for time complexity and space complexity when solving problems.)

Now let's talk about when it comes to smaller companies. Knowing algorithms and data structures is still fairly important because it will help you become a no-brainer hire, which means there's no doubt of you getting hired. But, the good thing about smaller companies is that they are more willing to hire beginner programmers as long as you can show them that you're willing to learn, which means that you don't have to find the most efficient answer to whatever problem you're solving.

And that's it! I really only wanted to just share my thoughts on the importance of knowing algorithms and data structures in general. If you happen to agree with me and you're in the process of looking for a job, make sure you study up on all of them and do as many problems as possible before your next interview! If you want to discuss further or maybe want to know some resources for problems, let me know and I'd be happy to hold that conversation.

But Wait! I mentioned a little bonus in the title and if you've read this far then you're in luck. I recently found a website that I thought was really cool. [levels.fyi](levels.fyi) is the website and it's used to check salaries for software engineering jobs and their associated levels. This information is awesome to understand when you should negotiate or not negotiate on a salary when given a job offer. All information is inputted by the software engineers directly which means it might not always have the company you got a job offer from.