Field guide to the algorithmic interview
speaker: Wong Yiwen event: Hackers and Painters ** interview process
- prescreening coding test
- 2-3 phone interviews
- 3-5 on-site interviews
- each interview ~1hr long, between 1-8 qns each
- high false positive rate
- international candidates can try once a year ** phone interview
- phone call or skype/google hangout
- live coding, using Google docs or CollabEdit
- scheduling protip: Daylight savings time ** on-site interview
- code on the whiteboard
- lousy markers? bring your own markers ** types of questions asked
- programming languages
- general cs what is idempotence?
- coding/algorithmic
- design how would you create google maps?
- behavioural why would you want to work with us?
- NO lateral thinking/puzzle questions
- NO fermi questions recruiter usually sends an information packet telling you the topics. ** coding/algorithmic questions
- given two strings, return true if they are anagrams
- write a program that prints out the powerset of N elements
- NO implement quicksort
- NO how to balance an avl tree
- NO compute the transitive closure of data dependencies of a given C-type program
- BAD standard problems covered in some CS curriculums ends up as a test of where you went to school
- is your solution optimal? how to optimize? discuss the space and run time complexity
- how to test your solution?
- data does not fit into RAM? ** field tips
- know your data structures: lists/arrays/hashmaps/trees/heap/graphs
- know some basic algorithmic approaches
- studying specific “complicated” algorithms are a waste of time, eg A*, Dijkstra, Bellman-Ford
- more important to know data structures than algorithms
- know the implementation language and complexity of data structures/algorithms in standard library
- pick something interviewer friendly with predictale runtime, eg Java some scripting languages may have strange runtime performance
- know the machine/environment, eg cache vs RA
- make the examples easy to build on, list of 100, 200, 800 instead of list of 1, 2, 8
- discuss characterisics of the problem/solution
- observations about approaches that don’t work ** preparation
- how to approach white boarding problems