Como se preparar para uma entrevista no Google e não conseguir passar. Duas vezes

Como se preparar para uma entrevista no Google e não conseguir passar. Duas vezes

O título do artigo pode parecer um fracasso épico, mas na verdade as coisas não são tão simples. E, no geral, essa história terminou de forma bastante positiva, mesmo que não no Google. Mas isso já é assunto para outro artigo. Neste artigo, vou falar sobre três coisas: como foi o meu processo de preparação, como foram as entrevistas no Google e por que, na minha opinião, as coisas não são tão claras como podem parecer.

Como tudo começou

Uma fria noite de inverno em Chipre, de repente me ocorreu que meus conhecimentos em Ciência da Computação eram bastante inferiores à média, e eu precisava fazer algo a respeito. Se alguém ainda não leu sobre por que a noite em Chipre era fria, pode descobrir. aqui. Depois de alguma reflexão, decidi que o primeiro passo seria fazer um curso online sobre algoritmos e estruturas de dados. Um ex-colega me falou sobre o curso de Robert Sedgewick na Coursera. O curso é dividido em duas partes (parte 1 e parte 2). Se, por acaso, os links mudarem, é sempre possível pesquisar pelo nome do autor. Cada parte dura 6 semanas. No início da semana são disponibilizadas as palestras, e ao longo da semana também é necessário fazer exercícios. A primeira parte do curso cobre as estruturas de dados básicas, os principais tipos de ordenação e a complexidade dos algoritmos. A segunda parte é mais avançada, começando com grafos e terminando com assuntos como Programação Linear e Intractabilidade. Após considerar tudo isso, cheguei à conclusão de que isso é exatamente o que eu precisava. Aqui, aliás, o leitor curioso pode perguntar: qual é a relação com o Google? E, de fato, até esse momento ele não tinha nada a ver com isso. Mas eu precisava de um objetivo, pois praticar por 12 semanas à noite sem um propósito é algo complicado. E qual pode ser o objetivo ao adquirir novos conhecimentos? Claro, aplicá-los na prática. Na vida cotidiana, isso é bastante desafiador, mas em uma entrevista em uma grande empresa, isso é fácil. Uma rápida pesquisa no Google mostrou que o Google (desculpe pela redundância) é uma das maiores empresas na Europa (e eu estava focando apenas na Europa), onde são realizadas essas entrevistas. O escritório deles está localizado em Zurique, Suíça. Portanto, decidido — vamos estudar e nos candidatar ao Google.

Preparação para a primeira rodada

Doze semanas passaram despercebidas, e eu terminei ambos os cursos. Minhas impressões sobre os cursos são mais do que positivas, e eu os recomendo a todos os interessados. Gostei dos cursos pelos seguintes motivos:

  • O professor fala inglês de forma clara o suficiente
  • O material é bem estruturado
  • Apresentações impressionantes, mostrando os detalhes de cada algoritmo
  • Seleção adequada de material
  • Exercícios interessantes
  • Os exercícios são verificados automaticamente no site, após o que um relatório é gerado

Meu trabalho nos cursos geralmente seguia o seguinte esquema. Em 1-2 dias, eu assistia às palestras. Depois, eu fazia um teste rápido sobre o material. O restante da semana eu realizava os exercícios em várias iterações. Após a primeira, obtinha meus 30-70%, e as seguintes levavam meu resultado para 97-100%. O exercício geralmente consistia na implementação de algum algoritmo, por exemplo, Seam carving ou bzip.

Após o término dos cursos, percebi que muitos conhecimentos trazem muitas tristezas. Se antes eu apenas sabia que nada sabia, agora comecei a perceber exatamente o que não sei.

Como ainda era apenas maio, e eu planejava a entrevista para o outono, decidi continuar minha educação. Após revisar os requisitos da vaga, decidi seguir paralelamente em duas direções: continuar estudando algoritmos e fazer um curso básico de aprendizado de máquina. Para o primeiro objetivo, decidi mudar de cursos para um livro e escolhi a obra monumental de Steven Skiena, 'Algoritmos. Manual de Desenvolvimento'. Não tão monumental quanto o de Knuth, mas ainda assim. Machine Learning.

