3 ms·
I once walked into an interview with such questions. On the first question I asked them why they asked the question. The interviewer looked puzzled and asked me
by bastijn 9y ago
I once walked into an interview with such questions. On the first question I asked them why they asked the question. The interviewer looked puzzled and asked me to finish the question. I again asked him why, what part of my job would require it. He couldn't answer that question whilst he was an engineer at the department I was interviewed for. I asked a follow-up question if he had the same questions when he joined, and if he ever felt the need for that knowledge particularly. He responded it was good to know, companies like Google and Amazon did the same. I walked out five minutes later thanking them for their time. I could have answered the question easily but what for?
In the off chance that someone stumbles along and blindly copies this into interview questions for his company. Think again, realize what your company needs and tailor your recruiting process for that instead of copying stuff others do.
Thanks.
- ng12 9y ago> I could have answered the question easily but what for? To show that you're not a complete diva who's willing to put in some work even if it's unpleasant? The question I ask is not real, either. It's entirely contrived. But I ask it because it's the best way I know to identify candidates who: 1. Can think critically about a data structure. 2. Can communicate with me about how to solve non-trivial problems. 3. Can translate an idea into code without thinking about it too hard. Given lots of time there are much better ways to test a engineer for these attributes. Given an hour it's about the best I can do. That's not to say everyone who asks these types of questions does it well (I think there's a fair bit of cargo-culting around "The Google Interview") but if you're unwilling to even humour me I think walking out is the best response for both parties.
- bastijn 9y agoFirst, if he would have given that answer instead of saying others did it I would have answered the question. However, his answer indicated they asked just because of asking. Second, even when you have those reasons ask questions on actual situations that would occur on the job. You run a large C# code base that struggles with its size and configuration complexity vs flexibility? Ask questions on how he would design a new speculative module for the Platform. What kind of pitfalls would he foresee? What would he focus on? See if his answer include your struggles indicating he understands what his daily job is about. If you search an engineer to speed up your image processing pipeline which is C++, data structures can be fine but don't forget that before optimizing them you probably have to spend a lot of time optimizing the design of the entire pipeline so also ask questions about that part. My main advice is think before you ask. If you have valid reasons, feel free to ask data structures. If you don't, think again.
- ng12 9y agoI think that's putting the cart before the horse. Every company I've worked for has had a hard enough time just finding people with basic coding literacy. Finding somebody with good problem solving, communication, and programming skills is the hard part -- wondering if that person is the guy to architect a specific aspect of our platform is secondary. I can't speak for that job in particular but if half of your promising-looking candidates are getting weeded out by simple programming puzzles the bar tends to shift.
- bastijn 9y agoIt was meant as an example. If I would interview for an architect I would probably ask such a thing as I need to know if s/he would be capable of thinking ahead and outside of the direct requirements. For an engineer I would ask different questions. However, if I interview them for a job that does not focus on performance or scalability I would rather ask questions based on situations they run into than data structures. Data structures would be a last resort if I had no other options for questions. For most knowing when to use a certain data type is sufficient for me. Like math, I don't need them to give me the full proof of the theorem as long as they know it exists and can apply it in their daily work. That doesn't mean I wouldn't like a candidate who has it all of course. But those are scarce here, and probably everywhere as you mentioned. I am already happy with a person who can do the job s/he was hired for and hopefully more. Again, if you have valid reasons to ask what you ask, do. If not, think again if there are better alternatives is all I advocate.
- cakedoggie 9y agoIsn't that answer obvious they? They need to know if you are skilled enough, and this is the quickest way to find that info out.
- bastijn 9y agoSkilled enough to do what exactly? Answer data structure questions? This is my point. Are the question relevant to the job and does their answer qualify them for it?
- curiousDog 9y agoNon-trivial is a subjective thing though. I see people asking the edit-distance problem for example, that was an award winning research paper a few years ago! Also, how do you differentiate between candidates who've seen your question before vs others seeing it for the first time? Most interviewers calibrate on one question. I think the scales these days have tipped on the side of luck. If you've practiced a shit ton of questions and you're asked one of them or closely resembling them, you're golden. Otherwise, you're screwed! I know of several current Googlers who'd attest to this. In addition to that, it's entirely possible that the candidate is tired after 5 rounds of interviews and isn't able to think straight. But you're right, I don't think a better alternative exists yet.
- bastijn 9y agoDon't forget companies the size and status of Google run these questions to quickly reduce the number of applicants. They accept a large number of false negatives in favor of a false positive. They have that luxury but if you don't realize you loose a lot of good candidates because of it. Also, I think the better alternative is to ask questions you currently struggle with in your daily work. Just ask around in your department(s). There are always good interview questions to be answered that are close to today's issues.
- watwut 9y agoI always wonder about genius developers who throw fit when someone asks them to implement linked list (the actual chapter in the linked article). I understand the complaint when people get asked to balance red black trees out of nowhere or something else more complicated, but this article is very basic. Yeah, this can be memorized pretty easily, but "lets talk about how passionate you are" which is invariably suggested as alternative is even easier to fake for people with good social skills and charisma (and puts actual minority of real geeks at disadvantage).
- logfromblammo 9y agoThe only reasonable, real-world solution to the linked list question is "How many bids do you need for me to collect for licensing the third-party code library? Three? It's usually at least three. I'll look at Infragistics, JetBrains, and anything I can find that's open source, and get back to you by COB. Are there any specific features that the linked list has to have? Any deal breakers? Do we need official support, or is community forum support enough?" You ask me to do a linked list--in 2017--and I'll have to start determining whether that smell is "Not Invented Here" or "Cargo Cult". How many languages don't have such lists as part of their standard libraries now (or at least part of a common libre-license or gratis-license library)? But no... I'll just continue to answer the question as though my CS prof is grading me on it, and just convert my concerns into salary expectations for the negotiations phase. Any company that asks such questions is obviously bad at gauging real technical skill, therefore I should ask for way more money than I think I am worth, and invest all of my limited acting skill into believing that number. They are relying on me to tell them how good I am, so I will game the system, cram for their stupid questions, and tell them I am the absolute best. Then I can spend all my working hours copy-pasting the answers to already-solved problems from the Internet. The real genius developers are spending their free time helping lesser developers on Stack Exchange/Overflow for free, because the companies that hired them have no idea how to make use of that level of expertise, and that's the only way they ever get to encounter any fun or interesting problems to solve.
- ng12 9y agoI'm going to start asking linked-list questions just to weed out people who take it as a grave insult to their ego.
- captn3m0 9y agoThanks for doing this. As an interviewer I like to be transparent about my interviews and explain to the candidates what I expect in the answer/code before going ahead with the question.