Professional Documents
Culture Documents
What to expect:
● The goal of this interview is to assess your strengths, so please pick the systems
and frameworks that you are most familiar with
● Discuss initial ideas, solutions, and tradeoffs with your interviewer, which will help
you to clarify any ambiguity.
● Take hints from your interviewer to showcase your thought process and
problem-solving ability.
● Generally, avoid solutions with lots of edge cases or huge if/else if/else blocks.
Deciding between iteration and recursion is always an important step.
● Think about different algorithms and algorithmic techniques (sorting,
divide-and-conquer, dynamic programming/memorization, recursion).
● Think about data structures, particularly the ones used most often (Array,
Stack/Queue, HashSet/Hashmap/Hashtable/Dictionary, Tree/Binary Tree, Heap,
Graph, Bloom Filter, etc.)
● Don’t worry about rote memorization such as runtimes or API/native calls. It's
good to know how to figure out approximate runtimes on the fly but the code you
write is more important.
● You will be asked about O(Memory) constraints, the complexity of the algorithm
you are writing, and its runtime - O(N^2), O(N), etc.
● Prepare for (space-optimized, time-optimized, balanced optimized)
● Make sure to discuss with your interviewer the time and space complexity
constraints that your final code should have. Sometimes it might be prudent to
come up with a functional solution (rather than the most optimal one) in a limited
time setting of an interview - having a thorough discussion about this with your
interviewer can help in such scenarios.
● Understand different data structures and trade-offs they had between them
● Write readable code
● Ask clarifying questions
Other Practice:
http://geeksquiz.com/
http://www.careercup.com/page
https://www.interviewcake.com/
http://www.techinterview.org/
http://www.programcreek.com/2012/11/top-10-algorithms-for-coding-interview/