Alan Truong (Head of Engineering, EntryLevel)
Is it essential? - No. Is it nice to know about? - Probably.
In saying that, most smaller startups don’t care about being tested on data structures and algorithms. They just care that you have the ability to learn and pick up new technologies and/or tools quickly
Adrian Groch (Software Engineer, Pendular)
Interesting question. So I think having a degree in some computer science/IT specific field shows you already have a basic understanding of these things, and don't really need to be interviewed on them - it’s assumed knowledge.
I dont think it’s worth interviewing on those questions, unless they don’t have a degree in said field, then maybe it might be worth clarifying that it's understood by the candidate, however I personally wouldn’t hire someone in an early stage startup without a degree in CS/IT.
I personally wouldn’t be interested in a job that requires me to know data structures and algorithms inside and out and force myself to rote learn them for an interview - I’m a software developer, I spent just as much time reading up on code than writing it. It’s practically impossible to know everything and a good portion of our time is spent reading documentation, googling questions, reading up on forums/stackoverflow/github etc. If I don’t know an algorithm or a data structure, I’ll read up on it, and use it accordingly. If I was to look for another job, I’d actually ask prior to the interview if there is a coding quiz/test element to the process. If so, I’d decline the interview. Note, there’s a big difference between a coding quiz/test and a take-home exercise. I'd be happy to do the latter.
Jared Fraser (Senior Software Engineer, Mr Yum)
It is common to be tested for a decent understanding of DS&A. Common things such as arrays, queues and lists. Having a good understanding of complexity theory will also be a benefit to showcase.
Dale Baldwin (Senior Software Engineer, Culture Amp)
I have what is effectively a glorified Arts degree so let’s go with no. Those sorts of questions are sort of an industry myth in my experience. Companies like Google and Facebook might ask for those skills but unless you are doing math-heavy computational work or data science it’s probably not a requirement especially if you are looking for a Front End role.
Having solid math skills is going to help you out for sure but I would be surprised if someone is asking you to do complex algebra on a white board during an interview.
Will Parker (Senior Software Engineer, Lendi)
While there is definitely value in learning about data structures and algorithms it’s very rare you’ll actually use these skills in your day-to-day software development. I’d highly recommend at least having a basic understanding of data structures but unless you’re going into a very specialized field or doing a lot of data processing you’re unlikely to use any specific algorithms. Startups for the most part know this and it’s rare you’ll be given a data-structures and algorithms test during your application process. It tends to be the large tech companies that receive huge numbers of applications that use these sort of tests to quickly filter out less academically capable developers. I’ve been a developer myself now for over 12 years and recently failed an algorithms test with Amazon but it’s really not necessary to know this to be an excellent developer and the time spend learning these is often better spent learning something more practical and immediately useful.
Jessica Sun (Software Engineer, Atlassian)
I can only speak from my own experience and from the people I know. I think it was around 30 interviews that I went through to date, and yes, having a solid knowledge of data structures and algorithms is essential to landing your job as a software engineer. There could also be some rounds about culture and values which some companies also emphasize on but most questions will be technical in which you are given a challenge and have to code and talk through your solution.
Engineers want to assess how you break down and tackle a problem. I can’t emphasize enough how important it is to clearly say out loud your thinking process as you code. Work wise it is very unlikely you will be designing graphs on a typical day but it prepares you for things like pair programming and problem solving.
John Wesley Salvador (Senior Software Engineer, Zeller)
It is good to know data structures, but in my 12 years of working experience and tons of interviews, I have never come across those topics in an interview as a frontend engineer.
Pratik Ghimire (ex-Software Engineer at Shippit, Senior Consultant - Developer at Thoughtworks)
There will most likely be a question or two during the interview process. However, it is not expected to know everything about them. It’s the approach of problem solving which will be measured. Knowing the basics would be enough in most of the cases.
Khushbu Patel (Senior Software Engineer, Superhero)
I am really against it. I have seen Frontend developers asked to solve Binary tree Algorithms, while most of the time they are working with UI and animation. Some people don’t want to change. I would recommend checking Glassdoor and looking at previous interviews for research.
Interview processes are not standardized and It depends from company to company, but there is a shift and there are more real life questions now, compared to solving data structures.