The Programming Interview
If you’re applying for a software development position, you’ve got a special set of skills to prepare. Yes, you’ll be asked to code. No, you don’t get a computer (usually) just a whiteboard, or sometimes just a sheet of paper. Whiteboard and interviewing coding require a special set of skills. Even the best coders can bomb coding questions. A typical software development interview consists of a little bit of conversation at the beginning about your prior experience and a little bit at the end about the company. The bulk of the interview is spent on coding and algorithm questions.
What’s the Point?
Coding interviews are a sore spot for many job seekers. What’s the point of coding on a whiteboard? Don’t they know that you can code by looking at your prior experience? And why do they force you to use a whiteboard rather than a computer? After all, you can’t possibly be expected to write the correct code on a whiteboard.
What’s Expected And What’s Not.
You are not expected to write flawless whiteboard code. Having gone through the process themselves, interviewers know that writing perfect code isn’t a reasonable expectation. However, pseudocode is generally not acceptable. Your code should be in a specific language (Python, Java, and you should aim for as close to correct code as possible. If you mix up little things, for example, using the list. add instead of a list. append interviewers shouldn’t care much about that.
How They Differ: Microsoft, Facebook, Google, Amazon, Yahoo, and Apple
For the most part, the top tech companies are far more similar than different. There really aren’t “Google interview questions” or Microsoft interview questions. Each interviewer decides on his or her own questions, and almost any question asked at one company would fit in just as well at any of the other companies.
What If I Hear a Question I Know?
If you do lots of preparation, you’ll likely be asked some interview questions that you know. If this happens, tell your interviewer, I think I’ve heard this question before or I’ve heard a problem similar to this— would you like me to continue anyway?” With complex algorithm questions, interviewers are looking to see how you solve the problem.
If they don’t see your problem-solving approach, then they can’t think that you’re a good problem solver. Even worse: many interviewers feel that not admitting when you’ve heard a question before is a form of cheating, and they might reject you just for that.
Must-Know Data Structures, Algorithms, and Topics.
Most interviewers won’t ask you about specific algorithms for binary tree balancing or other complex algorithms. Frankly, they probably don’t remember these algorithms either. (Yes, that means you can put down the fancy algorithms book.) You’re usually expected to know only the basics. Here’s a list of essential topics. This is not, of course, an all-inclusive list. Questions may be asked on areas outside of these topics. This is merely an absolutely must-know list.