Esse post foi revisado por: Luiz Felix, Fernando Santos, Hellen Lima

Processos seletivos são sempre um assunto muito debatido em qualquer área, pois podem ser longos e intensos. No Nu, discutimos sempre como torná-los mais enxutos e focados nas habilidades essenciais para cada função. Nossas entrevistas têm como objetivo coletar o máximo de informações sobre as pessoas candidatas para tomar as melhores decisões de contratação. Ainda assim, sabemos que é impossível resumir todas as experiências e habilidades de uma pessoa em apenas algumas perguntas, respostas e exercícios durante uma quantidade limitada de entrevistas.

Como o Nubank é uma empresa que usa ciência de dados desde a sua fundação em 2013, isso significa que já entrevistamos muitas pessoas para vários cargos diferentes, como Cientistas de Dados, pessoas Engenheiras de Aprendizado de Máquina e Lideranças de Ciência de Dados.

Se você quiser conhecer mais sobre as etapas dos processos seletivos para posições de Ciência de Dados e Engenharia de Machine learning esse é o artigo certo!

Aqui vão nossas dicas:

1. Compreenda o problema primeiro

Em muitas situações, pessoas candidatas podem ser questionadas sobre como solucionar um problema específico usando aprendizado de máquina. Nos processos seletivos do Nu, é comum que as perguntas abordem problemas reais de negócio, exigindo que o candidato considere diferentes possibilidades, suas vantagens e desvantagens, bem como as implicações dessas decisões para o negócio como um todo.

Muitas vezes, compreender o problema é mais importante do que a própria solução. Quando o problema é claramente definido, identificar e validar as possíveis soluções torna-se consideravelmente mais fácil.

O ponto principal aqui é garantir que a pessoa candidata faça perguntas e compreenda o problema e as possibilidades envolvidas antes de começar a trabalhar na solução. Em determinado momento, por exemplo, pode ser pertinente usar técnicas de exploração de dados para entender alguns padrões em eventos passados e, a partir disso, propor o desenvolvimento de um modelo de machine learning. Em resumo, a pessoa candidata deve explorar essas decisões e ponderar.

Conheça nossas oportunidades

2. Reconheça quando não usar soluções de ciência de dados ou aprendizado de máquina

Aqui estão alguns exemplos do que é essencial se preocupar mais com os resultados de negócios do que como esses resultados são alcançados. A ciência de dados não é um fim em si mesma. Aqui estão alguns exemplos de quando soluções baseadas em aprendizado de máquina podem não ser apropriadas: 

  • Quando o custo de implementar uma solução baseada em aprendizado de máquina é maior que o benefício de solucionar o problema, tornando essa abordagem inviável.
  • Quando o  negócio precisa de uma solução rápida para resolver um problema urgente, enquanto as tarefas de modelagem e treinamento do modelo demorariam demais.
  • Quando não há dados suficientes disponíveis. Nesse caso, uma heurística criada manualmente pode ser o suficiente até que um volume adequado de dados seja coletado.

3. Compreenda como e onde as aplicações que utilizam aprendizado de máquina diferem do software tradicional

Sistemas que utilizam aprendizado de máquina compartilham muitas características com o software tradicional, mas também apresentam desafios únicos. Além de serem aspectos importantes na decisão de usar aprendizado de máquina ou não, é importante ficar atento a estes desafios.  

Sistemas de produção com aprendizado de máquina precisam estar conectados à infraestrutura subjacente de alguma forma. O código precisa ser reproduzível, ter controle de versão e passar por testes rigorosos de unidade e integração. Além disso, deve ser extraído para outras bibliotecas e compartilhado entre a equipe. A complexidade do código deve ser mantida sob controle para que seja fácil analisá-lo e refatorá-lo mais tarde.

Resumindo, tudo o que você aprendeu sobre engenharia de software básica também se aplica ao código de aprendizado de máquina.

Entre as principais diferenças entre sistemas de aprendizado de máquina e software comum estão:

Rastreamento de dados: se você quer reproduzir o comportamento de um sistema de aprendizado de máquina, precisa não só do código exato que foi usado, mas também dos dados utilizados nos momentos de treinamento e predição. Se você quiser saber mais sobre este assunto, esse post apresenta uma introdução ao tema.

Falhas silenciosas: um sistema que utiliza aprendizado de máquina pode produzir resultados inesperados sem um alerta claro. Por exemplo, se um recurso importante para o seu modelo falhar devido a problemas nos dados, o sistema continuará realizando previsões, sem saber que está recebendo dados inadequados.

4. Reconhecer o ponto de equilíbrio entre desempenho e complexidade do modelo

Modelos mais complexos geralmente oferecem desempenho superior, mas exigem mais recursos de hardware e demandam um ambiente de deploy mais sofisticado. Na prática, isso se reflete em maiores custos de execução, maior necessidade de manutenção, monitoramento mais desafiador e uma maior dificuldade em entender como os dados apresentados ao modelo influenciam suas previsões.

