Interviewing

Technical interviews

One of the scary parts of getting a job in the computer science community is the technical interview. To get pretty much any tech job, you're going to have to survive one (or more) of these. Technical interviews typically aim to assess you on your knowledge of computer science, your programming ability, and your computer science intelligence. Interviewers ask a variety of question types, some being:

Knowledge of specific algorithms or concepts (e.g. "What's the difference between a binary tree and a hash table?" or "What is polymorphism?" or "What is a buffer overrun attack?")

Algorithm/thinking questions (e.g. "You have a stream of integers where you see every integer twice except for one that you only see once. How do you find which you see once without using more than constant memory?")

Design questions (e.g. "Design a card game - give objects and fields you would need and their relationships." or "Describe how you would design a hash table that is too large to fit in memory - how would you organize it?")

Brain teasers (these are less common, but they happen) (e.g. "A subway has 3 escalators, 1 in and 2 out -- why?")