Ok last OT I promise
What you ask during interview is besides the point(even if you don't ask, you're going to see the proficiency on technical questions anyway). I was talking about filtering the resumes before interviews. There's little point to interview a Comp.Sci engineer fresh out of school if his school didn't include the relevant basics and he doesn't mention acquiring them in other ways.
Generally we just need better tools to work with increasingly paralel architectures, there's only so much hardware can to do by itself.
It's interesting to see the different philosophies various teams have with regards to development staffing -- I talked to one group recently that only hires the most senior and experienced developers they can find (their most junior programmer has 8 years in the industry). That's certainly one approach to take, but it is also an expensive one. I've seen other groups successfully onboard junior programmers and teams I've worked on have also benefited from internship programs. In my view, the key is strong team leadership and project management. If you have good leads, then they can bring up bright new-grads and make them very productive in a short time. Likewise, for interns, it really helps if you can throw them on an appropriate project. For a summer internship, you might put a guy on a high-reward project -- if he succeeds, you've just tackled an important feature (most of our interns handled important tools that no-one ever seems to have time for). If not, then you're really no worse off than before.
That said, I do like having a core of senior developers, especially in the early phases.