Live data from Hacker News

Ask HN: What is the point of algorithm-heavy interviews?

news.ycombinator.com

21–30 of 104 posts

Re: Ask HN: What is the point of algorithm-heavy interviews?

#21
post #18

To create a barrier to entry that weeds out over 90% of applicants. IMO, this is the sole purpose of algortihm-heavy interviews. Companies like Google can put out a job ad and receive thousands and thousands of applicants, and the sad truth is that many of them could probably do the job that is required of them. By putting in a loose requirement around what is essentially problem solving via known algorithmic techniq…

Yes everyone is a web developer who would never need to learn about "algorithms". Anything that works against this HN crowd is obviously a big plot against them. Never mind that most people can't differentiate when a map is better over a list. Or why binary search is fast. Don't know how or when to use a graph. These people are one trick ponies and never tend to grow out of their comfort zones. They don't have the foundations to work on new and exciting projects. But obviously it's the companies fault for wanting someone with strong fundamentals.

Re: Ask HN: What is the point of algorithm-heavy interviews?

#23

> Who really cares about algorithm on daily bases. I find that statement really depressing to be honest. Why would you be so happy to deprive yourself of a huge source of potentially useful information that is the foundation of our field that shouldn't take long to learn? Algorithm and data structure knowledge helps you write processor + memory efficient code that scales well, and stops you reinventing the wheel when…

This is like saying that a car mechanic needs to have a PhD in thermodynamics to work on internal combustion engines.

99.9% of coders just need to know what things in their chosen language(s) are performance sensitive and what aren't - very few actually need to know the exact reason why. And even fewer need to be able to improve on said algorithms.

If something needs sorting, you call the sort function in the object. There's absolutely no need to know what algorithm it uses, the only thing that matters is that the end result is sorted correctly.

Re: Ask HN: What is the point of algorithm-heavy interviews?

#24
I've interviewed a lot of candidates (~200), and my interview generally looks like:

* I describe the problem

* They ask questions to figure out parts I didn't specify (which lets me evaluate how they handle resolving ambiguity)

* They propose a brute force solution, and I ask them how quickly it runs and how much space it needs (talking in big-O is a fast way for me to tell if they understand their solution)

* They propose a much more efficient solution (often with hints) and we again talk about time and space complexity (which again lets me see whether they understand how to compare solutions like this. I'm also happy to hear other tradeoffs like "this is optimal but too complicated to be worth maintaining")

* They code their solution (which lets me see if they can actually code, and check how well their description of their algorithm matches their actual algorithm)

This isn't a daily job sort of task, but it's not far off, much faster, and very information dense. I'm not testing "do you know the right algorithm" (and will hint that part).

Re: Ask HN: What is the point of algorithm-heavy interviews?

#25

> Who really cares about algorithm on daily bases. I find that statement really depressing to be honest. Why would you be so happy to deprive yourself of a huge source of potentially useful information that is the foundation of our field that shouldn't take long to learn? Algorithm and data structure knowledge helps you write processor + memory efficient code that scales well, and stops you reinventing the wheel when…

> why do people make such a big deal about this?

You're arguing a point they didn't make.

The point they made is that most coders don't need to worry about algorithms on a daily basis, and that reflects poorly on them in interviews where they expect you to not-so-subtly fake your cleverness with "aha!" moments when you're being drilled on the fine details of complex algorithms that you maybe once needed to implement in the past 20 years. (On the rare occasion that these coders need to worry about algorithmic scaling, they will re-use an implementation from their fine standard library or adapt one from another source, without turning it into a brain exercise of reasoning about and building the whole algorithm from scratch on whiteboard while a bunch of strangers are sitting there judging and prompting you to explain your thought process as you go).

It's nothing to do with whether you have the fundamentals of basic algorithms down or whether you can select an appropriate algorithm for a real world problem.

Re: Ask HN: What is the point of algorithm-heavy interviews?

#26
post #19

It evaluates someone's capacity to approach a complex task It's like in school, you learn many things, not necessarily useful in your daily life, but you learn to learn, and that's what they can see when they confront you with a challenge Of course, some people who heavily train for this have maybe an advantage, like in school exams.. Personally I never specifically trained for an interview, I just like algorithms, d…

The problem is that knowledge needed for exams is needed for exams only, and does not correlate with your overall expertise.

I can assure you algos and data structures are a big part of systems software. Without these it's impossible to write efficient and correct code. It is these fundamentals that have made me easily switch profiles from VR to Self Driving to Cloud.

Re: Ask HN: What is the point of algorithm-heavy interviews?

#27
The question is: what mistake should the developer not do?

A bad developer will not implement properly the separation between infrastructure code and business code.

A bad developer does not care about readability, so the code will be laden with functions that have side effects, and things of that nature.

A bad developer does not comment their code in a meaningful way.

None of these are easy to find out in an interview. It turns out that questions about algorithms are good proxies to find people who are interested and proficient in computer science.

Sure you will miss some good developers that aren't good at algorithms, but there is a better chance that you do not hire bad candidates.

Re: Ask HN: What is the point of algorithm-heavy interviews?

#28
Most people who are hired will have recently graduated, due to the exponential growth of software developers. These interviews are really just an examination question, like you would do in school. Companies use them because they can easily show whether a person can retain and then apply knowledge of computer science. And must companies do not know how to test candidates otherwise.

Re: Ask HN: What is the point of algorithm-heavy interviews?

#29

It evaluates someone's capacity to approach a complex task It's like in school, you learn many things, not necessarily useful in your daily life, but you learn to learn, and that's what they can see when they confront you with a challenge Of course, some people who heavily train for this have maybe an advantage, like in school exams.. Personally I never specifically trained for an interview, I just like algorithms, d…

oh, fibonacci numbers, why do i take 10 seconds to figure it out
Post reply on HN