Source: John L. Miller, former staff engineer at Google.
I can tell you the things I look for when interviewing a pending or recent graduate:
- Passion, intelligence, communication skills.
- Able to explain their thinking, approach, and analyze strengths / weaknesses of an approach.
- Good problem solving, ability to iterate on solutions. Quick thinking.
- Clear understanding of boundary between what they do and don’t know.
- Good attitude.
For technical skills, I hope to find solid knowledge of core data structures and algorithms, and good, accurate coding skills.
For example:
- Knowledge of linked lists, binary trees, k-ary trees, tries, lists, heaps, queues, stacks, multidimensional arrays. All standard operations on these.
- Hash tables and hashing.
- Various sorts: bubble, insert, merge, quicksort.
And whatever else qualifies as core these days.
Finally, understanding of space, time, and complexity tradeoffs of algorithms.