Por isso, vale a pena considerar os seguintes aspectos ao avaliar se um modelo mais simples ou mais complexo é adequado para resolver um determinado problema:

  • Qual o ganho prático de substituir um modelo simples, como uma árvore de decisão, por uma rede neural, por exemplo?
  • Como ponderar a quantidade de variáveis explicativas a serem adicionadas no modelo?
  • Qual é o custo-benefício dessa otimização na performance do modelo?

A resposta para essas perguntas geralmente é “depende da demanda do negócio”. O trabalho da pessoa Cientista de Dados é ajudar as partes interessadas a entender onde traçar a linha e avaliar quando a complexidade adicional já não faz mais sentido frente ao retorno esperado.

5. Considere como os modelos geram resultados de negócios

Quanto maior seu nível de senioridade, maior será a expectativa que você consiga identificar como os modelos de aprendizado de máquina ajudam a resolver problemas de negócio. Portanto, é importante saber explicar como o uso de um modelo mais complexo pode se traduzir em satisfação do cliente ou menor tempo de espera, e como estes aspectos podem ser avaliados. 

A contextualização do papel de um modelo de aprendizado de máquina dentro do fluxo de negócios pode depender do seu papel. Aqui estão algumas perguntas que podem ajudá-lo durante esse processo:

Ciência de dados 

  • “Como você mediria o impacto de negócios desse modelo?”.
  • “Se eu disser que pessoas que não são familiarizadas com técnicas de aprendizado de máquina usarão os resultados desse modelo, como isso mudaria sua escolha de modelo?”.

Engenharia de aprendizado de máquina

  • “Como uma aplicação usaria as previsões produzidas por este modelo?”.
  • “Pensando no cenário X, quais são as vantagens e desvantagens de executar esse modelo como um serviço em tempo real, em vez de uma tarefa diária?”.

6. Não tenha medo de responder “eu não sei”

É quase certo que uma pessoa candidata será perguntada sobre temas com os quais não tem experiência, então não tenha medo de ser honesto nessas situações. Ninguém espera que você saiba tudo, mas sim que seja capaz de aprender o que for necessário como parte do seu trabalho diário.

Fingir conhecimento sobre algo que você não sabe é muito pior do que expressar desconhecimento. É provável que o entrevistador faça perguntas mais detalhadas sobre os assuntos e perceba sua falta de conhecimento. Não há problema algum em admitir a falta de experiência em um determinado tema e tentar entender mais sobre ele com o entrevistador.

Ainda assim, é possível ter algum conhecimento correlato que ajude a arriscar um palpite informado, deixando claro que trata-se de uma especulação. Quando perguntado sobre um tema desconhecido, é possível responder algo como: “Não sei exatamente o que você quer dizer com X, mas com base no contexto e na minha experiência anterior, eu acho que é algo como… Isso está certo?”

7. Espere receber perguntas sobre assuntos em que você alega ter experiência

É interessante destacar as experiências em certas áreas relacionadas à ciência de dados e aprendizado de máquina, especialmente quando elas se conectam com a posição à qual você está se candidatando. Se você estiver fazendo uma entrevista para uma empresa de visão computacional, por exemplo, vale a pena mencionar que você tem experiência trabalhando com redes neurais convolucionais e processamento de imagens em seu trabalho anterior.

Naturalmente, isso atrairá perguntas específicas sobre essas áreas. Portanto, é importante manter seu currículo atualizado e certificar-se de que você consegue responder perguntas sobre esses temas.

8. Considere a vida útil de uma aplicação que usa aprendizado de máquina

É importante entender como um sistema com aprendizado de máquina evolui de uma ideia para um sistema de produção real. Vamos falar brevemente sobre as três principais etapas do ciclo de vida de um sistema assim. Nosso blog possui textos dedicados aos problemas pertinentes a cada um destes momentos.

  • Antes: antes de ter um modelo funcional, é preciso entender o problema a ser resolvido e se certificar de que Ciência de Dados ou Aprendizado de Máquina é o caminho a ser seguido. Nesse ponto, você provavelmente falará com várias partes interessadas, como gerentes de produto, analistas de negócios e engenheiros de software. Certifique-se de que todas as partes envolvidas compreendem os limites e como o modelo será utilizado. 
  • Durante: durante a análise e modelagem dos dados, muitas premissas são testadas e, mais uma vez, haverá muita comunicação para validar suposições e atualizar as partes interessadas conforme o projeto progride. Nesse ponto, você geralmente precisa pensar em uma camada de regras de negócio, que transformará a saída do modelo em decisões finais para a aplicação. A primeira implantação é um passo crucial do projeto, no qual muitas coisas podem dar errado. É nesse momento que o modelo é integrado à infraestrutura da qual fará parte. Será necessário fazer testes e ajustes antes de estar totalmente preparado para ser usado no ambiente de produção.
  • Depois: Após a implementação do modelo, é imprescindível monitorar rotinas para garantir que as entradas e saídas estão funcionando conforme o esperado. Por fim, você precisa considerar se e quando deve treinar o modelo novamente, e se o próprio modelo afetará os próximos conjuntos de treinamento.

Conheça nossas oportunidades