Há uma semana, conversamos sobre nossos programas educacionais , onde nos comentários apontamos a importância de estágios e experiências práticas. É impossível não concordar com isso, pois o conhecimento teórico deve ser reforçado pela prática. Com este post, abrimos uma série de artigos sobre estágios de verão de alunos: como os caras chegam lá, o que fazem lá e por que é bom.
No primeiro artigo, mostrarei como concluir com êxito todas as etapas das entrevistas e obter um estágio no Google.

Algumas palavras sobre você
Sou estudante do primeiro ano de um programa de mestrado no campus de HSE em São Petersburgo, me formei no programa de bacharelado da Academia de Aprendizado de Máquina. Durante seus estudos de graduação, ele participou ativamente da programação esportiva e também participou de vários hackathons. Você pode ler sobre o último aqui , aqui e aqui .
Sobre estágio
Para começar, quero falar um pouco sobre a aparência dos estágios no Google por dentro.
Todo aluno que chega ao Google está vinculado a uma equipe. Pode ser uma equipe que desenvolve infraestrutura interna sobre a qual uma pessoa de fora da empresa não ouviu nada ou um produto usado por milhões de pessoas em todo o mundo. Esses produtos podem incluir o notório YouTube, Google Docs e outros. Como dezenas ou mesmo centenas de desenvolvedores estão envolvidos no desenvolvimento desses projetos, você terminará em uma equipe especializada em uma parte mais restrita dele. Por exemplo, no verão de 2018, trabalhei no Google Docs, adicionando novas funcionalidades para trabalhar com tabelas.
Como você é estagiário na empresa, você tem um gerente chamado host. Este é um cronômetro completo regular, que se dedica ao desenvolvimento de produtos. Se você não sabe algo, não pode resolvê-lo ou encontrou algum problema, entre em contato com ele. Geralmente, são agendadas reuniões semanais individuais, nas quais é possível discutir a situação atual no trabalho do projeto ou conversar sobre algo completamente irrelevante. Além disso, o anfitrião é uma daquelas pessoas que avaliarão o trabalho que você fez durante o estágio. Outro será avaliado por um segundo revisor adicional. E, claro, eles estão interessados em fazer tudo funcionar para você.
O Google vacinará você, mas não é certo, um bom hábito escrever um documento de design antes de fazer algo. Para quem não sabe, um dzdok é um documento que define a essência do problema existente, além de uma descrição técnica detalhada de sua solução. Você pode gravar um disdoc para todo o produto e para qualquer nova funcionalidade. Depois de ler essa documentação, é possível entender para que finalidade o produto foi concebido e como foi implementado. Também com frequência nos comentários, você pode ver diálogos entre engenheiros discutindo várias maneiras de implementar alguma parte do projeto. Isso dá uma boa compreensão do motivo pelo qual cada decisão foi tomada.
Uma característica do estágio é que você precisa usar maravilhosas ferramentas de desenvolvimento interno, das quais há muito Google. Tendo trabalhado com eles e conversado com muitas pessoas que trabalharam anteriormente na Amazon, Nvidia e outras empresas de tecnologia conhecidas, posso concluir que essas ferramentas têm uma boa chance de serem as melhores dentre todas as que você encontrará em sua vida. Por exemplo, uma ferramenta chamada Pesquisa de código do Google permite não apenas visualizar toda a base de código, o histórico de alterações em cada linha de código, mas também navegar pelo código ao qual estamos acostumados nos ambientes de desenvolvimento modernos, como o Intellij Idea. apenas um navegador! Um ponto negativo associado ao mesmo recurso é que, fora do Google, você perderá essas mesmas ferramentas.
Quanto aos brindes, a empresa tem escritórios legais, eles se alimentam bem, fornecem uma academia, bons seguros e outros nishtyaki. Apenas deixe algumas fotos do escritório de Nova York aqui:



Como receber uma oferta?
Revisão
Agora é a hora de falar sobre algo mais sério: como conseguir um estágio?
Não se trata do Google, mas de como isso acontece no caso geral. Sobre os recursos do processo de seleção de estagiários no Google, escreverei abaixo.
O processo de entrevistar uma empresa provavelmente será algo como isto:
- Pedido de estágio
- Concurso Hackerrank / TripleByte Quiz
- Entrevista de triagem
- Primeira entrevista técnica
- Segunda entrevista técnica
- Entrevista no local
Pedido de estágio
Obviamente, tudo começa com o seu desejo de obter um estágio. Para fazer isso, você deve expressá-lo preenchendo um formulário no site da empresa. Se você (ou seus amigos) tem amigos que trabalham lá, tente passar por eles. Essa opção é preferida porque ajuda você a se destacar do enorme fluxo de outros alunos. Se isso não for possível, alimente-se.
Tente não ficar muito chateado ao receber cartas pelo correio com o conteúdo do formulário "você é tão legal, mas escolhemos outros candidatos". E aqui tenho uma dica para você:

Concurso Hackerrank / TripleByte Quiz
Se o seu recrutador gostou do seu currículo, em uma a duas semanas você receberá uma carta com a seguinte tarefa. Provavelmente, você será solicitado a participar de um concurso em Hackerrank, onde será necessário resolver problemas algorítmicos no tempo estipulado, ou TripleByte Quiz, onde será necessário responder a várias perguntas sobre algoritmos, desenvolvimento de software e design de sistemas de baixo nível. Esta etapa serve como um filtro inicial no processo de seleção.
Entrevista de triagem
Se o teste for bem-sucedido, uma entrevista de triagem espera por você, na qual você conversará com o recrutador sobre seus interesses e sobre os projetos que a empresa oferece aos estagiários. Se você estiver interessado e sua experiência anterior atender às expectativas da empresa, você receberá um sinal verde. Na minha experiência, este é o lugar mais imprevisível em todo o processo, que depende muito do recrutador.
Se você obteve êxito nesses três testes, a principal parcela de chance já está para trás. Depois, houve entrevistas técnicas que são mais dependentes de você, o que significa que você pode influenciar mais o resultado deles. E isso é bom!
Entrevistas técnicas
Em seguida, vêm as entrevistas técnicas que geralmente são realizadas via Skype ou Hangouts. Mas, às vezes, existem serviços mais exóticos que exigem a instalação de software adicional. Portanto, verifique se tudo funciona no seu computador.
O formato das entrevistas técnicas depende muito da posição que você está entrevistando. Se estivermos falando sobre a posição de estagiário de engenharia de software, provavelmente você terá alguns problemas algorítmicos, cuja solução precisará ser codificada em algum editor de código online, por exemplo, coderpad.io . Eles também podem fazer uma pergunta sobre o design orientado a objetos para ver se você é bom em design de software. Por exemplo, eles podem ser solicitados a criar uma simples loja online. É verdade que nunca me deparei com essa tarefa, cuja solução seria realmente possível julgar essa habilidade. No final da entrevista, você certamente terá a oportunidade de fazer perguntas. Eu recomendo levar isso a sério, porque, graças a perguntas que você pode demonstrar seu interesse pelo projeto, demonstre sua competência no tópico. Normalmente, preparo antecipadamente uma lista de possíveis perguntas:
- Como é organizado o trabalho no projeto?
- Que tarefa difícil você teve que resolver recentemente?
- Qual é a contribuição do desenvolvedor para o produto final?
- Por que você decidiu trabalhar nesta empresa?
Você nem sempre é entrevistado por uma pessoa com quem trabalhará no futuro. Portanto, as perguntas mais recentes podem dar uma idéia do que está acontecendo na empresa como um todo. Para mim, por exemplo, é importante que eu tenha influência no produto final.
Se você concluir com êxito a primeira entrevista, você receberá uma segunda. Desde o início, ele será diferenciado pelo entrevistador e, consequentemente, pelas tarefas. É provável que o formato permaneça o mesmo. Depois de passar a segunda entrevista, eles podem oferecer uma terceira.
Entrevista no local
Se até esse momento você não tiver sido negado, uma entrevista no local o aguardará, quando o candidato for convidado para uma entrevista no escritório da empresa. Geralmente consiste em várias entrevistas técnicas e uma comportamental. Durante uma entrevista comportamental, você conversa com o gerente sobre seus projetos, que decisões você tomou em diferentes situações e coisas do gênero. Ou seja, o entrevistador está tentando entender melhor sua personalidade e entender sua experiência com mais detalhes. Algumas empresas que realizam de 3 a 4 entrevistas técnicas, em vez de entrevistas no local, oferecem remotamente apenas um comportamento.
Agora resta apenas esperar a resposta do recrutador. Se tudo correu bem, então uma carta com a tão esperada oferta definitivamente voará até você. Se não houver oferta, não desanime. As empresas recusam sistematicamente bons candidatos. Tente se candidatar a um estágio novamente no próximo ano.
Codificação da entrevista
Então, ei ... Ainda não fizemos nenhuma entrevista. Acabamos de descobrir como é todo o processo e agora temos que nos preparar bem para entrevistas, para não perder a chance de passar o verão de forma agradável e útil.
Existem recursos como Codeforces , Topcoder e Hackerrank , que eu já mencionei. Nesses sites, você pode encontrar um grande número de problemas algorítmicos, além de enviar suas soluções para verificação automática. É tudo ótimo, mas é mais como tiros em pardais. Muitas tarefas desses recursos são projetadas para um longo tempo de solução, requerem conhecimento de algoritmos e estruturas de dados avançadas, enquanto as tarefas nas entrevistas geralmente não são tão complicadas e são projetadas por 5-20 minutos. Portanto, no nosso caso, um recurso como o LeetCode , que foi criado como uma ferramenta para a preparação de entrevistas técnicas, é muito mais adequado. Se você resolver 100-200 problemas de complexidade variada, com uma alta probabilidade de não ter problemas durante a entrevista. Entre os mais decentes, também existe o Facebook Code Lab , no qual você pode escolher a duração da sessão, por exemplo, 60 minutos, e o sistema selecionará um conjunto de tarefas para você, que leva em média uma hora para resolver.
Muitos outros são aconselhados a ler Cracking the Coding Interview . Eu mesmo li seletivamente apenas algumas de suas partes. Mas vale a pena notar que resolvi muitos problemas algorítmicos nos meus anos de escola. Quem não teve essa experiência, ainda vale a pena folhear este livro.
Além disso, se em sua vida houve poucas entrevistas técnicas com empresas estrangeiras, é recomendável fazer algumas entrevistas. Mas quanto mais, melhor. Isso ajudará você a se sentir mais confiante durante a entrevista e menos nervoso. As entrevistas experimentais podem ser organizadas no Pramp .
Entrevistas comportamentais
Como já mencionei, durante uma entrevista comportamental, o entrevistador tenta aprender mais sobre sua experiência e entender seu personagem. E se você é um ótimo desenvolvedor, mas não consegue trabalhar em equipe? Receio que muitos não fiquem satisfeitos. Por exemplo, você pode fazer a seguinte pergunta: "Qual é a sua fraqueza?" Além de perguntas desse tipo, você será solicitado a falar sobre projetos nos quais desempenhou um papel fundamental, sobre os problemas que teve que enfrentar e as soluções deles. Vale ressaltar que nos primeiros minutos de entrevistas técnicas você também pode ser questionado sobre isso. Como se preparar para essas entrevistas está bem escrito em um capítulo em Cracking the Coding Interview.
Google
Agora que ficou claro como é o processo de seleção de estagiários no caso geral e como se preparar para as entrevistas, é hora de falar sobre como isso funciona no caso do Google.
Uma lista de estágios disponíveis pode ser encontrada aqui . Se você planeja fazer um estágio de verão, deve se inscrever em setembro.
Entrevistas de emprego
Aqui, o processo parece um pouco incomum. Você terá uma entrevista de triagem e duas técnicas. Se você se mostrar bem com eles, irá para o estágio de pesquisa do projeto. Você precisará preencher um questionário bastante longo no qual indique todas as suas habilidades atuais, bem como expressar suas preferências sobre o tópico do projeto e o local em que deseja fazer um estágio.
É muito importante preencher este formulário bem e com diligência! Os potenciais anfitriões que procuram pessoas no projeto, examinam os estagiários disponíveis e organizam conversas com os candidatos de que gostaram. Eles podem filtrar os alunos por local, palavras-chave, marcas de seleção no questionário, classificar por pontos para entrevistas.
Durante a conversa, o entrevistador fala sobre o projeto a ser trabalhado e também aprende sobre a experiência do candidato. Há uma grande oportunidade de descobrir como será o processo de trabalho, porque você está se comunicando com a pessoa que será seu anfitrião. Após a entrevista, você escreve uma carta ao recrutador com suas impressões do projeto. Se você gostou do projeto e o entrevistador gostou de você, uma oferta está esperando por você. Caso contrário, você esperará chamadas subseqüentes, que podem ser de 2 a 3 peças e talvez não mais. Vale a pena esclarecer que, mesmo que você tenha passado bem nas entrevistas, mas nenhuma equipe o tenha escolhido na fase de busca do projeto (ou talvez ninguém nem tenha falado com você), então, infelizmente, você ficará sem oferta.
América ou Europa?
Entre outras coisas, você precisará determinar onde seu estágio será realizado. Eu tive uma escolha entre os EUA e a EMEA . E aqui é importante saber sobre alguns recursos. Por exemplo, há uma sensação de que entrar nos EUA é mais difícil. Primeiro, você precisa passar por um concurso adicional com duração de 90 minutos, onde precisará resolver problemas algorítmicos, além de outra pesquisa de 15 minutos, tentando revelar seu personagem. Em segundo lugar, na minha experiência e na de meus amigos, é menos provável que você se interesse pelo estágio de busca da equipe. Por exemplo, em 2017, tive apenas uma conversa, após a qual a equipe escolheu outro candidato e não recebi uma oferta. Enquanto os caras alimentados para a Europa tinham 4-5 projetos. Em 2018, eles encontraram uma equipe para mim em janeiro, que é bastante tarde. Os caras trabalharam em Nova York, gostei do projeto e concordei.
Como você pode ver, as coisas são um pouco mais complicadas com os EUA. Mas eu queria chegar lá mais do que na Europa. Além disso, nos EUA, eles pagam mais.

O que fazer depois?
No final do estágio, você tem duas opções:
- Obter um estágio para o próximo ano.
- Faça duas entrevistas técnicas para obter uma posição em tempo integral.
Essas duas opções estão disponíveis desde que você tenha concluído com sucesso o seu projeto atual. Se este não é o seu primeiro estágio, eles podem até oferecer uma posição em tempo integral sem entrevistas.
Portanto, surge a seguinte situação, que pode ser descrita em uma figura:

Como esse foi meu primeiro estágio, decidi passar por duas entrevistas técnicas para conseguir uma vaga em período integral. De acordo com os resultados, eles concordaram em me oferecer e começaram a procurar uma equipe, mas eu recusei essa opção porque decidi terminar meu programa de mestrado. É improvável que o Google desapareça em 2 a 3 anos.
Conclusão
Amigos, espero ter falado rápida e claramente sobre como é o caminho do aluno para o estagiário (e depois ...) , e este material encontrará o leitor que o achará útil. Como você pode ver, isso não é tão difícil quanto pode parecer, você só precisa deixar de lado sua preguiça, seus medos e começar a tentar!
PS: Eu também tenho um pequeno canal no carrinho, onde você pode olhar.