Nas últimas semanas, uma onda de artigos sobre o Habril sobre como as entrevistas são realizadas se tornou mais frequente.

O Google está constantemente procurando engenheiros. Como SRE, posso dizer com certeza que você
é necessário em nossas fileiras . Biscoitos nas cozinhas americanas e café nas máquinas de café estão esperando por você. Tudo que você precisa fazer é obter uma entrevista. Isso é difícil, mas real - uma vez que já
descrevi minha história como candidato a emprego, e agora, entre outras coisas, também estou conduzindo entrevistas. Então agora vou contar como conduzimos entrevistas com engenheiros.
Não, não me tornei recrutador.
O processo de entrevista envolve primeiro uma conversa com um recrutador. Essa é uma conversa geral do tipo "o que-onde-por que" (ou seja, uma descrição do processo para o seu caso específico) e a mesma
triagem feita por todos do questionário, com várias opções de resposta. A triagem na época me pareceu muito básica, suspeito que você já tenha respondido a essas perguntas centenas de vezes. As entrevistas serão conduzidas por engenheiros - seus futuros colegas (próximos ou distantes, é assim que as coisas acontecem, nosso planeta é muito pequeno).
(Importante: descrevo o processo como eu conheço, na posição de engenharia (Engenheiro de Software (SWE) e Engenheiro de Confiabilidade do Site (SRE).) Use as informações fornecidas aqui apenas para representar aproximadamente o que esperar - mas não uma oferta pública! As informações exatas sobre como o processo irá para você pessoalmente, única e exclusivamente informações de seu recrutador.Informações também já podem estar desatualizadas. - assistir Consulte a seção Como contratamos para obter informações atualizadas no momento da leitura deste artigo.Primeiro, haverá algumas entrevistas por meio de
hangouts / meet . Esta é uma entrevista completa, como eu disse acima - os engenheiros farão entrevistas, e presume-se que o candidato "pense em voz alta" no processo + escreva uma dúzia ou duas linhas em qualquer linguagem de programação (sim, infelizmente, até agora no Google).
Minha entrevista foi projetada para ~ 45 mais ou menos dez minutos, mas geralmente tento caber exatamente em 45 minutos. A partir desse momento, cinco minutos para uma breve introdução e informações gerais, 30 a 35 minutos para perguntas e discussão e cinco minutos para perguntas do candidato (se houver).
Em geral, o objetivo do engenheiro entrevistador é coletar informações
sobre vários eixos das habilidades do candidato (como habilidades de codificação, conhecimento de algoritmos e estruturas de dados, etc.). Mas a coisa mais importante na entrevista é descobrir como uma pessoa pensa. Ou seja, é sempre importante encontrar o limite quando uma pessoa não conhece a solução. Cada entrevistador tem sua própria técnica (especialmente para entrevistas por telefone): alguém guarda uma dúzia de perguntas armazenadas, desde perguntas de aquecimento (cuja solução é literalmente escrever um ciclo de três linhas) até perguntas difíceis de explicar. Alguém tem 2 a 3 perguntas “favoritas”, qualquer uma das quais pode ser alterada por uma dúzia de lados e como simplificar e complicar, dependendo do que o interlocutor demonstrar. Tenho certeza de que ainda existem opções, mas não as conheço.
Tentei as duas técnicas e prefiro a segunda: dependendo do currículo e da auto-estima do candidato, uso um formulário de pergunta mais apropriado. A pergunta está sempre aberta (afinal, quando foi a última vez que você viu a declaração exata do problema em nosso setor?) - e dependendo do que o candidato pede, eu simplifico ou complico a pergunta para que, no final dos primeiros 10 minutos, o candidato já escreveu uma solução trivial. Isso raramente é difícil, afinal, a solução é trivial.
As perguntas “por que você tem certeza de que funciona?” Também são triviais. (se o candidato não descreveu imediatamente os limites de aplicabilidade ou testes) e qual é a complexidade da solução. Apenas fornece informações de que o candidato sabe codificar e entende o que ele escreveu. Mas a codificação não é suficiente - você precisa pensar, então as perguntas a seguir são: como se livrar das restrições? Como fazer melhor? Ou (o que acontece quando o candidato é muito bom ou apenas conhece a solução por experiência), como fazer o código funcionar sob essas ou outras restrições adicionais.
Isso fornece um pacote de sinais imediatamente - mas quanto o candidato sabe como se adaptar às mudanças na tarefa? E quanto está pronto para pensar em soluções altamente alternativas? A discussão em si também é interessante - a pergunta sempre é feita da maneira mais aberta possível, para que haja dezenas de maneiras de entendê-la. O ambiente de negócios está sendo esclarecido ou apenas limitações técnicas? As limitações técnicas são levadas em consideração? Por exemplo, várias vezes foi quando eu disse que "1e12 objetos são esperados" e o candidato não avalia quanto isso é. E isso é quase um terabyte, se byte por objeto. Ou ~ 116,5 gigabytes, se por bit. Ou 4,3 terabytes, se int32. Bem, você entendeu. Não, lembrando que isso não é necessário - não no exame, ninguém levou a calculadora. O telefone está, sim, mesmo na pesquisa. E, a propósito, você pode perguntar.
E é assim que eu aumentarei a dificuldade ou simplesmente modificarei a tarefa por todo o tempo disponível da entrevista. Sim, é possível que o entrevistado seja o principal pão de trabalho, e ele realiza essas tarefas no café da manhã, almoço e jantar. Bem, neste caso
, meu cartão de viagem tem uma pergunta completamente diferente. Por exemplo, em vez de gráficos - para programação dinâmica. Ou em listas. Ou, em geral, a questão é: onde a solução ideal exigirá um monte. O principal é um ambiente diferente, uma tarefa diferente.
A coisa mais importante aqui é dar ao mesmo tempo uma tarefa muito simples para que o candidato possa resolver e mostrar habilidades básicas e elevar a dificuldade a um nível em que o candidato não saiba a resposta para poder mostrar como pensa. Se, ao mesmo tempo, ele conseguir encontrar uma solução para um problema mais complexo - tudo bem, mas se o candidato conseguir resolver tudo, isso será uma punção do entrevistado, que não preparou uma questão de complexidade ainda maior.
Quer detalhes? Aqui está uma das perguntas que você
NÃO será perguntado simplesmente porque ele já é considerado "vazado" - ou seja, é provável que o candidato não pense nele, mas lembre-se. Como escrevi acima, é importante como o candidato pensa, e não como ele se lembra ... Então, a pergunta é:
implemente o cache da LRU .
Em geral, a tarefa é bonita, pois permite muitas formas da tarefa e muitas formas de interpretação. Por exemplo, você pode fazer uma pergunta diretamente na testa "implementar cache LRU". Pode ser formulado como “imagine que nosso serviço para processar uma solicitação verifique a existência de um objeto externo. Como posso acelerar o processamento? ” - esperando uma frase muito óbvia "vamos apenas armazenar em cache o resultado". O que pode ser perguntado "mas como?". E "e se quisermos controlar o máximo de memória consumida por esse cache?". A questão deixa em aberto - e qual API deve fornecer esse cache. Para simplificar, você sempre pode reduzi-lo para definir (chave, valor) + get (chave); mas você pode adicionar TTL. É possível com get (key, fetch_func). Em geral, a avaliação da API proposta também pode fornecer um sinal adicional sobre a experiência e o estilo de pensamento do candidato.
A solução trivial no hashmap fornecerá O (1) em get () + O (N) no set () (é assim, certo?). Se todos os elementos forem vinculados adicionalmente (organizando um link duplo), será possível obter O (1) para ambas as operações. Se você precisar adicionar TTL ... acho que a ideia é clara. Se você quiser, vamos discutir nos comentários: imagine que você fez essa pergunta, como você vai pensar? que solução você propõe?
E em que linguagem de programação? Sim, do que você gosta, no qual mais. C ++? Maravilhoso. Vai? Ótimo Python Você é sempre bem vindo. Perl? Agora raro, mas sim também. E Java sim. E javascript (embora seja mais complicado considerando a memória da solução).
Assim, após cerca de 40 minutos do início da entrevista, o voo de pensamento do candidato será interrompido, mas isso não significa que tudo está ruim. Significa apenas que o tempo acabou.
Após a própria entrevista, o entrevistador escreve um relatório, geralmente com uma transcrição detalhada do que aconteceu na entrevista. Este relatório será usado para tomada de decisão. Pessoalmente, reservo cerca de uma hora imediatamente após a entrevista para gravar os minutos completos da conversa com nova memória; alguns simplesmente escrevem no papel uma transcrição quase completa durante a entrevista.
Após uma entrevista por telefone, com base nos relatórios de todos os entrevistados, é tomada uma decisão sobre o convite para o confronto. Será um dia inteiro de entrevistas em um dos escritórios: várias entrevistas pela manhã, depois o almoço (e conhecer a sala de jantar no escritório :) e mais algumas. Ao entrevistar na SRE, serão entrevistas diferentes, cuja lista o recrutador informará, incluindo codificação e
NALSD : projeto de sistema em grande escala não abstrato. A chave é não abstrata (isto é, não as palavras gerais "precisamos de um banco de dados") e "grande escala" (ou seja, se um banco de dados for necessário, em seguida, com petabytes, por exemplo). Você pode
ler mais aqui e muito mais onde encontrar materiais na pesquisa. Recrutei vários links para treinamento. Este é um ponto muito importante na entrevista - simplesmente porque, ao trabalhar para uma empresa do Google, você precisa pensar e considerar os sistemas sob essas perspectivas.
Em geral, as entrevistas pessoais não são muito diferentes das entrevistas por telefone - questões semelhantes e um processo semelhante. Ao mesmo tempo, tentamos organizar as perguntas para não fazer a mesma pergunta duas vezes.
O que mais posso acrescentar sobre o processo de entrevista? Divirta-se! Não, sério, relaxe e divirta-se! Uma entrevista por telefone? Apenas uma conversa com um interlocutor interessante. Novas informações e novas experiências garantidas. Entrevistas presenciais? Mais divertido! Você está em uma viagem de negócios às custas do futuro empregador :) Dê um passeio pela cidade, encontre amigos. Um dia inteiro de entretenimento e conversas interessantes também é garantido.
E depois desse dia de diversão, todos que o entrevistaram também escrevem um relatório, com o protocolo completo da conversa. Todos os dados da entrevista são reunidos e
revisados por um comitê independente . Isso é importante: nenhum dos que o conhece pessoalmente participa da decisão. Nenhum dos entrevistados também está diretamente envolvido. Tudo isso visa eliminar o viés na decisão. A avaliação é apenas para conformidade com o padrão exigido do padrão de contratação. Se você tiver azar e falhar, sempre poderá tentar novamente em um ano. Para este ano, você pode sistematizar seu conhecimento e preencher as lacunas descobertas.
Tem alguma pergunta? Pergunte nos comentários.
Existe algum interesse em tentar a entrevista antes da entrevista? Existem serviços para entrevistas simuladas (por exemplo,
uma e
duas vezes , mas eles não são da própria empresa, portanto não há garantias); Às vezes, o Google realiza campanhas semelhantes.
E sim, sinta-se
à vontade
para se
aplicar . Se você acredita na mágica de “preencher um funcionário” - escreva para mim, enviarei sua inscrição. Welkam!