4 ms·
Question: After preparing and failing at a faang interview, it seems clear the only way to pass this is to look through leetcode and memorise graph search patte
by tndibona 2y ago
Question: After preparing and failing at a faang interview, it seems clear the only way to pass this is to look through leetcode and memorise graph search patterns, bfs and dfs of trees, recursion patterns, etc. Because if I truly use my natural problem solving techniques, it takes me hours to days to solve the leetcode problems. At least according to the article and the tech industry, memorisation is intelligence. I’ve always understood the subject and avoided memorising all my life. I’m suffering massive imposter syndrome at this point. A part of me is considering quitting my existing tech job voluntarily because maybe I’m not supposed be around the smarter people who cleared the interview. Is the tech industry interviewing right? I suppose I need help.
- vundercind 2y ago1) I’ve had a career in tech for—holy shit, way too long. I’ve never had an interview that was terribly close to a FAANG-type one. I’ve also never had a hiring process take more than a week from interview to offer. 2) I don’t make FAANG money but I’ve consistently earned 2.5x+ median for a person my age in my area (I’m in like a 3rd tier US city, couple million people, several tech headquarters, a couple of which are household names) 3) FAANG interviews are a game. The point of how awful it is and how prep-necessary is to selection-bias the pool so the vast majority of candidates are suitable, to select for only those who want it bad enough (and/or have lots of free time), to make jumping to peer companies difficult to keep wages down (if that last weren’t the case, they’d find a way to stop doing it for people who’d already passed it one or more times—the process is expensive) and finally to build esprit de corps via hazing (hazing is very effective at that). Don’t take it personally.
- tndibona 2y agoThanks mate. Needed to hear this.
- currymj 2y agomost of the leetcode problems are based on material that a new grad CS major would have learned recently from taking a class that uses CLRS as the textbook. if this background is assumed then the key to success becomes building problem solving skills. if you haven't very recently taken a class that uses CLRS as the textbook, then it makes sense you would have to do more memorization and practice with those concepts.
- tombert 2y agoI interviewed and worked at Apple, but it's extremely variable between teams to take this with a grain of salt. Basically, the things you need to get good at is remembering the runtime complexity of the main data structures, and to be familiar with the core structures that are available in whatever platform you'd be writing code in. I was working on a Java-heavy team, so the important thing was to remember the various Map types, PriorityQueues, Stacks, arrays, and being familiar on how the references in Java work. The algorithm stuff wasn't too hard once you have a somewhat intuitive understanding of all these structures and when they're useful. For example, one thing that they seemed to love in interviews was having you implement a least recently used cache, specifically an LRU cache where every operation is constant-time. Easiest way to do that is to build a doubly-linked list and have those point to a wrapper type inside a hashmap, it's not terribly hard but it does require familiarity on which data structures are useful. In this particular case, the rookie mistake it so try doing it with a minheap.
- mkehrt 2y agoIf you ever need to do that in the future in Java for whatever reason, Java actually has it already in the standard library--it's called LinkedHashMap.
- tombert 2y agoYeah, I think I knew that even at the time, but I suspect if my answer was just "import java.util.LinkedHashMap", they might have been a bit disappointed.
- anon291 2y agoA depth first search is exactly what it says it is. I'm not sure what there is to 'memorize' about it, but yes, if you need to memorize the acronyms, I would think that's important.