Seis meses se passaram, e eu terminei o curso e o livro.

Vamos começar com o livro. A leitura foi bastante interessante, embora não simples. Em geral, eu recomendaria o livro, mas não de imediato. No geral, o livro oferece uma análise mais profunda do que aprendi nos cursos. Além disso, descobri (do ponto de vista formal) coisas como heurísticas e programação dinâmica. Naturalmente, eu já havia usado isso antes, mas não sabia como se chamava. O livro também inclui algumas histórias da vida do autor (War Story), que aliviam um pouco a academicidade da apresentação. Aliás, a segunda metade do livro pode ser deixada de lado, pois é mais uma descrição de problemas existentes e métodos para resolvê-los. É útil se aplicado regularmente na prática, caso contrário, será esquecido imediatamente.

O curso me agradou muito. O autor claramente sabe o que está fazendo e explica de forma interessante. Além disso, eu lembrava de uma boa parte, especialmente álgebra linear e os fundamentos das redes neurais, desde a universidade, então não tive grandes dificuldades. A estrutura do curso é bastante padrão. O curso é dividido em semanas. A cada semana, primeiro há aulas misturadas com testes curtos. Após as palestras, é dado um trabalho que precisa ser feito, enviado e que será automaticamente corrigido. Em resumo, a lista de temas abordados no curso é a seguinte:
— função de custo
— regressão linear
— descida do gradiente
— escalonamento de características
— equação normal
— regressão logística
— classificação multiclasse (um contra todos)
— redes neurais
— retropropagação
— regularização
— viés/variância
— curvas de aprendizado
— métricas de erro (precisão, recall, F1)
— Máquinas de Vetores de Suporte (classificação de margem larga)
— K-means
— Análise de Componentes Principais
— detecção de anomalias
— filtragem colaborativa (sistema de recomendação)
— descidas do gradiente estocástico, mini-lote e lote
— aprendizado online
— map reduce
— análise de teto
Após concluir o curso, havia uma compreensão de todos esses temas. Depois de 2 anos, quase tudo foi naturalmente esquecido. Recomendo para quem não está familiarizado com aprendizado de máquina e deseja entender bem as questões básicas para avançar.

Primeira abordagem

Era setembro e chegou a hora de pensar na entrevista. Como candidatar-se através do site é uma tarefa bastante complicada, comecei a procurar conhecidos que trabalham no Google. A escolha recaiu sobre datacompboy, pois ele era a única pessoa que eu conhecia diretamente (mesmo que não pessoalmente). Ele concordou em passar meu currículo, e logo recebi uma mensagem do recrutador pedindo para agendar um horário no calendário dele para a primeira conversa. Após alguns dias, a chamada ocorreu. Tentamos nos comunicar pelo Hangouts, mas a qualidade estava péssima, então mudamos para o telefone. Primeiro discutimos rapidamente as razões e os objetivos, e depois partimos para a triagem técnica. Consistia em uma dezena de perguntas do tipo 'qual é a complexidade de inserção em um hash map', 'quais árvores balanceadas você conhece'. Não é difícil, se você tiver um conhecimento básico sobre esses assuntos. A triagem foi bem e, com base nos resultados, decidimos organizar a primeira entrevista para daqui a uma semana.

A entrevista também foi pelo Hangouts. Primeiro conversamos sobre mim por cerca de 5 minutos, depois partimos para um desafio. O desafio era sobre grafos. Eu rapidamente entendi o que precisava ser feito, mas escolhi o algoritmo errado. Quando comecei a escrever o código, percebi isso e mudei para outra abordagem, que acabei completando. O entrevistador fez algumas perguntas sobre a complexidade do algoritmo e perguntou se havia uma forma mais rápida. Eu meio que fiquei paralisado e não consegui. Nesse momento, o tempo acabou e nos despedimos. Depois de uns 10 minutos, percebi que, ao invés do algoritmo de Dijkstra que eu usei, nessa tarefa específica poderia ter usado a busca em largura, o que seria mais rápido. Depois de um tempo, o recrutador me ligou e disse que a entrevista, no geral, foi boa e que deveríamos organizar outra. Combinamos para daqui a uma semana.

