Pinjam artikel berikut dari http://get-that-job-at-google.blogspot.in/
Pengetahuan Pengkodean C / C ++ dan Java adalah bahasa pemrograman yang disukai untuk Google Interviewers. Anda harus tahu setidaknya satu dari mereka dengan sangat baik. Anda akan diminta untuk menulis kode dalam wawancara layar telepon dan juga wawancara di tempat.
Buku-buku yang direkomendasikan untuk wawancara CS : Pengantar Algoritma - Oleh Cormen
Pemrograman Wawancara Terkena
Memecahkan Wawancara Pengodean
Algoritma untuk Wawancara
Situs web yang disarankan untuk praktik pengkodean : InterviewStreet, Topcoder
Big-O Ini harus menjadi titik awal dalam mempersiapkan wawancara algoritmik. Anda tidak boleh bergumul dengan analisis kompleksitas dasar, karena itu akan menjamin tidak disewa. Anda harus terbiasa dan memahami notasi O, Θ dan Ω. Saya merekomendasikan membaca bagian analisis kompleksitas dari buku Data Structures and Algorithms.
Pengurutan Anda harus dapat menulis algoritma O (n * lgn) seperti QuickSort dan MergeSort dengan mudah. Bandingkan dan pahami kompleksitas kasus terbaik, terburuk, dan rata-rata. Saya menemukan tabel ini di wiki sangat berguna; itu mencantumkan properti penting dari semua algoritma pengurutan. Jangan abaikan algoritme O (n ^ 2) dasar seperti Bubble sort atau Insertion sort, karena algoritma lain meningkatkannya. Wawancara lebih lanjut tentang meningkatkan ide dasar, algoritma penyortiran akan membantu proses ini.
Tabel hash Jika ragu, pikirkan tabel hash. Mereka berguna dalam sebagian besar masalah dan sering membantu kami meningkatkan kompleksitas waktu beberapa masalah dengan hasil caching.
Trees Pergi melalui algoritma konstruksi dasar, traversal dan manipulasi pohon. Anda harus dapat mengimplementasikan algoritma berdasarkan pohon pencarian biner. Anda harus terbiasa dengan pohon seimbang walaupun Anda tidak diharapkan untuk menulis kode untuk mereka dalam wawancara: pohon AVL, pohon Merah-Hitam, Trie, pohon n-ary dll. Diperlukan pengetahuan yang mendalam tentang jalur masuk, pascabayar dan preorder, karena kita dapat memecahkan banyak masalah pohon dengan melakukan modifikasi sederhana pada salah satu dari traversal ini.
Grafik
Grafik adalah konsep yang sangat penting dalam Ilmu Komputer. Berlatih tiga representasi dasar grafik (objek dan pointer, matriks, dan daftar adjacency) dan biasakan diri Anda dengan pro & kontra mereka. Tidak banyak waktu selama wawancara sehingga Anda tidak harus mengharapkan sesuatu yang sangat kompleks. Namun, algoritma traversal grafik dasar (DFS dan BFS) adalah suatu keharusan, Anda harus mengimplementasikannya dalam semua representasi dasar. Anda harus dapat menerapkan algoritma Dijkstra atau Floyd-Warshall serta algoritma pohon rentang minimum (Kruskal dan Prim). Pelajari tentang penyortiran topologis, karena secara mengejutkan sangat berguna dalam banyak masalah pemesanan.
Pemrograman Dinamis Ini mungkin subjek yang paling penting karena implementasinya kecil. Anda harus dapat mengimplementasikan 2-3 algoritma dinamis selama 35-40 menit. Saat Anda memeriksa sumber daya di blog ini atau di web, Anda akan menemukan bahwa Anda harus mengharapkan setidaknya satu pertanyaan pemrograman dinamis per wawancara.
Sistem Operasi Pelajari tentang proses, utas dan masalah konkurensi. Ketahui tentang mutex, semaphore, monitor, dan cara kerjanya. Pahami apa itu deadlock dan livelock dan bagaimana cara menghindarinya. Pelajari tentang pengalihan konteks, penjadwalan, dll.
Matematika Anda harus membiasakan diri dengan penghitungan, kombinatorik, dan probabilitas.
Publikasi Google Baca publikasi putus jalur Google yang tercantum di bawah ini jika Anda punya waktu. Sistem File Google
Google Bigtable
Google MapReduce