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.
źródło
Odpowiedzi:
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
źródło
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ć!
źródło
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
źródło
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.
źródło