Desta vez, as coisas foram piores. Se na primeira vez o entrevistador foi amigável e comunicativo, nesta vez ele estava meio sombrio. Eu não consegui entender a tarefa logo de cara, embora as ideias que eu apresentei pudessem levar à solução. No final, após algumas dicas do entrevistador, eu cheguei à solução. Desta vez, novamente se tratou de uma busca em largura, mas a partir de vários pontos. Eu escrevi a solução, consegui cumprir o tempo, mas esqueci dos casos limites. Após um tempo, o recrutador ligou e informou que, desta vez, o entrevistador ficou insatisfeito, pois na opinião dele eu precisei de dicas demais (3 ou 4) e estava constantemente mudando o código durante a escrita. Após duas entrevistas, a decisão foi não prosseguir e adiar a próxima entrevista por um ano, se eu tivesse esse desejo. Assim, nos despedimos.

E dessa história eu tirei algumas conclusões:

  • A teoria é boa, mas é preciso se orientar rapidamente nela.
  • Teoria sem prática não ajuda. É necessário resolver questões e automatizar a escrita de código.
  • Muito depende do entrevistador. E não há nada que se possa fazer sobre isso.

Preparação para a segunda tentativa

Após refletir sobre a situação, decidi tentar novamente em um ano. E revisei um pouco o objetivo. Se antes o objetivo principal era o estudo, e a entrevista no Google era uma cenoura distante, agora passar na entrevista era o objetivo, e o estudo era o meio.
Então, um novo plano foi desenvolvido, que incluía os seguintes pontos:

  • Continuar estudando a teoria através da leitura de livros e artigos.
  • Resolver questões algorítmicas na quantidade de 500-1000.
  • Continuar estudando a teoria através de vídeos.
  • Continuar estudando a teoria por meio de cursos.
  • Estudar a experiência de outras pessoas sobre como passar em entrevistas no Google.

O plano foi cumprido por mim em um ano. A seguir, descreverei o que exatamente fiz em cada um dos pontos.

Livros e artigos

A quantidade de artigos que li eu já nem me lembro, li tanto em russo quanto em inglês. O site que foi mais útil, provavelmente, foi este aqui. Aqui está reunida uma descrição de muitos algoritmos interessantes com exemplos de código.

