Próxima entrevista do Google, procurando alguns conselhos de preparação [fechado]

29

Bem, eu tenho batido os livros sempre que posso. Tenho uma entrevista chegando, a primeira via telefone, para uma posição de engenheiro de software. Eu li todas as postagens do blog, li todas as contas de entrevistas (algumas bem antigas), e o próprio Google sugeriu uma lista de leitura de livros, nenhum dos quais surpreenderia ninguém aqui. Ainda assim, depois de algum tempo me preparando, não consigo me livrar da sensação de que há um terreno tão grande para cobrir e nunca tenho certeza se devo ir com profundidade ou largura. Eu me encontrei reaprendendo toda uma área de compsci, apenas para esquecer a maioria dos detalhes importantes quando passo para outra.

Portanto, não sei se há uma boa resposta para essa pergunta, mas estou procurando conselhos práticos sobre como lidar com as semanas restantes antes da entrevista. Parte do meu cérebro está cansada de se entupir, e é claro que o restante deve ser utilizado para alguns problemas difíceis no meu local de trabalho atual.

Fast Fish
fonte
3
Isso poderia ser mais adequado em careeroverflow.com IMHO. Além disso, você não diz o nível da posição, como iniciante, sênior, etc, e seu histórico, deixando muito a supor.
vpit3833
3
@ Fast Fish: Diga-lhe o que, apenas relaxar. Faça um teste de QI e, se você obtiver mais de 135 ou mais do Google, sabe que o possui.
Fanatic23
9
É ótimo aqui, pois é sobre programadores ??? Por que pessoas com maior reputação gostam de classificar e organizar as coisas até o quark?
Jonathan.
3
Já existem muitas perguntas sobre entrevistas de emprego. Como sua pergunta é diferente? Se sua resposta for "Google", é por isso que não está aqui. Existem inúmeros sites que lidam com entrevistas do Google, muitos deles oferecem informações melhores do que esta.
Nicole
2
E você supõe que seu próximo entrevistador não se esconde no P.SE? :)
haylem

Respostas:

30

Coisas que você deve saber

  • O Google quer contratar você!

    O sangue da vida de qualquer empresa de software são seus funcionários e o Google não é diferente. Ele procura contratar os melhores e os mais inteligentes, e as pessoas que conduzem as entrevistas querem que você tenha sucesso tanto quanto você.

  • O Google fará o melhor para avaliar você com a maior precisão possível. É o trabalho deles.

    O Google é uma empresa orientada a dados. As decisões de contratação não são decididas pelo decreto do gerente. Em vez disso, cada entrevistador faz anotações extensas durante a entrevista que são combinadas em um pacote. Esse pacote será então revisado por um comitê separado , que acabará por tomar a decisão. Portanto, se você simplesmente não estava "gostando" de um de seus entrevistadores, não se preocupe! O que importa é o desempenho da entrevista.

Habilidades que você deve ter

Certifique-se de revisar as seguintes habilidades / técnicas antes de sua entrevista. Mesmo se você não fizer uma pergunta diretamente sobre isso, analisá-los certamente pode colocar sua cabeça na mentalidade certa.

  • Estruturas de dados

    Qual é a diferença entre uma matriz e uma lista vinculada? Uma árvore e um gráfico? Quando você usaria um sobre o outro? Como isso afetaria as trocas de velocidade / memória?

    Uma pergunta de entrevista não termina em uma solução funcional. Seja capaz de explicar o tempo de execução da sua abordagem e que tipos de trocas você poderia fazer. Por exemplo, "se eu armazenasse tudo em cache, seriam necessários X GB de RAM, mas seria mais rápido porque ...". Ou "se eu mantivesse a árvore binária classificada enquanto realizava as operações X seria mais lento, Y seria mais rápido etc."

  • Algoritmos

    Algoritmos de passagem de gráfico básico, algoritmos de passagem de árvore e duas boas abordagens para classificar números.

    Certifique-se de praticar a solução de um problema não trivial usando a Programação dinâmica. Esse é o seu ás no buraco quando se trata de perguntas difíceis para entrevistas!

  • Tabelas de hash

    Isso é imenso. Saiba tudo o que há para saber sobre tabelas de hash, desde a capacidade de implementar uma, a conhecer as funções de hash e por que o número de buckets deve ser um número primo. Os conceitos envolvidos com tabelas de hash são relevantes para praticamente todas as áreas da Ciência da Computação.

  • Falando sobre você

    Os primeiros minutos de bate-papo com o entrevistador são um momento importante para explicar qualquer tipo de experiência que o destaque. Projetos relevantes, realizações técnicas significativas e similares. Lembre-se de que a pessoa que conduz a entrevista entrevistou dezenas, senão centenas, de pessoas inteligentes como você. Então, o que você pode dizer que os surpreenderia?

    Por exemplo, em uma entrevista, conversei com o entrevistador sobre um programa que escrevi para jogar o jogo Go na faculdade. É muito difícil escrever uma IA para o jogo Go, e eu tenho um Go-bot horrível para provar isso! A linha inferior é ser você mesmo, e não apenas uma pessoa inteligente que sabe como programar.

Não se estresse demais, é apenas uma entrevista como qualquer outra. Tenha certeza de que ninguém fará perguntas estúpidas sobre tampas de bueiro ou monte. Fuji.

Chris Smith
fonte
7

Relaxar

se a sua entrevista é como a minha, o entrevistador não está lá para lhe enviar uma submissão, ele está lá para ver como você pensa .

EDIT: esta foi apenas a entrevista inicial por telefone, eu não sei mais nada além disso ... e se eu fiz, provavelmente não poderia te contar de qualquer maneira!

Steven A. Lowe
fonte
2
Você conseguiu o emprego?
Manoj R
1
@ Manoj: lol - não, mas esse não é o ponto. Na verdade, eu não queria o trabalho para o qual estavam entrevistando, mas estava curioso sobre o processo e quais eram as oportunidades. eu não tinha intenção de me mudar para a Califórnia!
Steven A. Lowe
2

Foi emprestado o seguinte artigo em http://get-that-job-at-google.blogspot.in/

Conhecimento em codificação C / C ++ e Java são as linguagens de programação preferidas para os entrevistadores do Google. Você deve conhecer pelo menos um deles muito bem. Você deverá escrever código nas entrevistas na tela do telefone e também nas entrevistas no local.

Livros recomendados para entrevistas em CS : Introdução aos algoritmos - por Cormen

Entrevistas de programação expostas

Quebrando as entrevistas de codificação

Algoritmos para entrevistas

Sites recomendados para a prática de codificação : InterviewStreet, Topcoder

Big-O Esse deve ser o ponto de partida na preparação para uma entrevista algorítmica. Você não deve se esforçar com a análise básica de complexidade, pois ela garantirá não ser contratada. Você deve estar familiarizado e entender as notações O, Θ e Ω. Eu recomendo a leitura da seção sobre análise de complexidade do livro Data Structures and Algorithms.

Classificação Você deve poder escrever algoritmos O (n * lgn) como QuickSort e MergeSort com facilidade. Compare e compreenda as melhores, piores e médias complexidades de casos. Achei esta tabela no wiki muito útil; lista propriedades importantes de todos os algoritmos de classificação. Não negligencie os algoritmos O (n ^ 2) básicos, como classificação de bolha ou inserção, pois outros algoritmos melhoram sobre eles. As entrevistas são mais sobre como melhorar uma idéia básica, os algoritmos de classificação ajudarão nesse processo.

Tabelas de hash Em caso de dúvida, pense em tabelas de hash. Eles são úteis na maioria dos problemas e freqüentemente nos ajudam a melhorar a complexidade do tempo de alguns problemas, armazenando em cache os resultados.

Árvores Passa por algoritmos básicos de construção, travessia e manipulação de árvores. Você deve poder implementar algoritmos com base em árvores de pesquisa binária. Você deve estar familiarizado com as árvores balanceadas, embora não seja esperado que você escreva um código para elas na entrevista: árvores AVL, árvores preto-vermelho, árvores Trie, árvores n-árias etc. podemos resolver muitos problemas de árvores, fazendo modificações simples em um desses percursos.

Gráficos Os gráficos são um conceito muito importante em Ciência da Computação. Pratique as três representações básicas de gráficos (objetos e ponteiros, matriz e lista de adjacências) e familiarize-se com seus prós e contras. Não há muito tempo durante a entrevista, então você não deve esperar algo muito complexo. No entanto, os algoritmos de passagem de gráfico básico (DFS e BFS) são obrigatórios; você deve implementá-los em todas as representações básicas. Você deve poder implementar os algoritmos Dijkstra ou Floyd-Warshall, bem como os algoritmos mínimos de spanning tree (Kruskal e Prim). Aprenda sobre a classificação topológica, pois é surpreendentemente muito útil em muitos problemas de pedidos.

Programação dinâmica Este é provavelmente o assunto mais importante, pois as implementações são pequenas. Você deve implementar 2-3 algoritmos dinâmicos durante um período de 35 a 40 minutos. Ao verificar os recursos deste blog ou da Web, você deve esperar pelo menos uma pergunta de programação dinâmica por entrevista.

Sistemas operacionais Aprenda sobre processos, threads e problemas de simultaneidade. Conheça mutexes, semáforos, monitores e como eles funcionam. Entenda o que são deadlock e livelock e como evitá-los. Aprenda sobre alternância de contexto, programação etc.

Matemática Você deve se familiarizar com a contagem, combinatória e probabilidade.

Publicações do Google Leia as publicações inovadoras do Google listadas abaixo, se você tiver tempo. Sistema de arquivos do Google

Google Bigtable

Google MapReduce

chinmay
fonte
Você deve postar o texto relevante aqui e evitar o rot-link.
mortal
Desculpe, sou novo neste fórum. Eu melhorei a minha resposta #
31313 chinmay
1
"... Java ... preferia linguagens de programação para o Google" Eu não sabia disso. Explica por que o Chrome usa 3x os recursos que outros navegadores. (Batida da batida quem está lá ... longa pausa ... Java.?!)
Josh Campbell
1

Se você passou os últimos meses na careercup, pode relaxar. O que acontece naquele momento da entrevista não pode ser planejado, mas é melhor relaxar e ter energia para durar as rodadas.

Nerd
fonte