Acing Technical Interviews
Acing Technical Interviews
What is the difference between a Stack and a Queue? How do you take care of conflicts in Hash Tables?
What happens when you visit a website? Describe everything you know.
Background
! " CS50 TF ! " Google Summer 2010 ! " Facebook Summer 2011 ! " How do I prepare for my interviews?
Reverse, Trim, Remove Letters from, Check Palindrome on, Find Longest Palindrome in a String.
Check if a number is a power of 2. In an array of size n-1 with all but one number from 1-n, find the missing number. Make the pow function.
selective
Given a linked list, extend the linked list with the current elements reversed. Reverse the linked list. Randomize the linked list.
The Interview
! " Series of 2 to 5 depending on the company ! " 30-40 minutes each ! " Two types: ! " Onsite : whiteboard coding
! " Over the Phone : Collab-edit coding
! " 2-3 problems testing your computer science knowledge ! " Yes, you may need to code even for product engineers
Write Binary Search, Traverse a Tree recursively. Given traversals (pre, in, post) determine the tree
Types of Questions
1." Problem Solving / Algorithms ! " Find optimal solutions (Big-O) ! " Write the solution 2." Data Structures ! " Goes along with algorithms but they might directly as you questions about this 3." The internet ! " Information flow ! " Web development techniques 4." Designing ! " Database ! " Systems (Classes, modules, etc.)
General Tips
! " Know your recruits, dont be late, dress nicely ! " Dont stop talking!
! " Fast responses
! " Think out loud ! " They want to see your code (even if its pseudocode!) ! " Ask for hints ! " Theyre nice people!
Create a deck of cards. Then implement shuffle.
Data Structures
! " Stacks ! " Queues ! " Linked-Lists ! " Maps / Sets ! " Hashtables ! " Binary Trees / Trees
Implement and give the Big-O for all data stuctures
! " Tries ! " Red-Black Trees ! " AVL Trees ! " Graphs ! " Heaps
Algorithms
! " Search ! " Recursion ! " String Manipulations ! " Greedy ! " Network Flow ! " Dynamic Programming
! " Number Manipulations ! " Ad Hoc Problems ! " Flood Fill ! " Shortest Path
Design an iterator for your data structures. Implement insert and delete as well.
! " CS124
www.usaco.org
Preparation
! " Problem solving. Competitive coding problems. ! " Do problems as if you are in an interview ! " Quiz your friends 1." glassdoor.com, Google 2." poj.org 3." projecteuler.net 4." train.usaco.org
Implement Merge Sort. Implement a Priority Queue.
glassdoor.com
! " People talk about their past interview experiences with
companies
! " Nowhere to turn in code ! " Peoples solutions are mostly wrong or incomplete
How would you create one of the products that you use today? (Gmail, Facebook, Iphones)
poj.org
! " Great resource of problems ! " Competitive programming style ! " You can code up solutions and submit them ! " online judger ! " Great way to practicing coding while looking at
Competitive Programming
! " File I/O. Scan file in. Print file out. ! " Sample Problem:
#include<iostream> using namespace std; int main() { int a, b; cin << a << b; cout << a+b << endl; return 0; }
Calculate a + b from an input file with a and b that are separated by a whitespace.
Questions?
Case Study