Hacker News new | ask | show | jobs
by learc83 2558 days ago
>Sometimes there's no time to google

What do you mean no time to Google? You're never going to be able to remember everything. Sure the ideal situation is that you're fixing a bug where you happen to know the exact syntax for every piece of every library you need.

But in the very likely situation where you don't, of course you have time to google.

>and the ability to code something up quickly that also works correctly without having time to test it sometimes saves the day.

Often becuase the company has optimized the hiring process for people who are good at doing this vs. people who are good at designing maintainable, durable systems.

If 30 minute, million dollar fixes is a frequent enough occurrence to make aptitude at them the primary or even a major factor in your hiring decision, you have done something horribly wrong.

>I do think coding interviews that people are complaining about are good, and getting in shape to do well in them is good for you.

Having hired people using many different techniques, I think that these types of interviews are only a bit better than random chance. They are a separate skill from 99% of daily programming work, and they are gameable. I also think they are nothing more than a fad caused by people cargo culting Google.

Not a single other technical discipline widley uses this kind of stage performance based interview process. Not one.

>and you want to be talking to someone while you're doing it, as a sanity check.

That makes zero sense. Sure sometimes it helps to talk through a problem if you're working with someone who is also trying to solve the problem with you, and you might want to explain a fix after you solve the problem but before you push as a sanity check.

But if it's a hard problem you can kick rocks if you expect me to explain what I'm thinking about while I'm concentrating on solving it--while you're watching over my shoulder, and are not actively engaged in helping me solve the problem. You're just slowing me down.

1 comments

None of the problems at interviews are really hard.
Many problems have solutions that were worthy of publication and took a lot longer than 30 minutes for very smart people to solve. So if you don't already know the answer or the answer to a very similar problem then yes objectively they are hard problems.
But you are supposed to know the algorithms and approaches that apply to the problem, that's the whole point. It took humanity tens of thousands of years to come up with the first script, but nobody wants you to invent the English alphabet in an interview, you're expected to know it.

I also can't remember ever being asked to solve a problem whose solution would have merited publication in my lifetime, and I was born around the same time Unix was.

There's a difference between knowing which class of algorithms to use or even which specific algorithm to lookup in a given situation and knowing exactly how to implement the specific pet algorithm of an engineer on a power trip without using reference materials. This kind of adversarial process is nothing more than a hazing ritual. Other industries think we're insane, and the vast majority of companies that do this style of interview just do it because they want to do what Google does not because they have any evidence it works.

>I also can't remember ever being asked to solve a problem whose solution would have merited publication in my lifetime, and I was born around the same time Unix was.

We've had different experiences then. I've definitely had to implement algorithms designed after 1971.

Software is very different from any other type of engineering I can think of, so I'm not surprised that the interviewing processes would be different. Two different aeronautical engineers for example may come up with two different solutions, but I don't think the better one would be better by a factor of ten, let alone something like a million which is common with software. If any aeronautical engineers read this I'd like to be corrected if I'm wrong.

I agree that for GUI work you probably don't need this, but for a back end position I would like a person for whom this kind of interview isn't a big deal to prepare for.

I'm curious to hear what the post 1971 algorithms in question are.

Wow you are really invested in the current interview process. I've never met anyone who defended it quite so vigorously.

Any engineering disciplines that deal with designing processes are very similar to software engineering. It's nowhere special enough to demand a completely unique hiring process.

Even if it were, I'd like to see some hard data to support the current interview best practices.

>I'm curious to hear what the post 1971 algorithms in question are.

Off the top of my head: You've had a question with Red-black trees? B-trees? Quad-trees and oct-trees?