how does one gets job at google

Upload: pulkit-aggarwal

Post on 04-Jun-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 How Does One Gets Job at Google

    1/3

    How does one 'Get that job at Google'!

    Following post is inspired from Steve Yegge's legendary post on prepping for GoogleInterviews.

    Coding Knowledge C/C++ and Java are the preferred programming languages for GoogleInterviewers. You must know at least one of them really well . You will be expected to writecode in the phone screen interviews and in the onsite interviews as well.

    Recommended books for CS interviews:

    Introduction To Algorithms - By Cormen Programming Interviews Exposed

    Cracking the Coding Interviews Algorithms for Interviews

    Recommended websites for coding practice: InterviewStreet , Topcoder

    Big-O This should be the starting point in preparing for an algorithmic interview. You mustnot struggle with basic complexity analysis, as it will guarantee not being hired. You should

    be familiar and understand the O, and notations. I recommend reading section oncomplexity analysis from Data Structures and Algorithms book.

    Sorting You should be able to write algorithms O(n*lgn) like QuickSort and MergeSort withease. Compare and understand the best, worst and average case complexities. I foundthis table on wiki to be very handy; it lists important properties of all sortingalgorithms. Dont neglect the basic O(n^2) algorithms like Bubble sort or Insertion sort, sinceother algorithms improve over these. Interviews are more about improving a basic idea,

    sorting algorithms will help with this process.

    http://get-that-job-at-google.blogspot.in/2013/01/cracking-googles-tech-interviews.htmlhttp://get-that-job-at-google.blogspot.in/2013/01/cracking-googles-tech-interviews.htmlhttp://steve-yegge.blogspot.in/2008/03/get-that-job-at-google.htmlhttp://steve-yegge.blogspot.in/2008/03/get-that-job-at-google.htmlhttp://steve-yegge.blogspot.in/2008/03/get-that-job-at-google.htmlhttp://www.flipkart.com/introduction-algorithms-8120340078/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://www.flipkart.com/introduction-algorithms-8120340078/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://www.flipkart.com/programming-interviews-exposed-secrets-landing-your-next-job-3nd/p/itmdgdhrgjtytvmf?pid=9788126539116&affid=chinmayschhttp://www.flipkart.com/programming-interviews-exposed-secrets-landing-your-next-job-3nd/p/itmdgdhrgjtytvmf?pid=9788126539116&affid=chinmayschhttp://www.flipkart.com/cracking-coding-interview-150-programming-questions-solutions-5th/p/itmd34cf5ja6gdhs?pid=9780984782802&affid=chinmayschhttp://www.flipkart.com/cracking-coding-interview-150-programming-questions-solutions-5th/p/itmd34cf5ja6gdhs?pid=9780984782802&affid=chinmayschhttp://www.flipkart.com/algorithms-for-interviews/p/itmdygaemy4guvxg?pid=9788100005743&affid=chinmayschhttp://www.flipkart.com/algorithms-for-interviews/p/itmdygaemy4guvxg?pid=9788100005743&affid=chinmayschhttp://interviewstreet.com/http://interviewstreet.com/http://interviewstreet.com/http://www.topcoder.com/http://www.topcoder.com/http://www.topcoder.com/http://www.flipkart.com/introduction-algorithms-3rd/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://www.flipkart.com/introduction-algorithms-3rd/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://www.flipkart.com/introduction-algorithms-3rd/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithmshttp://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithmshttp://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithmshttp://1.bp.blogspot.com/-u8Q410rX-s0/T_CKODCEJkI/AAAAAAAAQRY/tgBYO_qNtpk/s1600/google.jpghttp://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithmshttp://www.flipkart.com/introduction-algorithms-3rd/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://www.topcoder.com/http://interviewstreet.com/http://www.flipkart.com/algorithms-for-interviews/p/itmdygaemy4guvxg?pid=9788100005743&affid=chinmayschhttp://www.flipkart.com/cracking-coding-interview-150-programming-questions-solutions-5th/p/itmd34cf5ja6gdhs?pid=9780984782802&affid=chinmayschhttp://www.flipkart.com/programming-interviews-exposed-secrets-landing-your-next-job-3nd/p/itmdgdhrgjtytvmf?pid=9788126539116&affid=chinmayschhttp://www.flipkart.com/introduction-algorithms-8120340078/p/itmczynzhyhxv2gs?pid=9788120340077&affid=chinmayschhttp://steve-yegge.blogspot.in/2008/03/get-that-job-at-google.htmlhttp://get-that-job-at-google.blogspot.in/2013/01/cracking-googles-tech-interviews.html
  • 8/13/2019 How Does One Gets Job at Google

    2/3

    Hash Tables When in doubt, think of hash tables. They are useful in most of the problemsand frequently help us improve the time complexity of some problems by caching results.

    Trees Go through basic tree construction, traversal and manipulation algorithms. You should be able to implement algorithms based on binary search trees. You should be familiar with balanced trees although you are not expected to write code for them in theinterview: AVL trees, Red-Black trees, Trie , n-ary trees etc. Thorough knowledgeabout inorder, postorder and preorder traversals is necessary, because we can solve many tree

    problems by doing simple modifications to one of these traversals.

    Graphs

    Graphs are a very important concept in Computer Science. Practice the three basicrepresentation of graphs (objects and pointers, matrix, and adjacency list) andfamiliarize yourself with their pros & cons.

    There is not much time during the interview so you should not expect something verycomplex. However, basic graph traversal algorithms ( DFS and BFS ) are a must, youshould implement them in all basic representations.

    You should be able to implement the Dijkstra or Floyd-Warshall algorithms as wellas minimum spanning tree algorithms ( Kruskal and Prim ). Learnabout topological sorting, since it is surprisingly very useful in many ordering

    problems.

    Dynamic Programming This is probably the most important subject as the implementationsare small. You should be able to implement 2-3 dynamic algorithms during a 35-40 minutes

    time. As youll check the resources on this blog or on the web, youll find that you shouldexpect at least one dynamic programming question per interview.

    Operating Systems Learn about processes, threads and concurrency issues. Know aboutmutexes, semaphores, monitors and how they work. Understand what deadlock and livelockare and how to avoid them. Learn about context switching, scheduling etc.

    http://www.geeksforgeeks.org/trie-insert-and-search/http://www.geeksforgeeks.org/trie-insert-and-search/http://www.geeksforgeeks.org/trie-insert-and-search/http://www.geeksforgeeks.org/trie-insert-and-search/
  • 8/13/2019 How Does One Gets Job at Google

    3/3

    Mathematics You should familiarize yourself with counting, combinatorics and probability.

    Google's publications Read up Google's path-breaking publications listed below if you have

    time.

    Google File System Google Bigtable Google MapReduce

    http://research.google.com/archive/gfs.htmlhttp://research.google.com/archive/gfs.htmlhttp://research.google.com/archive/bigtable.htmlhttp://research.google.com/archive/bigtable.htmlhttp://research.google.com/archive/mapreduce.htmlhttp://research.google.com/archive/mapreduce.htmlhttp://research.google.com/archive/mapreduce.htmlhttp://research.google.com/archive/bigtable.htmlhttp://research.google.com/archive/gfs.html