Aşağıdaki makaleyi http://get-that-job-at-google.blogspot.in/ adresinden ödünç aldı.
Kodlama Bilgisi C / C ++ ve Java, Google Mülakatçıları için tercih edilen programlama dilleridir. Bunlardan en az birini gerçekten iyi biliyor olmalısın. Telefon ekran görüşmelerinde ve yerinde görüşmelerde de kod yazmanız beklenir.
CS röportajları için önerilen kitaplar : Algoritmalara Giriş - Cormen
Açıklanan Programlama Görüşmeleri
Kodlama Röportajlarını Kırmak
Röportajlar için Algoritmalar
Kodlama uygulaması için önerilen web siteleri : InterviewStreet, Topcoder
Big-O Algoritmik bir görüşmeye hazırlanmanın başlangıç noktası bu olmalı. İşe alınmayacağını garanti edeceği için temel karmaşıklık analizleriyle mücadele etmemelisiniz. Tanıdık olmalı ve O, tations ve Ω notasyonlarını anlamalısınız. Veri Yapıları ve Algoritmalar kitabından karmaşıklık analizi konusunu okumanızı tavsiye ederim.
Sıralama QuickSort ve MergeSort gibi O (n * lgn) algoritmalarını kolaylıkla yazabilmelisiniz. En iyi, en kötü ve ortalama durum karmaşıklıklarını karşılaştırın ve anlayın. Bu tabloyu wikide çok kullanışlı buldum; Tüm sıralama algoritmalarının önemli özelliklerini listeler. Kabarcık sıralama veya Ekleme sıralama gibi temel O (n ^ 2) algoritmalarını ihmal etmeyin, çünkü diğer algoritmalar bunlar üzerinde gelişir. Görüşmeler, temel bir fikri geliştirmekle ilgilidir, sıralama algoritmaları bu sürece yardımcı olacaktır.
Karma Tablolar Şüphe duyduğunuzda karma tabloları düşünün. Sorunların çoğunda faydalıdırlar ve sık sık sonuçları önbelleğe alarak bazı sorunların zaman karmaşıklığını iyileştirmemize yardımcı olurlar.
Ağaçlar Temel ağaç yapısı, geçiş ve manipülasyon algoritmalarından geçer. İkili arama ağaçlarına dayanan algoritmalar uygulayabilmelisiniz. Röportajda kendilerine kod yazmanız beklenmese de, dengeli ağaçlara aşina olmalısınız: AVL ağaçları, Kırmızı-Siyah ağaçları, Trie, n-ary ağaçları vb. Bu çaprazlamalardan birinde basit değişiklikler yaparak birçok ağaç problemini çözebiliriz.
Grafikler
Grafikler Bilgisayar Bilimi'nde çok önemli bir kavramdır. Grafiklerin üç temel gösterimini (nesneler ve işaretçiler, matris ve bitişik liste) uygulayın ve artılarını ve eksilerini öğrenin. Görüşme sırasında fazla zaman yoktur, bu yüzden çok karmaşık bir şey beklememelisiniz. Ancak, temel grafik geçiş algoritmaları (DFS ve BFS) bir zorunluluktur, bunları tüm temel temsillerde uygulamanız gerekir. Dijkstra veya Floyd-Warshall algoritmalarını ve minimum yayılma ağacı algoritmalarını (Kruskal ve Prim) uygulayabilmelisiniz. Topolojik sıralama hakkında bilgi edinin, çünkü birçok sipariş probleminde şaşırtıcı şekilde çok faydalıdır.
Dinamik Programlama Bu uygulamaların küçük olması nedeniyle muhtemelen en önemli konudur. 35-40 dakikalık bir sürede 2-3 dinamik algoritma uygulayabilmelisiniz. Bu blog veya web'deki kaynakları kontrol ederken, görüşme başına en az bir dinamik programlama sorusu beklemeniz gerektiğini göreceksiniz.
İşletim Sistemleri İşlemler, iş parçacıkları ve eşzamanlılık sorunları hakkında bilgi edinin. Muteksler, semaforlar, monitörler ve nasıl çalıştıklarını öğrenin. Kilitlenme ve livelock'un ne olduğunu ve nasıl önlenebileceğini anlayın. Bağlam değiştirme, zamanlama vb. Hakkında bilgi edinin.
Matematik Sayma, birleştirici ve olasılık konularında bilgi sahibi olmalısınız.
Google'ın yayınları Vaktiniz varsa Google'ın aşağıda listelenen çığır açan yayınlarını okuyun. Google Dosya Sistemi
Google Bigtable
Google MapReduce