Hacker News new | ask | show | jobs
by yeukhon 4641 days ago
EDIT Sorry. If you can't implement linked list and think that first item is too much for an interview, HN is not the place to swing around. Keep downvoting lol.

TL; DR version:

It isn't fair to throw a company out of a windows because they are serious about their hiring process. It totally depends on their company's growth need! First bullet point is extremely fair but the rest aren't and I agree on that.

Longer version: A lot of hackathon projects become startups and many of them don't require any algorithms. They can use libraries from Python and Ruby to do things they want to do. They can get away with a couple n^3 in their code and customers are okay as long as the service is stable.

And then there are startups out there building products using real algorithms that really require the knowledge of graph and sorting, dynamic programming and etc. If they need an engineer that can build on top of existing algorithms, then that's what they need.

I was a former intern at Mozilla and my interview was very simple and I really appreciate that. But what I do doesn't require me to know any sophisticated algorithm. I can survive with knowing Python and getting around with my brain. But interns on Firefox, servo and Rust probably had to face harder interviews, more tedious algorithmic types (although I heard most of those are basic too, like linked list and talk about C++).

I am also looking for new internship this winter and I fear these algorithmic interviews too, but some companies have serious need and they need people who can at least implement a linked list is important. I don't bother to read what their needs are.

I did roll my eyes when I looked at "3 hrs", "4hrs". That's a lot. But the first item: you don't even know how to write a linked list using your favorite language? Then that's the end. Linked list is not hard - you are not writing in C++ in this case.

The 7.5 hr is a different story, but I won't trash at the first point.

2 comments

"Implementing a linked list" is essentially measuring 1 of 2 things:

1. How long it has been since you graduated from college. The further away the less likely you will remember how to do it, because you will never do it after college.

or

2. How often you have interviewed for other positions, because that is the exception to 1.

I'm over 10 years out of college. Last time I implemented a linked list was probably in my second year of a CS degree.

I still remember and will probably never forget how to at least psuedo-code a linked list. But you are right, I have never implemented it after college.

However knowledge of pointers, lists and b-trees have been very helpful multiple times throughout my career.

> However knowledge of pointers, lists and b-trees have been very helpful multiple times throughout my career.

Indeed. And such glorious moments they are when choosing the right data structure drastically improves performance.

However, if I were interviewing for a Rails developer position, the last thing I'd anticipate having to bone up on is algorithms and data-structures. I'd be expecting to be asked about... well, doing stuff in Ruby on Rails.

There is a reason why we have this thing called "time". You don't suddenly apply for a job do you?

If you were senior, 10+ years why would you be interview at this company? I supposed there are better positions out there for you.

Doesn't make sense with time. I didn't remember how to implement linked list after my class but I picked it up again over the summer as hobby to learn basic algorithm again.

I don't understand the point you are trying to make.

You're saying implementing linked lists are good only if you are trying to hire recent college graduates who will prepare for an interview?

I never said that. I said if people think the first bullet point is too much to handle, that's blatantly stupid. It isn't like the company is asking you to implement a red-black tree. I am not a fan of puzzle solver so I hate that kind of interview. But linked list? Come on.

it's like asking someone "Well, explain how list is implemented in Python" when you claim you have been programming with Python years. Well, if you can't even answer that question with a good estimate (it has a double space every time you create a list for example) then you probably shouldn't call yourself a Python guru.

"Not the place to swing around"? Firstly, there's plenty of entrepreneurs here who don't code at all. Secondly, that's a really silly thing to say. Do you honestly think that you can't be a great Rails engineer without having fluency with linked lists off the top of your head in an interview type situation? I can think of a thousand questions that would give me a much more accurate idea of how good a candidate would be as a web developer and the day to day issues they would face.
Sorry, that's not silly at all. You are taking the wrong context and you are fooling yourself thinking it is unimportant to question abililty.

Linked list is the simplest data structure one can pick it up in 5 minutes in using languages like Ruby and Python.

Do you honestly think any serious entrepreneurs would want a company growing hire someone who can't even tell you the basic of a linked list (can you imagine one cannot even tell you what a linked list is and the time complexity?)

You didn't even read my comment at all. A lot of things can be done by integrating with the ecosystem out there; but many of the libraries out there are horribly written and there are things you just can't build out of these libraries you find on PyPI.

People who build successful products cannot rely on an ecosystem forever. There are crucial components must be built by engineers using data structures and algorithms we know from textbook and then write custom algorithms that work for the use case.

Too bad. Some people just want to get away with ecosystem all the time; truth is you just cannot.

If a candidate never heard of linked list, wtf does that say about this candidate? Why would I want to hire him if he didn't even attempt to study a few one? I don't expect anyone to write a damn red-black tree algorithm; I can't and I doubt few people is capable of writing that algorithm from scratch (or even remember half of the properties).

Please describe a use-case for linked lists in Ruby and/or Rails where Array would not suffice.
Stop this stupid ruby python library is suffice. If you don't bother to read my comments above how libraries are not enough, then forget it.

Why do we even bother to teach linked list or any algorithm if we can just rely on all the libraries out there?

So we can use them as shibboleths when interviewing people for Rails and Python jobs, apparently. But evidently I triggered some anger management issue of yours, so I'll just walk on eggshells from here on out.