| > Now, about most of the other things that were mentioned… I'm not convinced. Your graph example could just as well also be a tree example depending on the structure of the dependencies. Hash tables show up everywhere. Recursion is a natural and general programming technique. That only leaves linked lists, tries, and heaps from the original list. I'd agree that these are less likely to pop up in general front-end development, but it's not impossible to imagine them being useful. I'd rank the concepts from the list in this order (obviously very subjective): - Hash tables. Universal concept in programming. If you don't know this, you don't know how to program. - Recursion. General technique for structuring code. Not understanding this indicates a severe lack of exposure to code in general. - Graphs. Lots of data is naturally structured as a graph. I think it's natural to include trees in this category as well. - Linked lists. Classic data structure. They're mainly worth knowing about in order to be aware of their performance shortcomings with lots of data. It's less about knowing when to use one and more about knowing when not to use one. - Heaps. When useful, they tend to be incredibly useful. But they're not all that useful for front-end development. - Tries. Similar to heaps in this regard. Personally, I think for a purely front-end role that won't be focusing on the development of new libraries but just the usage of existing ones, I'd focus only on hash tables from this list and use the rest of the interview for more targeted questions. |