4 ms·
They are controversial because they frequently don't let you look anything up and most developers are used to being able to do that as part of their normal proc
by fictioncircle 9y ago
They are controversial because they frequently don't let you look anything up and most developers are used to being able to do that as part of their normal process.
- nkozyra 9y agoThe actual algorithm is irrelevant, so looking it up wouldn't be helpful. The point is to find out if the developer understands complexity well enough that they won't build bad things, that they'll know how to avoid nested loop if they can, that they'll know what the cost of one approach is compared to another. If you look something up and the interviewer asks you what the O() of your approach is and you don't know, how can they feel assured you grasp these fundamentals? I understand why these are contentious, but I find people tend to miss the forest for the trees when criticizing the practice.
- fictioncircle 9y ago> The actual algorithm is irrelevant, so looking it up wouldn't be helpful. It isn't irrelevant if you are attempting to implement it correctly. > If you look something up and the interviewer asks you what the O() of your approach is and you don't know, how can they feel assured you grasp these fundamentals? That wasn't the original question in the comment I responded to and your attempt to re-phrase it as X when it was a question related to a specific algorithm is disingenuous. > Why would an iOS developer need to able to balance a binary tree? --- <removed a bunch of RL-related stuff that is pointless bitching about ppl we've fired>
- nkozyra 9y ago> It isn't irrelevant if you are attempting to implement it correctly. Exactly my point. Rarely is there one "correct" implementation. Understanding the choice you make and can support is the point of coding interviews. That's why they're so often done in pseudocode and/or on the whiteboard. If you can look stuff up you're not demonstrating a knowledge of the fundamentals. If you don't understand complexity and optimization, you will make mistakes even if you can look stuff up later. That's why these companies do these.
- fictioncircle 9y ago> Exactly my point. Rarely is there one "correct" implementation. For any given problem asked in such interviews there is certainly one correct implementation and if you believe otherwise you are not providing sufficient information to answer such a question. > Understanding the choice you make and can support is the point of coding interviews. That's why they're so often done in pseudocode and/or on the whiteboard. > If you can look stuff up you're not demonstrating a knowledge of the fundamentals. If you don't understand complexity and optimization, you will make mistakes even if you can look stuff up later. > That's why these companies do these. Honestly? This is part of the rant I was trying to avoid. 1) I've met developers that claim SHA-1 is a secure choice in 2017 and make other facepalm worthy claims that 5 minutes of research would have told them was a bad idea. 2) We've fired quite a few people who believe as you do precisely because they are so convinced they understand the fundamentals they don't look things up and make costly mistakes. 3) I've met accountants who can't correctly handle a 4-4-5 calendar that is integral to their jobs without looking things up. Similarly, I've met ones like you that genuinely believe they've memorized the "fundamentals" and repeatedly failed waste thousands of dollars. 4) I honestly believe anyone who refuses to look things up to double check is fundamentally incompetent. We all make mistakes and the only way to appropriately minimize them is to double check (i.e look things up) before hand and have someone else review it afterward. 5) I genuinely do not want to work with anyone who does not do #4. Ever. The sheer number of times they've attempted to shift blame onto other people before they were fired is simply not worth the hassle.
- nkozyra 9y ago2) and 4) and 5) are strawmen. It is -in fact- possible to understand the fundamentals and look things up. As to your assertion that there is one "true algorithm," the merits of that stand for itself, but regardless being able to explain WHY is what an interviewer should look for. "Go Google and implement some algorithm" does not provide a useful metric other than "can use a computer." All of this also ignores a more pressing issue: that looking something up often means getting bad results. Can the applicant draw on knowledge of complexity to distill their Google search? Without that types of test your answer is "hopefully." That's why Google, FB, etc start with whiteboard tests. Anyone can search and implement.