* Technical education (college degree, classes, etc.)
* Hands-on technical experience. This can range from an internship, to just building computers for friends and family. Something that shows initiative.
* Some other work experience, even if it's a cashier at Dominos or a volunteer position at a library.
I avoid resumes of candidates that have degrees but no measurable hands-on experience outside of school. I find students that have gone through high school and college with absolutely no work experience to be entitled and often spoiled. I understand that is not a universal truth, but I've observed it enough to not bother with those candidates.
In the interview itself, I look for candidates who:
* Are excited about the job, learning new stuff.
* Don't have a bad attitude. This can often be evident when talking about your stack. If you have, say, a Java stack, and the candidate makes some offhand comment about how Ruby is so much better, it's a hint about how they'll act on the job.
* Can answer basic questions about the stack they'll be working on. I'm not talking algorithms here. This is mostly to test if they give a shit about the job enough to read up on the details for 20 minutes before coming in for an interview.