How To Pass An Interview At Facebook Or Google
Interview! The final obstacle between a software engineer and the dream job+mega bucks that will follow. Most of you have passed out of an engineering college or have done a software certification course vie for a job at either Google or Facebook.
Most of the engineers and programmers will naturally think about taking a job in the top tech companies. Out of 100 software engineers who pass out, less than 1 percent go on to open a startup, while 99 percent of them go on to join some tech firm. After they have decided to take up a job in a tech company like Facebook or Google, the only obstacle between them and a lucrative career is the interview.
John L. Miller, Ph.D, who has worked and recruited at Microsoft and Oracle and also worked at Amazon and Google, has answered this million dollar question on Quora. He has given a full-fledged tutorial to help candidates pass the interviews at Google and Facebook.
He rightly says that you may have built up your skill set for a hundred years and it won’t matter for getting hired at Facebook or Google if they don’t interview you. Passing an interview is one thing, Miller says it is tough even to get an interview in this two tech giants.
He explains how prospective job seekers could get an interview at Facebook or Google :
Having said that, there are two high-success ways to get an interview.
- Know someone at the company (e.g. a colleague or friend) and have them recommend you and pass on your CV. If you can’t do this,
- Attend a university the company you like recruits from and go through campus recruiting there, which typically guarantees you an on-campus interview.If you haven’t attended university, get a bachelor’s in computer science from such a school. If you have attended university but your school didn’t have campus recruiting from the companies you care about, get a master’s degree from such a school. For the bachelor’s, get an internship as early as possible, and interview heavily in your final year. For the master’s, go through campus recruiting as early as possible.
How do you pass the interview?
- Know lots about computer science and programming. There’s a great book, . Understand as much as you can of the chapters on Mathematical Foundations, Sorting, Data Structures, and Graph Algorithms.
- Become a great programmer in at least one language, such as Java or C++. Python is a good second language. Make your own programs for fun. Google interview programming problems for your company of choice and write solutions for them. Do a bunch of the exercises from the Algorithms book. Make implementations of the core algorithms and data structures, both with and without the supplementary helper classes available in the language. Test everything thoroughly.
- Learn about the company. Understand what their business is based upon, and know which part of the company you want to work in. Have a good reason to work at the company. “Because it’s the best company in the world” and “because I want to be rich” are both lousy answers from the interviewer’s perspective.
Miller’s advice is to pursue your passions and not merely a company. This will help you in passing the toughest interview both Google and Facebook have to offer.
There are two approaches to the interview :
- The “cover as much ground as possible” approach. The interviewer will ask you 5-10 different questions spread out across your areas of expertise. This approach is valid for people who are applying for sysadmin or systems engineering jobs. For example, a question about networking, a question about Unix, one small coding problem, something about security and something about the web.
- The “one hard problem” approach. This is for software engineers, where the interviewer may ask you to write code. You want to be paid to write code, so you better know how. The warmup question might be something like “reverse a string in place” or “implement atoi” or something like that. The next part is the hard question. Examples might include:
- remove duplicates from a list of strings which is larger than the available memory (i.e. with reloads from disk)
- count the number of disjoint objects in a bitmap
- implement a program which plays tic-tac-toe
These are all pretty hard to do in 35 minutes so you have to concentrate. Here are a few tips to help you crack such interviews :
- This is probably the most important tip, When the interviewer asks you to write a program, DO NOT start writing code immediately. Think the problem through first, and SAY OUT LOUD what you are about to do, then do it. If you are going completely in the wrong direction, the interviewer will tell you, and you won’t waste 20 minutes going there.
- The recruiters are complete idiots and will likely forget you somewhere in the middle of the process. Do not be shy to call your recruiter if you don’t hear from them in (say) a week.
- Ask questions if something is not clear during an interview. If you are not sure what a question is about, or what the interviewer meant, ask immediately – you are playing against the clock. Yes, the recruiters time how long you take for an answer.
- Make your CV short and sweet. Most interviewers do look at them, but only if they are short. Unless you are a professor at MIT,two pages. Not three. Two. That includes everything.
- Put your skills on your CV. The company is sure to ask you what you are best at. If you list what you are best at, the interviewer will ask you about that. If your CV says “master of algorithms”, expect algorithms questions. If it’s not obvious from your CV what you are good at, they will ask random questions which are difficult.
- Do not put your high school, marching band, or girl scout experience on your CV. Nobody gives a fuck and it will not help you. It is more likely to harm you because it will distract from the parts that matter.
- When you are asked a coding question, don’t be a pretentious prick and start writing down header includes, blather about “invariants” or “good programming practices” if you don’t know how to solve the problem. It’s perfectly fine to be a pretentious prick if you can solve the problem with ease, but not if you can’t.
These are some of the pointers to help you crack the interview at Google or Facebook, for that matter any tech company. Hope you crack one of those.. Thank me later.