Can you qualify this a little bit? I haven't used data structures since university. What are you expecting programmers to know and why?
I find that I need to have a strong working knowledge of data structures every day. Hashes, lists, trees, and so on. Knowing how to apply data structures in production code matters a lot: the difference between a hash lookup and a linear scan, for example, can mean the difference between a reasonable response time for an application and an absolutely terrible response time.
In interviews, I have found that good understanding of these data structures (and the algorithms one uses to manipulate them) correlates strongly with ability to solve larger and more complex problems.
Well, I guess it's possible, but I find it hard to imagine.
Guess I wasn't writing software for a living. Plenty of SV companies sure got that impression.
[1] http://www.amazon.com/Radar-Handbook-Edition-Merrill-Skolnik...
However, when people around here refer to "data structures" they mean a whole lot more than those two. All of the data structures listed in the post I was replying to are widely considered "standard" data structures that are used all the time. I was pointing out that I worked in a significant, operational codebase of >150,000 lines total that used only the most basic of data structures, and used those sparingly.
Whenever someone uses the term "data structures" I think about the inner workings of different types of B-tree's. And since I don't know the inner workings of the more advanced data structures, I would probably disqualify myself.
I think the crunch is at least somewhat real. We've hired a couple great people we met through Hacker News -- I couldn't have imagined them working out any better. And recently I've been trying to hire more people at my startup and, frankly, it's tough to find good people.
We've worked hard to make our interview process quick, insightful, fun, and accurate. Do we do pair programming? Sure. Do we ask about data structures? Absolutely; any programmer worth anything knows something about data structures. Do we do whiteboarding? Yep. Programmers at our company, it turns out, need to be good at communicating with humans as well as with computers. Do we give people answers immediately, and tell them why we are rejecting them? Yes, we do. We are more humane and reasonable than so many other places.
(It drives me crazy how many bad interviewers there are out there. Some of my friends recently interviewed for entry-level positions and some shall-not-be-named companies in SF and were treated terribly: given the run-around by the recruiters, brought back in the office 4 separate times for interviews, and ultimately rejected by at least two companies when they decided they didn't want to sponsor H1Bs after all. Insane. In a war for talent, you'd think practices like this would cease.)
Anyway: this is all to say, I'd love to meet your friends or anyone else out there who's looking for a programming job. My colleagues and I are not awful people. We like to brew beer and write code and help make the world a better place. We have a book club and eat good food. Oh, and we pay well and sponsor visas and are generally, you know, warm and friendly folks.