Estágio em TI: a visão de um gestor

Estágio em TI: a visão de um gestor

Recrutamento para estágio de verão no Yandex continua. Ele segue cinco direções: back-end, ML, desenvolvimento móvel, front-end e análise. Neste blog, em outros blogs do Habré e além, você pode encontrar muitos insights sobre como funciona o estágio. Mas muita coisa nesse processo permanece um mistério para quem não trabalha na empresa. E se você olhar do ponto de vista dos gerentes de desenvolvimento, surgirão ainda mais questões. Como realizar um estágio corretamente, como maximizar a utilidade mútua com um estagiário, como conhecê-lo em três meses e ensinar-lhe tudo o que precisa para continuar trabalhando?

Cinco de nós preparamos este artigo. Vamos nos apresentar: Ignat Kolesnichenko do serviço de tecnologia de computação distribuída, Misha Levin do serviço de inteligência de máquinas Market, Denis Malykh do serviço de desenvolvimento de aplicativos, Seryozha Berezhnoy do departamento de desenvolvimento de interface de pesquisa e Dima Cherkasov do grupo de desenvolvimento antifraude. Cada um de nós representa a sua área de estágio. Somos todos gestores, precisamos de estagiários e temos alguma experiência em trabalhar com eles. Deixe-nos contar algo dessa experiência.

Entrevista pré-estágio

Várias entrevistas técnicas aguardam os candidatos. O sucesso numa entrevista depende menos de soft skills (a capacidade de comunicar eficazmente) e mais de hard skills (habilidades em matemática e programação). No entanto, os gestores avaliam ambos.

Ignat:

Mesmo que uma pessoa seja muito legal, mas absolutamente pouco comunicativa, ela não conseguirá aplicar todas as suas habilidades. Claro que estamos atentos a isso, mas isso não é motivo para não contratar alguém para um estágio. Em três meses tudo pode mudar e, além disso, sua primeira impressão pode estar errada. E se estiver tudo correto, você vai precisar explicar para a pessoa, procurar outros comandos. Para estagiários, as habilidades de comunicação definitivamente não são um fator chave. Ainda assim, as habilidades profissionais são muito mais importantes.

Denis:

Gosto de pessoas que contam histórias – no bom sentido. Uma pessoa que sabe dizer como ele e sua equipe lidaram heroicamente com algum fakap é interessante. Começo a fazer perguntas complementares quando surge uma história como essa. Mas isso raramente acontece se você simplesmente pedir “para contar algo interessante em seus projetos”.

Certa vez, um candidato disse uma frase maravilhosa, que até anotei: “Evitei com sucesso a solução de problemas tediosos”.

Estágio em TI: a visão de um gestor

Como há pouco tempo para comunicação, o entrevistador tenta obter informações úteis sobre o candidato a cada minuto da reunião. Seria ótimo se o estagiário descobrisse com antecedência quais detalhes de sua experiência (não do currículo) ele poderia compartilhar. Este deve ser um conto estritamente direto ao ponto.

Denis:

Presto atenção se uma pessoa diz que já experimentou muitas linguagens e abordagens. Pessoas com uma visão mais ampla apresentam soluções mais elegantes no modo de combate. Mas esta é uma vantagem ambígua. Você pode pegar o jeito, mas não aprender nada.

O tempo para as histórias descritas por Denis geralmente permanece apenas na entrevista final. Até lá, é necessário demonstrar os conhecimentos fundamentais e práticos que servirão de base para trabalhos futuros. E, claro, você precisará escrever o código em um quadro ou pedaço de papel.

Mouse:

Testamos conhecimentos de teoria de probabilidade e estatística matemática. Verificamos se a pessoa tem experiência em trabalhar com métricas, com algoritmos de aprendizado de máquina, com definição de seus parâmetros, com reciclagem, etc. Esperamos que a pessoa possa escrever código o suficiente para ser um analista.

Denis:

Quem vem para uma entrevista conhece principalmente línguas: em Yekaterinburg temos uma boa escola de línguas básicas, bons institutos. Mas, para ser sincero, um candidato a estágio com boas habilidades é um caso raro, pelo menos em nossa vizinhança épsilon. Por exemplo, Swift. Envolve um trabalho muito complexo com cordas, e há poucas pessoas que conseguem trabalhar com elas de cara. O olho imediatamente chama sua atenção. Durante as entrevistas, muitas vezes dou uma tarefa relacionada ao processamento de strings. E durante todo esse tempo só houve uma pessoa que conseguiu escrever esse código Swift imediatamente, em um pedaço de papel. Depois disso, saí dizendo a todos que finalmente alguém conseguiu resolver esse problema em Swift em um pedaço de papel.

Testando algoritmos durante uma entrevista

Este é um tópico separado porque os candidatos ainda têm uma dúvida - por que sempre avaliamos o conhecimento de algoritmos e estruturas de dados? Até mesmo futuros desenvolvedores móveis e desenvolvedores front-end passam por esses testes.

Mouse:

Durante a entrevista certamente apresentaremos algum tipo de problema algorítmico. O candidato precisa descobrir como implementá-lo em Python, de preferência sem erros. Você precisa entender como verificar seu programa e corrigi-lo sozinho.

Estágio em TI: a visão de um gestor

A experiência em algoritmos é útil por três razões. Em primeiro lugar, será obviamente necessário em tarefas algorítmicas – o que não acontece com frequência, mas acontece. Em segundo lugar, o desenvolvedor será capaz de resolver de forma mais eficaz problemas relacionados a algoritmos, mesmo que eles não exijam um aprofundamento nos próprios algoritmos (e já existem alguns deles). Em terceiro lugar, se você não aprendeu algoritmos na universidade, mas ainda sabe como trabalhar com eles, isso o caracteriza como uma pessoa curiosa e aumentará sua autoridade aos olhos do entrevistado.

Denis:

Uma grande parte do desenvolvimento móvel é o embaralhamento de JSON. Mas, uma vez a cada seis meses, há casos em que algoritmos são necessários. Atualmente estou desenhando lindos mapas para Yandex.Weather. E em uma semana tive que implementar o algoritmo de suavização, o algoritmo Sutherland-Hodgman e o algoritmo Martinez. Se uma pessoa não soubesse o que era um hashmap ou uma fila de prioridade, ela ficaria presa a isso por um longo tempo e não ficaria claro se ela teria conseguido ou não sem ajuda externa.

Algoritmos são a base do desenvolvimento. Isso é o que ajuda um desenvolvedor a ser um desenvolvedor. Não importa o que você faça. Também são necessários em projetos simples, onde o trabalho principal consiste em “traduzir JSON”. Mesmo que você não escreva os algoritmos em si, mas use implicitamente algumas estruturas de dados, é melhor entendê-los. Caso contrário, você acabará com aplicativos lentos ou incorretos.

Há programadores que se desenvolveram academicamente: entraram na universidade, estudaram cinco anos e se especializaram. Eles conhecem os algoritmos porque foram ensinados. E então o conhecimento dos algoritmos em si não caracteriza de forma alguma os horizontes de uma pessoa; esse horizonte deve ser testado de outra forma.

E há autodidatas, dos quais me incluo. Sim, formalmente tenho formação em TI, diploma em engenharia de software. Mas os autodidatas aprenderam a programar “apesar disso”. Eles não tinham um programa universitário. Geralmente eles não estão familiarizados com algoritmos – porque nunca enfrentaram a necessidade de estudá-los. E quando essa pessoa entende algoritmos, significa que ela gastou tempo e os entendeu. Depois de me formar na universidade, percebi que tinha pontos cegos em termos de algoritmos fundamentais - o fato é que minha especialidade foi aplicada. Fui estudar cursos online na Universidade de Princeton, do conhecido Robert Sedgwick. Eu descobri e fiz todo o meu dever de casa. E quando uma pessoa conta uma história semelhante durante uma entrevista, imediatamente me interesso, tenho vontade de trabalhar com ela ou pelo menos continuar a conversa.

Estágio em TI: a visão de um gestor

Ignat:

Ao entrevistar um estagiário, de certa forma você espera ainda mais do que um desenvolvedor experiente. Estamos falando da capacidade de resolver problemas algorítmicos, de escrever rapidamente pelo menos algum código correto. O candidato a estágio ainda está na universidade. Há apenas um ano, ele ouviu tudo em detalhes sobre algoritmos. Espera-se que ele possa reproduzi-los. Se a pessoa for adequada e ouvir as palestras com atenção, ela simplesmente saberá tudo, tirará do cache.

Que tarefas o estagiário resolve?

Normalmente, o programa de estágio pode ser delineado e discutido durante as entrevistas finais. Somente no início do trabalho o estagiário poderá receber tarefas de treinamento, cujos resultados não serão utilizados na produção. Além disso, a probabilidade de receber tais tarefas é pequena. Na maioria das vezes, os projetos de combate são entregues a partir do backlog, ou seja, aqueles reconhecidos como dignos de atenção, mas não prioritários e “separáveis” - para que outros componentes não dependam de sua implementação. Os gestores procuram distribuí-los para que o estagiário conheça diferentes partes do serviço e trabalhe no mesmo ambiente com os demais membros da equipe.

Ignat:

Estas são tarefas extremamente úteis. Eles podem não aumentar a utilização do cluster em 10% ou economizar um milhão de dólares para a empresa, mas deixarão centenas de pessoas felizes. Por exemplo, atualmente temos um estagiário trabalhando com nosso cliente para executar operações em nossos clusters. Antes de iniciar, a operação deve carregar alguns dados no cluster. Isso geralmente leva de 20 a 40 segundos e antes que acontecesse silenciosamente: você o lançou no console e ficou lá, olhando para uma tela preta. O estagiário veio e fez o feature em duas semanas: agora você pode ver como os arquivos são carregados e o que está acontecendo. A tarefa, por um lado, não é difícil de descrever, mas por outro lado, há algo para se aprofundar, quais bibliotecas consultar. O melhor é que você conseguiu, passou uma semana, acabou que estava em cluster, as pessoas já estão usando. Quando você escreve um post na rede interna, eles agradecem.

Estágio em TI: a visão de um gestor

Mouse:

Os trainees preparam modelos, coletam dados para eles, criam métricas e conduzem experimentos. Gradualmente, simplesmente começamos a dar-lhe mais liberdade e responsabilidade - verificamos se ele consegue lidar com isso. Se sim, ele passa para o próximo nível. Não presumimos que quando chega um estagiário ele sabe fazer tudo. O gerente o ajuda a descobrir, fornece um link para um recurso interno ou curso online.

Se um estagiário se mostrar no seu melhor, poderá receber algo prioritário, importante para o departamento ou outros serviços.

Dima:

Nosso estagiário agora está fazendo modificações drásticas no antifraude. Este é um sistema que combate uma ampla variedade de abusos e fraudes nos serviços Yandex. A princípio pensamos em dar coisas que não fossem muito complexas e nem muito importantes para a produção. Tentamos pensar com antecedência nas tarefas do estagiário, mas depois vimos que a pessoa estava “pegando fogo”, resolvendo os problemas rápido e bem. Com isso, passamos a confiar a ele o lançamento do antifraude para novos serviços.

Além disso, há uma pequena chance de receber uma tarefa que os colegas não abordaram anteriormente devido ao seu volume.

Dima:

Existe um sistema antigo e existe um novo, ainda não concluído. É necessário passar de um para outro. No futuro, este é um projeto importante, embora com grande incerteza: é preciso se comunicar muito, ler códigos legados incompreensíveis. Na entrevista final, dissemos honestamente ao estagiário que a tarefa era difícil. Ele respondeu que estava pronto, veio para a nossa equipe e deu tudo certo para ele. Descobriu-se que ele tem qualidades não apenas de desenvolvedor, mas também de gerente. Ele estava pronto para andar por aí, descobrir, fazer ping.

Mentoria de um estagiário

Um estagiário precisa de um mentor para mergulhar nos processos. É uma pessoa que tem consciência não só das suas tarefas, mas também das tarefas do estagiário. A comunicação regular é estabelecida com o mentor, você sempre pode pedir conselhos a ele. O mentor pode ser o líder do grupo (se for um grupo pequeno) ou um dos colegas, membros regulares da equipe.

Ignat:

Procuro subir pelo menos dia sim, dia não e perguntar como está o estagiário. Se percebo que estou travado, tento ajudá-lo, pergunto qual é o problema e desenterro com ele. É claro que isso tira minha energia e faz com que o trabalho de estagiário não seja tão integralmente eficaz - também estou perdendo meu tempo. Mas isso permite que ele não se prenda a nada e obtenha resultados. E ainda é mais rápido do que se eu mesmo fizesse isso. Eu mesmo preciso de cerca de 5 horas para a tarefa. O estagiário fará isso em 5 dias. E sim, vou passar 2 horas nesses 5 dias para conversar com o estagiário e ajudar. Mas vou economizar pelo menos 3 horas, e o estagiário ficará satisfeito por ter recebido alguns conselhos e ajuda. Em geral, basta se comunicar de perto, observar o que a pessoa está fazendo e não perder o contato.

Estágio em TI: a visão de um gestor

Seryozha:

O estagiário está constantemente em contato com seu mentor e se comunica com ele várias vezes ao dia. O mentor revisa o código, faz a programação em pares com o estagiário e ajuda quando surge alguma área problemática. É desta forma, aliando a ajuda de um mentor e tarefas reais de combate, que formamos desenvolvedores front-end.

Dima:

Para evitar que um estagiário seja abandonado, discutimos quem irá orientá-lo antes mesmo de contratá-lo. Esta é também uma grande atualização para o próprio mentor: preparação para o papel de líder de equipa, testando a capacidade de ter em mente tanto a sua própria tarefa como a tarefa do formando. Há reuniões periódicas, às quais eu mesmo vou às vezes, para me manter informado. Mas é o mentor quem se comunica regularmente com o estagiário. Ele passa muito tempo no começo, mas compensa.

Porém, ter um mentor não significa que todas as questões que surgem sejam resolvidas através dele.

Mouse:

É habitual para nós que as pessoas que enfrentam um problema peçam conselhos a vizinhos e colegas e encontrem ajuda rapidamente. Quanto mais rápido uma pessoa cresce, mais frequentemente ela precisa ir até os colegas para aprender alguma coisa. É até útil simplesmente aprender sobre as tarefas de outras pessoas para que você possa criar novas. Quando um estagiário consegue chegar a um acordo, entender o que é importante para o outro lado e chegar a resultados em equipe, ele crescerá muito mais rápido do que alguém por quem o gestor deve fazer tudo isso.

Seryozha:

Existe documentação, mas a maior parte da informação se perde no ar. Se você absorver isso no início de sua carreira, será uma vantagem adicional e poderemos focar a pessoa no que ela precisa aprender.

O estagiário ideal é alguém que treina por vários meses, vira desenvolvedor júnior, depois apenas desenvolvedor, depois líder de equipe, etc. Isso requer um arquétipo de aluno que não tenha vergonha de perguntar se algo não está claro para ele, mas também é capaz de trabalho independente. Se lhe dissessem que poderia ler sobre isso em algum lugar, ele iria, leria e realmente retornaria com novos conhecimentos. Ele pode errar, mas não deve errar mais de uma vez, no máximo duas, no mesmo lugar. O estagiário ideal deve se desenvolver, absorver tudo como uma esponja, aprender e crescer. Quem fica sentado, tentando descobrir tudo sozinho, fuçando muito e não fazendo perguntas, dificilmente se acostumará.

Fim do estágio

Antes de iniciar o trabalho, assinamos um contrato a termo certo com cada estagiário. Obviamente, o estágio é remunerado, formalizado de acordo com o Código do Trabalho da Federação Russa, e o estagiário tem os mesmos benefícios que qualquer outro funcionário da Yandex. Depois de três meses, o programa termina - então transferimos muitos dos estagiários para o quadro de funcionários (com contrato por tempo indeterminado).

Estágio em TI: a visão de um gestor

Por um lado, é importante para o gestor que o desenvolvedor cumpra seu mínimo de estágio. É para lá que o estagiário é conduzido, começando pela entrevista. No entanto, este é apenas o começo da história. Para nós, um estagiário é sempre um potencial candidato a quadro de pessoal. O programa mínimo para um gestor é identificar logo no início uma pessoa que, depois de três meses, não tenha vergonha de recomendar para outros departamentos. O programa máximo é mantê-lo na mesma equipe, contratando-o como staff. Ao mesmo tempo, levamos em consideração que um aluno do segundo ou terceiro ano - mesmo que tenha se tornado estagiário - precisará continuar seus estudos em uma universidade com o início do ano letivo.

Seryozha:

Em primeiro lugar, os formandos para nós são potenciais recursos humanos. Estamos tentando desenvolver pessoas no Yandex para que sejam ideais para nossas tarefas. Damos-lhes tudo, desde uma cultura de comunicação e interação em equipa até ao conhecimento enciclopédico sobre todos os nossos sistemas.

Ignat:

