I can give an answer for Java at least:
I would want you to know all the terminology and concepts.
People ALWAYS ask what's the difference between implements and extends. You should understand exactly what's going on with that.
A related question is, how would you emulate multiple inheritance in Java.
You should know what each package in the JDK is for. You don't have to know EVERY class, but knowing what the packages are for will help you find what you need.
Know how to use the javadocs WELL. Always have them open in a browser window while you are working.
Know what reflection does. Be able to at least write a reflective instantiation of a class.
Know all the collections and be able to answer "Would use use a linked list or an array list or a hash map for an insertion sort? How about for an indexed list?"
At the least, get the design patterns and refactoring books and actually read them.
Edit: Oh, as long as we're at it, a tip for a beginning programmer--Don't Repeat Yourself
learn to code DRY! Specifically don't repeat logic. I think that the ability to make your code DRY is the biggest differentator between programmers, and you get better at it your entire career, I've never met anyone "Perfect" at it.
Striving to NEVER copy and paste, and reduce your code wherever you see duplication or patterns of any sort also forces you to learn and understand important techniques.
If I were hiring and had someone submit code, DRY would be the most important factor--possibly more important than if the code worked (I can fix DRY code with bugs or if the developer couldn't figure out how to implement one piece of it but crappy redundant code I'll just throw out and re-write, possibly even if it works!)