I interviewed at Google with a no-hire. I asked for 3 weeks to brush up on algorithms and data structures. I should have asked for 3-6 months.
This is where it falls apart for me, though. Based on my experience, you really do need to be extremely sharp on data structures and algorithms, and you need to be able to do it at the whiteboard.
I have my own opinion on this, like everyone. Personally, I'm completely ok with requiring a data structures and algorithms "entrance exam" for many software development positions. I see it as similar to the vector calculus and linear algebra exam required of actuaries.
My problem is with the implementation. Actuaries take a well vetted exam, with a clear study path, and when they pass it, they get a lasting credential respected in their industry. In short, taking and passing this exam means they don't have to submit to potentially random and capricious (and unpredictable) exam based interviews (really, after 6 hours at the whiteboard doing programming problems why do we call this an interview? It's an exam, pure and simple).
Here's the thing - I'd do this for a lasting credential. I'd accept that this is a test I have to take, and properly study for. I'd take my 6 months, and I'd put in the time. What I'm not willing to do is take this test over and over and over, every time I interview at a new company. I just don't walk around with this stuff loaded into short term memory. I don't walk around ready to take my undergraduate data structures and algorithms test. And I think I've taken it for the last time.
Same for vector calc and linear algebra. I did well in these classes in college, and if I were interested in being an actuary, I'd study up and get back to that level I was at just before I took my exams in college. But no, I'm not interested in allowing a random person at a company to put me through the exams again.
This is why I'm pretty much done with technical interviewing and tests. I'll find some other way to participate in this field, or leave it altogether if that turns out not to be possible.
I do wish tech leaders, who so constantly bray about a shortage in our field, would recognize the extent to which their behavior and practices drive talented people out of programming and into other fields. They didn't stumble upon this shortage, they created it. And every crutch we give them just allows them to continue with business as usual.