Quando contratamos um estagiário, imediatamente o testamos para se juntar à nossa equipe. E via de regra, o único obstáculo é a falta de vaga. Tentamos contratar jovens suficientes como estagiários. Se uma pessoa tem cinco anos de experiência em desenvolvimento, vem para Yandex e é estagiário de nível, então, infelizmente, para nós isso significa que mesmo sendo um cara legal, já que consegue um emprego na Yandex com cinco anos de experiência, ele não será capaz de se tornar um desenvolvedor sênior. Geralmente é uma questão de velocidade: o crescimento lento no passado significará um crescimento lento aqui. Sim, às vezes a compreensão de que uma pessoa não está à altura da tarefa só surge depois de três meses. Mas isso é bastante raro. Em mais da metade dos casos, estamos dispostos a contratar pessoal. Na minha memória, nunca houve uma situação em que uma pessoa concluísse com sucesso um estágio, mas não conseguisse passar em uma entrevista para um cargo de tempo integral.

Mouse:

Oferecemos a todos os estagiários de sucesso que permaneçam na empresa. Depois de um estágio, normalmente assumimos mais da metade dele em tempo integral. Os estágios de verão são mais difíceis porque muitas vezes os alunos do terceiro ano vêm até nós e é difícil para eles conciliar trabalho e estudo.

Dima:

Digamos que o estagiário faça um ótimo trabalho e tenha muitas perspectivas de se tornar um bom desenvolvedor - mesmo que ele não tenha experiência suficiente no momento. E suponha que não haja vaga para um contrato por tempo indeterminado. Aí tudo é simples: preciso ir até o meu gerente e dizer a ele - ele é uma pessoa muito legal, devemos mantê-lo com certeza, vamos oferecer algo a ele, vamos encontrar um lugar para colocá-lo.

Histórias sobre estagiários

Denis:

A garota que conseguiu estágio conosco em 2017 era de Perm. Isso fica a 400 quilômetros de Yekaterinburg, a oeste. E toda semana ela vinha de Perm de trem para a Escola de Desenvolvimento Móvel. Ela vinha durante o dia, estudava à noite e voltava tarde da noite. Apreciando tanto zelo, nós a convidamos para trabalhar, e valeu a pena.

Ignat:

Há vários anos participamos de um programa de intercâmbio de estagiários. Foi interessante trabalhar com estrangeiros. Mas os formandos de lá não são mais fortes do que, por exemplo, do ShAD ou da Faculdade de Informática. Parece que a EPFL está entre as 20 melhores universidades da Europa. Naquele momento, como entrevistador ainda pouco experiente, fiquei com essa expectativa: incrível, estamos entrevistando pessoas da EPFL, vão ser super legais. Mas as pessoas que receberam uma educação básica sobre codificação aqui - inclusive nas principais universidades regionais - revelaram-se bastante à altura.

Ou outra história. Agora eu tenho um cara na minha equipe, ele é muito jovem, tem uns 20 anos. Trabalha em São Petersburgo, veio fazer um estágio. Ele é muito legal. Você, como sempre, dá problemas para uma pessoa, ela resolve, e um mês depois ela chega e diz: eu resolvi, estou olhando, e parece que sua arquitetura está mal construída. Vamos refazer. O código ficará mais simples e claro. Claro, eu o dissuadi: a quantidade de trabalho é grande, não há lucro para os usuários, mas a ideia parece absolutamente razoável. A pessoa descobriu um processo complexo multithread e sugeriu melhorias - talvez inoportunas, refatoração por refatoração. Mas assim que você quiser complicar esse código, você ainda pode fazer essa refatoração. Na verdade, vários meses se passaram e assumimos esta tarefa. Eu o contratei com prazer. Não somos todos gênios. Você pode vir, descobrir algo e apontar nossos problemas. Isto é apreciado.

Mouse:

Temos estagiários ideais. Apesar da falta de experiência, eles encaram a tarefa não apenas a nível técnico, mas também a nível global. Eles oferecem melhorias fundamentais. Eles entendem como traduzir problemas do mundo real para o mundo técnico sem perder seu significado. Eles se perguntam qual é o objetivo final, se vale a pena aprofundar os detalhes agora ou se podem mudar completamente a abordagem da tarefa ou mesmo a formulação do problema. Isso significa que eles têm potencial para estar vários níveis acima. Para seguir esse caminho, eles só precisam atualizar algumas habilidades e ferramentas internas. Além disso, lance vários projetos de sucesso.

Estágio em TI: a visão de um gestor

Fonte: habr.com

Adicionar um comentário