Li livros li 5: Algorithms, 4ª edição (Sedgewick, Wayne), Introduction to Algorithms 3ª Edição (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4ª edição (Gayle Laakmann), Programming Interviews Exposed 2ª edição (Mongan, Suojanen, Giguere), Elements of Programming Interviews (Aziz, Lee, Prakash). Eles podem ser divididos em 2 categorias. A primeira inclui os livros de Sedgewick e Cormen. Isso é teoria. Os outros são preparação para entrevistas. Sedgewick no livro discute aproximadamente as mesmas coisas que em seus cursos. Apenas em forma escrita. Não faz muito sentido ler atentamente se você já fez o curso, mas vale a pena dar uma olhada de qualquer maneira. Se você não assistiu ao curso, faz sentido ler. Cormen me pareceu um pouco entediante. Honestly, eu consegui terminar com certa dificuldade. Levantei apenas teorema mestre, sim, algumas estruturas de dados raramente usadas (Fibonacci heap, árvore van Emde Boas, radix heap).

Vale a pena ler pelo menos um livro para a preparação para a entrevista. Todos eles são construídos mais ou menos pelo mesmo princípio. Descrevem o processo da entrevista em grandes empresas de tecnologia, oferecem coisas básicas de Ciência da Computação, problemas sobre essas coisas básicas, soluções para os problemas e análise das soluções. Dentre os três mencionados, eu recomendaria talvez Cracking the Coding Interview como principal, e os outros por preferência.

Problemas algorítmicos

Este foi, provavelmente, o ponto mais interessante da preparação. Você pode, é claro, sentar e simplesmente resolver problemas. Para isso, existem muitos sites diferentes. Eu usei principalmente três: Hackerrank, CodeChef e LeetCode. No CodeChef, os problemas são divididos por dificuldade, mas não por tópicos. No Hackerrank, por dificuldade e por tópicos.

Mas, como eu logo descobri, existe uma maneira mais interessante. E são as competições (desafios de programação ou concursos de programação). Todos os três sites oferecem isso. No entanto, com o LeetCode, há um problema — um fuso horário inconveniente. Portanto, eu não participei desse site. Hackerrank e CodeChef oferecem uma quantidade bastante grande de várias competições, com duração de 1 hora a 10 dias. Diferentes formatos têm diferentes regras, mas é algo que poderia ser discutido por um longo tempo. O principal motivo pelo qual as competições são boas é a introdução de um elemento competitivo (e novamente a tautologia) no processo de aprendizado.

No total, participei de 37 competições no Hackerrank. Dentre elas, 32 eram classificatórias e 5 eram patrocinadas (eu até ganhei 25$ em uma delas) ou apenas por diversão. Em competições classificatórias, entrei 10 vezes no top 4%, 11 vezes no top 12% e 5 vezes no top 25%. Os melhores resultados foram 27/1459 em uma competição de 3 horas e 22/9721 em uma competição semanal.

Transitei para o CodeChef quando as competições no Hackerrank começaram a acontecer com menos frequência. No total, consegui participar de 5 competições. O melhor resultado foi 426/5019 em uma competição de dez dias.

No total, em competições e apenas por diversão, decidi resolver um pouco mais de 1000 problemas, o que se encaixava no plano. Infelizmente, agora não tenho tempo livre para continuar com a atividade competitiva, assim como não tenho um objetivo que justificasse o tempo não livre. Mas foi divertido. Recomendo a quem se interessar a encontrar pessoas com interesses semelhantes. Em dupla ou em grupo é muito mais interessante. Eu me diverti fazendo isso com um amigo, então talvez por isso tenha sido tão bom.

Reprodução de vídeo

Depois de ler o livro de Skiena, me interessei pelo que ele faz. Assim como Sedgwick, ele é professor na universidade. Por isso, é possível encontrar gravações de suas aulas na internet. Decidi assistir ao curso COMP300E — Desafios de Programação — 2009 HKUST. Não posso dizer que gostei muito. Primeiro, a qualidade do vídeo não é muito boa. Em segundo lugar, não tentei resolver os problemas discutidos no curso. Portanto, meu envolvimento não foi muito alto.
Além disso, enquanto resolvia os problemas, procurando encontrar o algoritmo certo, me deparei com os vídeos de Tushar Roy. Ele trabalhou na Amazon e agora trabalha na Apple. Como descobri mais tarde, ele tem um canal no YouTube, onde ele publica análises de vários algoritmos. No momento da escrita deste artigo, o canal contém 103 vídeos. E devo dizer que as análises dele são muito bem feitas. Tentei assistir a outros autores, mas não consegui me envolver. Então, definitivamente, recomendo este canal para assistir.

Conclusão dos cursos

Aqui, não fiz nada de especial. Assisti a vídeos do Android Developer Nanodegree do Google e fiz um curso da ITMO Como Vencer Competições de Programação: Segredos dos Campeões. O Nanodegree é bastante bom, embora eu não tenha aprendido nada de novo lá. O curso da ITMO, em termos de teoria, é um pouco confuso, mas os problemas eram interessantes. Eu não recomendaria começar por ele, mas, de qualquer forma, o tempo gasto não foi em vão.

Estudar a experiência de outras pessoas

Muitas pessoas tentaram entrar no Google. Alguns conseguiram, outros não. Alguns escreveram artigos sobre isso. Entre as coisas interessantes, destaco esta e esta. No primeiro caso, a pessoa preparou uma lista do que precisava aprender para se tornar um Software Engineer e entrar no Google. No final, ela acabou indo para a Amazon, mas isso já não é tão importante. O segundo manual foi escrito pela engenheira do Google, Larisa Agarova (Larrr). Além desse documento, você também pode ler seu blog.

. Vale a pena ler as avaliações sobre entrevistas no Glassdoor. Elas são mais ou menos semelhantes, mas dá para extraírem algumas informações úteis.

Não vou fornecer links para outros artigos menores, você mesmo pode encontrá-los facilmente no Google.

A segunda tentativa

E um ano se passou. Foi um período bastante intenso de estudos. Mas na nova primavera, eu chegava com conhecimentos teóricos muito mais profundos e habilidades práticas desenvolvidas. Com algumas semanas restantes até o fim do prazo que tinha para me preparar, recebi um e-mail de um recrutador do Google, perguntando se eu ainda tinha interesse em trabalhar no Google e se não me importava de conversar com ele. É claro que eu não me importei. Agendamos uma chamada para a próxima semana. Também me pediram um currículo atualizado, ao qual anexei uma breve descrição do que fiz ao longo do ano no trabalho e de um modo geral.

Depois de discutir sobre a vida, decidiram que em uma semana haveria uma entrevista pelo Hangouts, tudo como no ano anterior. A semana passou, chegou a hora da entrevista, mas o entrevistador não apareceu. Depois de 10 minutos, eu já estava começando a ficar nervoso, quando de repente alguém entrou no chat. Como ficou claro um pouco depois, meu entrevistador não conseguiu aparecer por algum motivo e encontraram uma substituição. A pessoa estava um pouco despreparada tanto em termos de configuração do computador quanto para conduzir a entrevista. Mas depois disso, tudo correu bem. Resolvi a tarefa rapidamente, descrevi onde poderiam haver armadilhas e como contorná-las. Discutimos várias opções diferentes para a tarefa, a complexidade do algoritmo. Depois ainda conversamos por 5 minutos, o engenheiro compartilhou suas impressões sobre trabalhar em Munique (em Zurique, aparentemente, não encontraram uma substituição urgente), e assim nos despedimos.

No mesmo dia, o recrutador entrou em contato comigo e informou que a entrevista foi ótima e que eles estavam prontos para me convidar para uma entrevista no escritório. No dia seguinte, fizemos uma chamada pelo Hangouts e discutimos os detalhes. Como eu precisava fazer o visto, decidimos agendar a entrevista para daqui a um mês.

Enquanto preparava os documentos, também discutia com o recrutador a entrevista que se aproximava. A entrevista padrão no Google consiste em 4 questões de algoritmos e uma de System Design. No entanto, como eu estava me candidatando para desenvolvedor Android, me foi informado que a parte da entrevista teria especificidades sobre Android. Quais exatamente e em que consistiriam essas especificidades, eu não consegui descobrir com o recrutador. Pelo que entendi, isso foi introduzido relativamente recentemente, e ele mesmo não estava muito a par. Também fui agendado para duas sessões de treinamento: como conduzir uma entrevista de algoritmos e como conduzir uma entrevista de System Design. As sessões foram medianamente úteis. Nelas, também ninguém conseguiu me dizer o que perguntam aos desenvolvedores Android. Portanto, minha preparação nesse mês se resumiu ao seguinte:

  • Compra de um quadro branco e escrita de 2 a 3 dezenas dos algoritmos mais populares nele de memória. De 3 a 5 por dia. No total, cada um foi escrito várias vezes.
  • Revisitar várias informações sobre Android que não uso todos os dias.
  • Assistir a alguns vídeos sobre Big Scale e tudo mais.

Como já mencionei, paralelamente, eu estava preparando os documentos para a viagem. Primeiro, pediram meus dados para fazer uma carta de convite. Depois, tentei descobrir quem, em Chipre, faz vistos para a Suíça, já que a embaixada suíça não cuida disso. Como se revelou, essa tarefa é incumbida do consulado da Áustria. Liguei e agendei uma consulta. Eles exigiram uma pilha de documentos, mas nada de muito interessante. Foto, passaporte, visto de residência, um monte de certificados diferentes e, claro, a carta de convite. Enquanto isso, a carta não chegava. No final, fui com uma impressão comum, e isso funcionou bem. A carta chegou uns dias depois, mas o FedEx cipriota não conseguiu encontrar meu endereço e tive que ir buscá-la pessoalmente. Aproveitei para pegar também um pacote no mesmo FedEx, que eles também não conseguiram me entregar porque não encontraram o endereço, e que estava lá desde junho (5 meses, cara). Como eu não sabia disso, não imaginava que eles a tinham. Consegui o visto a tempo, depois disso reservaram um hotel e me ofereceram opções de voo. Ajustei as opções para que ficassem mais convenientes. Já não havia voos diretos, então fui para lá via Atenas e voltei via Viena.

Depois que todas as formalidades da viagem foram resolvidas, passaram-se mais alguns dias e finalmente eu voei para Zurique. Cheguei sem incidentes. Do aeroporto até a cidade, fui de trem — rápido e conveniente. Depois de me perder um pouco pela cidade, encontrei o hotel e fiz o check-in. Como o hotel estava reservado sem refeições, jantei nas proximidades e fui dormir, pois o voo era de manhã e já estava com sono. No dia seguinte, tomei café da manhã no hotel (por um custo adicional) e fui para o escritório do Google. Em Zurique, o Google tem vários escritórios. A minha entrevista não era no central. E, no geral, o escritório parecia bastante comum, então não tive a chance de ver todas as regalias de um

Entrevista número um

A primeira entrevista foi sobre Android. E não teve nada a ver com algoritmos. Uma surpresa, de fato. Mas tudo bem, assim é mais familiar. Pediram para fazer um componente UI específico. Primeiro discutimos o que e como. Eu sugeri uma solução em RxJava, descrevi o que exatamente faria e porquê. Disseram que era bom, mas que faríamos com os recursos do framework Android. E ainda escreveríamos o código no quadro. E não apenas um componente, mas toda a Activity que usa esse componente. Para isso eu não estava preparado. Uma coisa é escrever um algoritmo de 30-50 linhas no quadro, outra é um emaranhado de código Android, mesmo que com abreviações e comentários como 'bem, isso não vou escrever, pois é óbvio'. O resultado foi uma salada em três quadros. Ou seja, resolvi o problema, mas parecia bem feio.

Entrevista número dois

Desta vez, a entrevista foi sobre algoritmos. E haviam dois entrevistadores. Um era o entrevistador principal e o outro era um jovem padawan (shadow interviewer). Precisávamos criar uma estrutura de dados com propriedades específicas. Primeiro, como de costume, discutimos o problema. Fiz várias perguntas, e o entrevistador respondia. Após algum tempo, pediram para escrever alguns métodos da estrutura criada no quadro. Desta vez, consegui mais ou menos, embora com alguns pequenos erros, que corrigi com a ajuda do entrevistador.

Entrevista número três

Desta vez, foi Design de Sistemas, que de repente também era Android. Precisávamos desenvolver um aplicativo com funcionalidades específicas. Discutimos os requisitos para o aplicativo, para o servidor, para o protocolo de comunicação. Em seguida, comecei a descrever quais componentes ou bibliotecas usaria na construção do aplicativo. Mas ao mencionar o Job Scheduler, tive um bloqueio. O fato é que nunca o usei na prática, pois quando foi lançado, eu mudei para suporte a aplicativos onde não havia tarefas para sua utilização. Em desenvolvimentos subsequentes, foi a mesma coisa. Ou seja, teoricamente sei o que é, quando e como se aplica, mas não tenho experiência na prática. E isso pareceu não agradar muito ao entrevistador. Depois pediram para escrever código. Sim, ao desenvolver um aplicativo, é preciso escrever código imediatamente. Novamente, código Android no quadro. O resultado foi outra vez preocupante.

Almoço

Deveria ter vindo mais uma pessoa, mas não apareceu. O Google também comete erros. No final, fui almoçar com o entrevistador anterior, que era colega, e um pouco depois se juntou o próximo entrevistador. O almoço foi bastante razoável. Novamente, como não era a sede principal em Zurique, o refeitório parecia bastante comum, embora muito agradável.

Entrevista número quatro

Finalmente, algoritmos em estado puro. Resolvi a primeira tarefa rapidamente e de forma eficaz, mas cometi um erro em um caso limite; porém, com a dica do entrevistador (ele trouxe esse caso limite), encontrei o problema e corrigi. Claro, era necessário escrever o código na lousa. Em seguida, foi dada uma tarefa similar, mas mais difícil. Para ela, encontrei algumas soluções não otimizadas e quase uma solução otimizada, mas não tive tempo suficiente de 5-10 minutos para finalizar a ideia. E não consegui escrever o código para ela.

Entrevista número cinco

E novamente uma entrevista de Android. Fico me perguntando por que estudei algoritmos o ano todo.
Primeiro, houve algumas perguntas simples. Depois, o entrevistador escreveu um código na lousa e pediu para encontrar os problemas nele. Encontrei, expliquei e corrigi. Discutimos. E então começaram algumas perguntas inesperadas do tipo ‘o que o método Y faz na classe X’, ‘o que acontece dentro do método Y’, ‘o que a classe Z faz’. Eu respondi algumas, mas depois disse que não tinha lidado com isso no trabalho recentemente e, naturalmente, não me lembrava exatamente de quem faz o quê em detalhes. Depois disso, o entrevistador perguntou o que estou fazendo agora. As perguntas seguiram nesse tema. Aqui eu já respondi muito melhor.

Após a última entrevista, pegaram meu crachá, desejaram sorte e me mandaram embora. Dei uma leve caminhada pela cidade, jantei e fui para o hotel, onde acabei dormindo, já que meu voo era cedo de novo na manhã seguinte. No dia seguinte, cheguei bem a Chipre. Escrevi, a pedido do recrutador, um feedback sobre a entrevista e preenchi um formulário em um serviço especial para reembolso das despesas. Entre todas as despesas, o Google paga diretamente apenas as passagens. Hotel, comida e transporte são pagos pelo candidato. Então, preenchemos o formulário, anexamos os recibos e enviamos para uma empresa específica. Eles processam isso e rapidamente transferem o dinheiro para a conta.

Levei uma semana e meia para processar os resultados da entrevista. Depois disso, me informaram que eu estava "um pouco abaixo do esperado". Ou seja, não cheguei a cumprir os requisitos. Para ser mais específico, 2 entrevistas foram bem, 2 foram um pouco insatisfatórias, e a entrevista de Design de Sistemas foi muito insatisfatória. Se ao menos 3 tivessem ido bem, poderia ter lutado, mas assim, sem chances. Sugeriram que eu tentasse novamente daqui a um ano.

No início, fiquei bastante desapontado, pois gastei muito esforço na preparação, e na hora da entrevista já estava considerando deixar Chipre. Conseguir um trabalho na Google e me mudar para a Suíça parecia uma excelente opção.

Conclusão

E aqui chegamos à parte final do artigo. Sim, eu não passei na entrevista da Google duas vezes. É uma pena. Provavelmente, teria sido interessante trabalhar lá. Mas, podemos olhar para a situação por outro ângulo.

  • Ao longo de um ano e meio, aprendi uma quantidade enorme de coisas relacionadas ao desenvolvimento de software.
  • Eu me diverti bastante, participando de competições de programação.
  • Visitei Zurique por alguns dias. Quando mais terei a chance de voltar lá?
  • Obtive uma experiência interessante em uma das maiores empresas de TI do mundo durante a entrevista.

Assim, tudo o que aconteceu nesses um ano e meio pode ser considerado simplesmente como aprendizado, ou um treinamento. E os resultados desse treinamento se manifestaram. Meu desejo de deixar Chipre cresceu (por algumas circunstâncias familiares), passei com sucesso por várias entrevistas em outra empresa famosa e me mudei após 8 meses. Mas essa já é outra história. No entanto, acredito que ainda devo agradecer à Google tanto por esses um ano e meio em que trabalhei em mim mesmo, quanto pelos 2 dias interessantes em Zurique.

O que posso dizer, por último. Se você trabalha em TI, prepare-se para entrevistas na Google (Amazon, Microsoft, Apple, etc.). Talvez um dia você tenha a chance de passar por lá. Mesmo que não deseje, acredite, esse tipo de preparação não faz mal. No momento em que você perceber que pode (mesmo que apenas sob circunstâncias favoráveis) passar na entrevista de uma dessas empresas, muitas mais oportunidades se abrirão para você do que antes de sua preparação. E tudo o que você precisará no caminho é um objetivo, persistência e tempo. Desejo sucesso 🙂

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster