Nadchodzący wywiad Google, szukający porady na temat przygotowań [zamknięte]

29

Cóż, uderzam w książki, gdzie tylko mogę. Zbliża się wywiad, pierwszy telefoniczny, na stanowisko inżyniera oprogramowania. Przeczytałem wszystkie posty na blogu, przeczytałem wszystkie relacje z wywiadów (niektóre dość stare), a sam Google nawet zasugerował listę książek do przeczytania, z których żadna nie zaskoczyłaby nikogo tutaj. Mimo to, po pewnym czasie przygotowań, nie mogę się oprzeć wrażeniu, że jest tak duży teren do pokonania i nigdy nie jestem pewien, czy pójść z głębokością, czy z szerokością. Ponownie nauczyłem się całego obszaru compsci, ale zapomniałem o większości drobiazgów, kiedy przechodziłem do innego.

Nie wiem więc, czy istnieje dobra odpowiedź na to pytanie, ale szukam praktycznych porad, jak poradzić sobie z pozostałymi tygodniami przed rozmową. Część mojego mózgu jest zmęczona stłoczeniem i oczywiście resztę trzeba wykorzystać na niektóre trudne problemy w moim obecnym miejscu pracy.

Szybka Ryba
źródło
3
Może to być bardziej odpowiednie na IMO firmyoveroverflow.com. Nie podajesz też poziomu pozycji, np. Początkującego, starszego itp., I swojego pochodzenia, co pozostawia wiele do założenia.
vpit3833,
3
@Fast Fish: powiedz co, wyluzuj. Podejdź do testu IQ, a jeśli zdobędziesz ponad 135 Google lub żaden Google, wiesz, że go masz.
Fanatic23,
9
Tutaj jest świetnie, ponieważ chodzi o programistów? Dlaczego ludzie z wyższym przedstawicielem lubią klasyfikować i organizować sprawy aż do kwarka?
Jonathan.
3
Jest już wiele pytań do rozmowy kwalifikacyjnej. Czym różni się twoje pytanie? Jeśli Twoja odpowiedź brzmi „Google”, to dlatego nie ma jej tutaj. Istnieje wiele witryn zajmujących się wywiadami Google, wiele z nich dostarczy ci lepszych informacji niż ten.
Nicole,
2
I zakładasz, że nadchodzący ankieter nie czai się na P.SE? :)
haylem,

Odpowiedzi:

30

Rzeczy, które powinieneś wiedzieć

  • Google chce cię zatrudnić!

    Krew życia każdej firmy produkującej oprogramowanie to jej pracownicy, a Google niczym się nie różni. Chce zatrudnić najlepszych i najzdolniejszych, a osoby przeprowadzające wywiad chcą, abyś osiągnął sukces tak samo jak ty.

  • Google dołoży wszelkich starań, aby ocenić Cię jak najdokładniej. To ich praca.

    Google jest firmą opartą na danych. Decyzje dotyczące zatrudnienia nie są podejmowane przez kierownika fiat. Zamiast tego każdy ankieter robi podczas rozmowy obszerne notatki, które łączą się w pakiet. Pakiet ten zostanie następnie sprawdzony przez oddzielny komitet , który ostatecznie podejmie decyzję. Więc jeśli po prostu nie „żelowałeś” z jednym z ankieterów, nie martw się! Liczy się to, jak dobrze sobie radzisz podczas wywiadu.

Umiejętności, które powinieneś mieć

Pamiętaj, aby odświeżyć następujące umiejętności / techniki przed rozmową kwalifikacyjną. Nawet jeśli nie zostanie ci zadane pytanie na ich temat, ich przejrzenie z pewnością sprawi, że Twoja głowa stanie się właściwym sposobem myślenia.

  • Struktury danych

    Jaka jest różnica między tablicą a połączoną listą? Drzewo i wykres? Kiedy używałbyś jednego nad drugim? Jak wpłynęłoby to na kompromis prędkości / pamięci?

    Pytanie podczas rozmowy kwalifikacyjnej nie kończy się na działającym rozwiązaniu. Bądź w stanie wyjaśnić czas działania twojego podejścia i jakie kompromisy możesz zrobić. Na przykład „gdybym wszystko buforował, zajęłoby to X koncertów pamięci RAM, ale działałoby szybciej, ponieważ ...”. Lub „gdybym trzymał posortowane drzewo binarne podczas wykonywania operacji X byłby wolniejszy, Y byłby szybszy itp.”

  • Algorytmy

    Podstawowe algorytmy przechodzenia przez wykres, algorytmy przechodzenia przez drzewo i dwa dobre podejścia do sortowania liczb.

    Pamiętaj, aby poćwiczyć rozwiązywanie niebanalnych problemów za pomocą programowania dynamicznego. To twój as w dziurze, jeśli chodzi o trudne pytania podczas rozmowy kwalifikacyjnej!

  • Tabele skrótów

    To jest ogromne. Dowiedz się wszystkiego, co należy wiedzieć o tabelach skrótów, od możliwości samodzielnego wdrożenia jednego z nich, po znajomość funkcji mieszania, dlaczego liczba segmentów powinna być liczbą pierwszą. Pojęcia związane z tablicami skrótów dotyczą niemal każdej dziedziny informatyki.

  • Mówiąc o sobie

    Pierwsze kilka minut rozmowy z rozmówcą to ważny czas na wyjaśnienie wszelkiego rodzaju doświadczeń, które Cię wyróżniają. Odpowiednie projekty, znaczące osiągnięcia techniczne i tym podobne. Pamiętaj, że osoba przeprowadzająca wywiad przeprowadziła wywiad z dziesiątkami, jeśli nie setkami inteligentnych ludzi takich jak Ty. Co możesz powiedzieć, że by ich to zaskoczyło?

    Na przykład w wywiadzie rozmawiałem z ankieterą o programie, który napisałem, aby zagrać w grę Go na studiach. Bardzo trudno jest napisać sztuczną inteligencję do gry Go, a ja mam okropnego Go-bota, żeby to udowodnić! Najważniejsze jest, abyś był sobą, a nie tylko inteligentną osobą, która umie programować.

Nie stresuj się zbytnio, to tylko wywiad jak każdy inny. Zapewniam cię, że nikt nie zadaje ci głupich pytań na temat włazów lub Mt. Fuji

Chris Smith
źródło
7

Zrelaksować się

jeśli twój wywiad jest podobny do mojego, ankieter nie jest po to, by cię skłonić do poddania się, jest tam, aby zobaczyć, jak myślisz .

EDYCJA: to był tylko wstępny wywiad telefoniczny, nic więcej o tym nie wiem ... a gdybym to zrobił, prawdopodobnie i tak nie byłbym w stanie ci powiedzieć!

Steven A. Lowe
źródło
2
Dostałeś pracę?
Manoj R
1
@Manoj: lol - nie, ale nie o to chodzi. tak naprawdę nie chciałem pracy, z którą rozmawiali, ale byłem ciekawy procesu i możliwości. nie miałem / nie zamierzam przeprowadzać się do Kalifornii!
Steven A. Lowe,
2

Pożyczył następujący artykuł z http://get-that-job-at-google.blogspot.in/

Znajomość kodowania C / C ++ i Java są preferowanymi językami programowania dla Google Interviewers. Musisz znać przynajmniej jeden z nich naprawdę dobrze. Oczekuje się, że napiszesz kod w wywiadach na ekranie telefonu, a także w wywiadach na miejscu.

Polecane książki do wywiadów z CS : Wprowadzenie do algorytmów - autor: Cormen

Wywiady programistyczne ujawnione

Cracking the Coding Interviews

Algorytmy wywiadów

Polecane strony do praktyki kodowania : InterviewStreet, Topcoder

Big-O To powinien być punkt wyjścia do przygotowania się do wywiadu algorytmicznego. Nie możesz walczyć z podstawową analizą złożoności, ponieważ zagwarantuje to, że nie zostaniesz zatrudniony. Powinieneś być zaznajomiony i rozumieć notacje O, Θ i Ω. Polecam przeczytanie sekcji poświęconej analizie złożoności z książki Struktury i algorytmy danych.

Sortowanie Powinieneś być w stanie z łatwością pisać algorytmy O (n * lgn), takie jak QuickSort i MergeSort. Porównaj i zrozum najlepsze, najgorsze i średnie zawiłości spraw. Uważam, że ten stół na wiki jest bardzo przydatny; zawiera listę ważnych właściwości wszystkich algorytmów sortowania. Nie zaniedbuj podstawowych algorytmów O (n ^ 2), takich jak sortowanie bąbelkowe lub sortowanie wstawiane, ponieważ inne algorytmy poprawiają je. Wywiady dotyczą bardziej ulepszenia podstawowego pomysłu, algorytmy sortowania pomogą w tym procesie.

Tabele skrótów W razie wątpliwości pomyśl o tabelach skrótów. Są przydatne w większości problemów i często pomagają nam poprawić złożoność czasową niektórych problemów poprzez buforowanie wyników.

Drzewa Przejdź przez podstawowe algorytmy budowy drzewa, przejścia i manipulacji. Powinieneś być w stanie zaimplementować algorytmy oparte na drzewach wyszukiwania binarnego. Powinieneś być zaznajomiony ze zrównoważonymi drzewami, chociaż nie oczekuje się, że napiszesz dla nich kod w wywiadzie: drzewa AVL, drzewa czerwono-czarne, drzewa Trie, drzewa n-ary itp. Niezbędna jest dogłębna wiedza na temat przemierzania zleceń, zleceń i zamówień w przedsprzedaży, ponieważ możemy rozwiązać wiele problemów związanych z drzewem, wykonując proste modyfikacje jednego z tych przejść.

Wykresy Wykresy to bardzo ważna koncepcja w informatyce. Przećwicz trzy podstawowe reprezentacje wykresów (obiekty i wskaźniki, macierz i listę przyległości) i zapoznaj się z ich zaletami i wadami. Podczas rozmowy nie ma dużo czasu, więc nie należy oczekiwać czegoś bardzo złożonego. Jednak podstawowe algorytmy przechodzenia przez graf (DFS i BFS) są koniecznością, należy je wdrożyć we wszystkich podstawowych reprezentacjach. Powinieneś być w stanie zaimplementować algorytmy Dijkstra lub Floyd-Warshall, a także algorytmy minimalnego drzewa opinającego (Kruskal i Prim). Dowiedz się więcej o sortowaniu topologicznym, ponieważ jest on zaskakująco bardzo przydatny w wielu problemach z porządkowaniem.

Programowanie dynamiczne Jest to prawdopodobnie najważniejszy temat, ponieważ wdrożenia są niewielkie. Powinieneś być w stanie zaimplementować 2-3 dynamiczne algorytmy w czasie 35-40 minut. Sprawdzając zasoby na tym blogu lub w Internecie, przekonasz się, że powinieneś spodziewać się co najmniej jednego pytania dotyczącego programowania dynamicznego na wywiad.

Systemy operacyjne Dowiedz się o procesach, wątkach i zagadnieniach dotyczących współbieżności. Wiedzieć o muteksach, semaforach, monitorach i ich działaniu. Dowiedz się, czym jest impas i blokada aktywności i jak ich uniknąć. Dowiedz się więcej o przełączaniu kontekstu, planowaniu itp.

Matematyka Powinieneś zapoznać się z liczeniem, kombinatoryką i prawdopodobieństwem.

Publikacje Google Jeśli masz czas, zapoznaj się z poniższymi publikacjami Google, przełomowymi. System plików Google

Google Bigtable

Google MapReduce

chinmay
źródło
Powinieneś opublikować odpowiedni tekst tutaj i unikać zepsucia linków.
śmiertelny
Przepraszam, jestem nowy na tym forum. Poprawiłem swoją odpowiedź
chinmay
1
„... Java ... preferowane języki programowania dla Google” Nie wiedziałem o tym. Wyjaśnia, dlaczego Chrome używa zasobów trzy razy więcej niż inne przeglądarki. (Puk puk. Kto tam jest? ... długa pauza ... Jawa!)
Josh Campbell
1

Jeśli spędziłeś ostatnie kilka miesięcy w karierze, możesz sobie pozwolić na relaks. To, co dzieje się w tym momencie w wywiadzie, nie może być zaplanowane, ale lepiej być zrelaksowanym i mieć energię, aby przetrwać rundy.

Maniak
źródło