Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You need people who know how to find the answer to such questions. I would much rather hire a Java developer who knows how to implement equals() and hashCode() correctly, with a unit test to validate it, and knows that if they have any questions on say searching and sorting that they should reach for their copy of Knuth v3 first before writing a single line of code. That to me is a much more valuable employee than one who can spout off how a Linked List works.

90% of programming is problem solving. Knowing how to solve a problem is much more useful than being able to spout out the right answer.

(To echo the first poster. Number of times in 20 years outside of a job interview I've had to implement a Linked List: 0)

IMHO Google, Facebook et al are largely the cause of the current recruiting mess because companies who don't understand what makes a good employee for their company have been cargo-culting Google, Facebook et al in the hope that will "make it rain" for them.



> You need people who know how to find the answer to such questions.

You can't look for an answer if you don't know what question to ask.

This has to do with that whole "conscious competence learning matrix" stuff, more entertainingly described by Steve Schwartz as "shit you know, shit you know you don't know and shit you don't know you don't know" [1].

The purpose of interview questions about algorithms and data structures is to see whether the candidate has the basic understanding of how the most fundamental data structures work and when to use them; whether they understand the concept of complexity and why it matters.

If you think these things don't matter, you're taking them too literally. Knowing when to use a linked list, when to use a binary search tree and when to use a hash map might be the difference between your software being able to scale or not.

[1]: http://jangosteve.com/post/380926251/no-one-knows-what-theyr...


I disagree.

Asking algorithm trivia questions will tell you nothing about whether or not the candidate can apply that knowledge in the real world.

A large part of what I do involves coming into teams that are struggling with delivery, and helping them get back onto the path of productivity.

More than once, I have had developers that could (and have) leave and easily pass a Google interview. They knew more about computer science than I probably ever will.

And in many of these cases, the code they wrote was actively harmful. Unreadable, tangled messes, that nobody else on the team could unwind.

Knowing how and when to use monads, or bloom filters, or any number of other fun tools separates the supermen from the mere humans.

But before you need to care about that, there are more fundamental concepts that matter. Like being able to write readable code that conveys intent, knowing how to write tests that are flexible yet specific, and so on.


Who said anything about trivia? Asking trivia is pointless and any company dumb and/or lazy enough to base their interviews on trivia deserves the bad hires.

While we're at it, who said anything about monads and bloom filters? The former aren't really data structures or algorithms, the latter would hardly qualify as "the most fundamental data structures".

Also, I don't remember saying anything about the irrelevance of writing readable code and flexible-yet-specific tests.

In short, you're certainly disagreeing, but apparently not with me.


As someone else who has also been in the industry for quite a while, it used to be fairly common for me to implement linked lists back when I was programming primarily in C. But lately, yeah, it has been mostly abstracted away, even in languages where doing pointer operations is useful or allowed.

As far as companies attempting to emulate Google or Facebook when it comes to interviewing, this sort of thing is even older than either of those companies -- in the mid-90s it was common to attempt your own spin on the "Microsoft interview".

I totally agree with the basic point, though... for all of the supposed rational thinking that goes on in tech, hiring people is mostly cargo cult and voodoo magic.


I don't think interviewing candidates based on basic knowledge of CS is cargo-culting Google and Facebook. I think this predates those two companies. Also, someone that implements hashCode() correctly and can't spout off how a linked list works, is a problem for me. I guess it is subjective.


Your last paragraph really resonated with me. I personally could not emphasis my feelings and opinion towards "companies who don't understands what makes a good employee for their company" by any means.

I'm currently a CS student and I do find many of the startups locally do involve loads of problem solving on the job, which is beneficial from general algorithm knowledge. Although I believe it's more so the ability to understand the concepts as opposed to spouting knowledge for any specific abstract data type or algorithm.

But by any means all companies are not similar, and outside of the purpose of prodding for problem solving aptness it is definitely not the best topic to discuss in an interview to find the /right/ employee for many of the companies of which do ask it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: