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?