Yeah, in my experience interview questions usually end up expecting you to have instantaneous, very detailed knowledge of the by-the-book CS algorithms and data structures (because "IT'S IMPORTANT" even though you'll be able to look it up on the rare occasions you need it) and a broad, shallow knowledge of everything else. Sometimes language knowledge gets thrown into the former category, sometimes the latter. Though if you claim to have experience, they're more likely to call you on it...
The interview dichotomy always throws me, tbh. I just can't bring myself to study up on this irrelevant garbage. Implement quicksort? Eff you, I'll use qsort! I'm trying to do real work over here!
=)
Most of the time it's horseshit imo. I've gone through the whole process of memorizing implementations of data structures & algos for interviews. Which after landing the job, have never had to be written from scratch 99% of the time. If they did, you basically figure out how to implement it, usually from the book or the internet and code it to work.
Memorizing the stuff doesn't prove to me, or anyone really that you can program worth a shit imo. It proves that you can memorize things, which is important, but it's not the most important indicator of someone who can do the job imo.
I think it's much more important to know how to identify, work through, and eventually solve problems. What data structures and algos would you use to solve the problem efficiently? Use pseudocode to solve a problem, bonus if you can do it in the language(s) listed on your resume. Reveal what you are thinking as you work through the problem. Etc...
Anymore, I think implementing ds & algos should be a detail that is abstracted out in the interview, simply because it's a detail that is frequently abstracted out in our daily jobs.
I would rather listen to someone tell me why they would use a bubblesort over a quicksort to solve a particular problem, rather than someone who can jank out a non-production implementation. It's much more revealing that imo.
Granted we are speaking of likely entry-level positions, so coding skills are still going to have to be refined. Mid and senior level position would likely have to be more specific and in-depth.