Hacker News new | ask | show | jobs
by sown 3958 days ago
Not to be a jerk but I'm going to sound like a jerk, but know it is from a position of love: linked lists and arrays are both fundamental data structures.

At the very least you now learned about them. I want you to read this: http://mikerowe.com/2015/08/otw-rejection/

And let me relate to you: I get turned down for jobs all the time. It is not because of capricious reasons that I wish were the case, but it's because of me not knowing something. Yes, it's maddening because they throw out good candidates along with the bad to minimize risk to them. The same facts happen to me and you, but try to have the perspective on them be as positive as you can.

3 comments

It sounds like he knew what a linked list was, but he was confused by the interviewer referring to it as a "list".
Well, the appropriate response is to politely ask for clarification. Sometimes asking a dumb question is a useful way to see how someone treats someone less experienced. I find treating interviewers with deep respect no matter how dumb they sound generally puts me in the drivers seat going forward.
If someone mentions array and list as alternatives in a generic CS context (not language specific), one generally familiar with the field should be aware of the concepts being referenced (one might reasonably ask to verify that the latter was a referenced to a singly-linked list, since while that's by far the most likely meaning in a generic context where it would be paired with an array, there are some other possibilities.)

That's not to say that failing to know that terminology should automatically result in rejection, but understanding that is not an unreasonable expectation when hiring something other than a narrow-focus language-specific code grinder.

I agree that the question needs improvement, it admits too much confusion unless there's a context. List is an ADT in Java and OCaml and some of the literature, an implementation in Python, C++ etc. Linked-list would have avoided that, although possibly suggests an answer.

Having said that, I'd be minded to look dimly on a candidate who tried to sidestep that question with 'but I use Python and they're the same there, so it's just a question of semantics' and did not try to clarify the question with me.

That's exactly it.
The most maddening part of seeing companies throwing good candidates out along with the bad is that it's actively harmful for getting good candidates. You're doing more interviews, which means more opportunities for a bad candidate to somehow slip through your filter.

It's a principle-agent problem - having a strict filter gives the interviewer a way to deflect blame when they hire a bad candidate. This is at the expense of the company both through additional bad hires and through extra time and money spent interviewing.

java.util.ArrayList
System.Collections.Generic.List<T> is an array.