Programming Interviews – Techniques & Tips by Gayle Laakmann
Gayle Laakmann, an ex-Googler, who is currently pursuing her MBA at Wharton University. She completed her Master’s degree in Computer Science at the University of Pennsylvania. She is also the founder and CEO of two companies – Careercup, Seattle Anti-Freeze. She is also the author of Cracking the Coding Interview
Hello Gayle, could you provides us a small introduction about yourself
I interned at Microsoft and Apple and then worked for three years as an engineer for Google where I was on the Hiring Committee. I’ve interviewed over 120 engineers both local and international, I attended career fairs and reviewed hundreds of resumes. I enjoyed working at Google, but I also explore startups.
So armed with all these great experiences and insights, I founded CareerCup in 2005. We help people prepare for technical interviews through an e-book and interview question forum.
Could you give us a brief description of the interview process that typically happens in companies like Microsoft, Google, Amazon? – how many rounds of interview and the focus areas?
Initially, you will be interviewed through phone by an engineer, then you’ll be asked to come in for an on-site interview with 4 to 6 candidates. As for the focus areas, big companies look for excellent technical skills above anything else – can this person write good, clean, organized code and solve challenging problems?
How can a student equip himself/herself in these subjects?
Definitely, practice! The reason why practice makes perfect is a cliche is because it works! Practice programming on paper, then typing code into a computer exactly as-is. You’ll make a lot more mistakes than you think!
Which answer of a candidate do you think gave you a ‘Wow! This is the candidate I am looking for‘ effect?
I want candidates who are:
* Write good code
* Who care about writing clean code
The last one is the hardest to find. As an interviewer, the key signals I look out for are: when getting a problem, do they just throw code on paper, or do they define relevant data structures?
Candidates are not expected to know the answers of all the questions asked in the interview right? How can they tackle questions for which they have no clue?
A good interviewer asks problems that are so hard that you won’t even know the answer. The best approach would be, first, simplify the question, create assumptions (example: assume array only contains integers). Then, solve for simplified case. Finally, generalize your answer.
Also, interviewers want to know how you think, so try to talk through your approach and explain your process. This will give them a good perception of your technique and skills.
Do you think GPA plays a role in getting the job? Or is it purely the performance in the interview?
It really depends on the company. Generally, GPA matters in getting an initial interview but only in addition to other things, like experience and interests.
After they interview and they’re deciding on you, it shouldn’t be a deal breaker (because otherwise, they wouldn’t have interviewed you in the first place).
I have come across some real smart people who do not have a good GPA for various reasons, I am sure you would have come across to. What is your advice for them? What complimentary skills can impress the top league companies in your opinion?
These companies don’t really care about your grades. They care if you’re smart, if you have strong technical skills and that you work hard.
Prove that you possess each of these in other ways. Cite instances where you have started projects or helped out with open source projects. Mention if you’ve done well in certain very hard classes by listing your grade or your class rank.
Keep your resume updated with a list of your awards and projects that you’ve worked on. If you don’t have project experience, try hard to get some! It is the #1 thing that companies look at.
Please share your suggestions (or) a small to-do list for students before they appear for Google/companies in the same league interview
Practice answering the questions from sites like careercup.com and programming on paper, then type them into a computer as-is.
Another important thing to remember, for each job or project on your resume, make sure that you’ll be able to explain the hardest challenge, what you liked most about it, what you liked least and, of course, what you learned.
Thank you Gayle for the wonderful interview.