26 pontos por GN⁺ 2025-03-06 | 9 comentários | Compartilhar no WhatsApp
  • Todo mundo odeia o processo de contratação: gerentes de contratação, recrutadores e candidatos também
  • A entrevista técnica é, entre essas etapas, uma das mais infames, e a maioria dos entrevistados a detesta
  • No trabalho real, muitas vezes a atuação gira em torno de integrações simples de API, mas nas entrevistas é comum ver perguntas sobre teoria complexa e algoritmos
    • Como no caso do desenvolvedor do Homebrew, usado por 90% dos engenheiros do Google, que foi reprovado por não conseguir inverter uma árvore binária no quadro

Mudanças nos últimos anos (fatores que enfraquecem a entrevista)

  • Em entrevistas remotas, já houve casos de candidatos desligarem a câmera e contratarem outra pessoa para fazer a entrevista
  • Houve casos de trabalhadores norte-coreanos tentando conseguir emprego com vídeos em deepfake
  • Com o surgimento de ferramentas de codificação automática como GitHub Co-pilot e Cursor, além de LLMs como Claude e OpenAI, ficou fácil resolver perguntas básicas de código e Q&A
  • A IA está passando a intervir em tudo, da elaboração do currículo a candidaturas em massa e entrevistas em vídeo, mas este texto foca na entrevista técnica em si

O básico da entrevista técnica

Quase toda empresa que contrata desenvolvedores tem um processo com pequenas variações, mais ou menos assim

  • Tarefa prévia no Hackerrank
    • Funciona como filtro para contratar desenvolvedores juniores ou estagiários
    • Dá para resolver os problemas online com liberdade
  • Fundamentos de Ciência da Computação (Comp Sci Fundamentals)
    • Perguntas sobre estruturas de dados, algoritmos, Big O etc.
    • Muitas vezes voltado para desenvolvedores juniores
  • Entrevista de programação
    • Avalia a capacidade de escrever código real e fazê-lo funcionar
    • Usa exemplos simples de projeto para verificar o domínio básico da linguagem e a capacidade de resolver problemas
  • Arquitetura/Design
    • Mais voltado para desenvolvedores seniores do que juniores
    • Avalia design de sistemas, escalabilidade, banco de dados e design de API

Uso de IA na entrevista

  • Por causa da IA, o papel de filtro de tarefas prévias como as do Hackerrank enfraqueceu bastante
  • Entrevistas de fundamentos de computação e de programação também estão ficando fáceis de resolver, já que o nível das perguntas entra no alcance das respostas de LLMs
  • Entrevistas de arquitetura/design ainda são relativamente seguras, mas no longo prazo esse campo também pode ser ameaçado à medida que a IA evoluir

Quais são as nossas opções?

  • 1. Encerrar entrevistas técnicas remotas
    • Se o entrevistador estiver ao lado observando, fica difícil usar IA
      • Supondo que todas as outras etapas sejam aprovadas, isso pode virar uma entrevista de programação presencial
  • 2. Usar software no estilo Pearson Vue
    • Um modelo com programa de monitoramento instalado e supervisão por câmera
    • Não é perfeito, porque vários métodos de contorno já são conhecidos (a ponto de existirem subreddits só sobre isso)
  • 3. Ignorar o problema
    • Um modelo que depende de um pedido moral para que a pessoa “não use IA”
    • Na prática, quem usa IA sai na frente, o que dificulta para a empresa selecionar os candidatos certos
  • 4. Permitir o uso de IA
    • Em vez de avaliar habilidade de programação pura, avalia a capacidade de escrever bons prompts para LLMs e de refatorar
    • É uma fase de transição em que ainda é necessário ter habilidade de programação para corrigir erros na saída da IA
  • 5. Abordagem híbrida
    • Um modelo misto em que primeiro se verifica remotamente a capacidade de usar IA e depois se faz uma validação final presencial

Soluções possíveis

  • No longo prazo, as abordagens 4 e 5 parecem as mais viáveis
  • Mesmo com RTO, não dá para chamar todos os candidatos distantes para uma etapa offline, então é preciso criar um método eficiente
  • Mudar o próprio formato da entrevista é outra alternativa
    • Hoje, entrevistas de programação muitas vezes se limitam a tarefas pequenas no nível de FizzBuzz ou implementação de calculadora
    • Com apoio de IA, o nível da tarefa pode ser ampliado em mais de 10 vezes, avaliando o processo de construir uma aplicação completa
    • Também dá para testar um formato de entrevista mais longa, de cerca de 2 horas, misturando arquitetura e programação
  • Nesse formato, seria possível pedir que a pessoa construa, expanda e implemente recursos adicionais em uma aplicação
    • À medida que a base de código cresce, isso traz a vantagem de verificar se ela consegue manter consistência e demonstrar capacidade em um nível mais profundo, sem ficar só em respostas superficiais
  • Com esse processo, seria possível avaliar o seguinte
    • Habilidade básica no uso de ferramentas como git e IDE
    • Capacidade de criar prompts eficazes para LLMs e de programar para obter respostas melhores
      • Capacidade de entender e combinar saídas de LLMs para concluir o código de forma sustentável e fácil de manter
      • Se a pessoa consegue finalizar, dentro de tempo limitado, uma aplicação com certo nível de escala e escalabilidade
    • Capacidade de manter qualidade e lógica consistentes
  • Esse tipo de avaliação integrada pode se tornar uma alternativa às entrevistas de programação na era da IA

Summary

  • As entrevistas técnicas devem passar por grandes mudanças em um futuro próximo
  • Por enquanto, o uso de IA ainda pode parecer relativamente lento ou ficar visível de forma estranha, mas com o tempo pode ficar mais oculto
  • Cenários que podem surgir com isso
    • A taxa de aprovação pode subir e, em compensação, podem aumentar os casos de eliminação durante o período de experiência
    • O peso sobre desenvolvedores juniores pode crescer ainda mais, já que eles terão de acompanhar cedo as exigências técnicas elevadas das empresas
  • Se se espalhar o uso de IA para passar em entrevistas de FAANG, a velocidade da mudança pode acelerar ainda mais

9 comentários

 
scheee 2025-03-07

Espero que a culpa não acabe recaindo injustamente sobre a IA, quando o que precisamos é reduzir o descompasso entre a entrevista técnica e o trabalho real.

 
whitelips 2025-03-07

Não sei se é por causa dessa mudança, mas a empresa onde trabalho está fazendo live coding na entrevista, sem questões prévias.

 
cnaa97 2025-03-06

Onde trabalho está caminhando para uma política que permite usar IA durante entrevistas técnicas para fazer perguntas.. Como o input determina o output, a ideia é justamente avaliar a capacidade de formular perguntas..

 
cronex 2025-03-06

Acho que pode usar IA.
Mas aí o resultado que sair disso precisa se tornar 100% seu.
Se eu fosse o entrevistador, passaria uma tarefa de programação online e, na entrevista presencial, pediria para a pessoa explicar aquele código. Naturalmente, também faria perguntas adicionais.
Se a pessoa não consegue explicar o código que enviou, tenha sido escrito por ela ou por IA, nem responder perguntas sobre ele, então tem que ser reprovada.

 
bbulbum 2025-03-06

> Em vez de avaliar habilidade de programação, o formato passa a avaliar a capacidade de escrever bons prompts para LLMs e a habilidade de refatoração

Acho que essas competências vão se tornar importantes.

 
alucard 2025-03-06

Não é culpa da IA; o problema não é que as tarefas de entrevista já tinham esse formato frágil de “encontre a resposta ótima e pronto, está tudo certo”, e agora esse problema apenas ficou evidente? No trabalho real, também não é como se não fossem usar IA, então por que impor restrições? rsrs No fim, independentemente do meio usado, o que importa é que haja um resultado. Só que, sim, é preciso avaliar com transparência como esse meio foi utilizado.

 
jamsya 2025-03-06

Concordo. Com a chegada da IA, testes de programação malfeitos e distantes do trabalho real naturalmente serão eliminados do mercado, e as empresas que adotarem formas melhores de contratação acabarão atraindo os melhores talentos.
É uma luta interessante entre a lança e o escudo.

 
xguru 2025-03-06

Programa de trapaça para entrevistas do Leetcode
É um exemplo apropriado de trapaça com IA em entrevistas técnicas mencionado neste artigo.

 
GN⁺ 2025-03-06
Opiniões do Hacker News
  • O melhor processo de entrevista incluía programação em par com membros da equipe e entrevistas por telefone. Em poucos minutos, dava para saber se o candidato conseguiria fazer bem o trabalho, e esse processo formou a equipe mais produtiva em mais de 20 anos de carreira

    • O problema é a necessidade de processos escaláveis e alto volume de processamento, que arruinou grande parte da cultura de software
    • A mentalidade de "precisamos processar centenas de candidatos, e as métricas do processo importam mais do que os resultados" é o problema
  • Revisão de código é muito útil como ferramenta de avaliação

    • É importante fazer o candidato revisar código
    • Júnior, pleno, sênior e staff enxergam coisas muito diferentes na mesma base de código
    • À medida que código gerado por IA se torna comum, é importante escolher desenvolvedores que consigam revisar com eficiência a qualidade e a exatidão do código
    • Houve experiência em uma empresa da YC com uma entrevista que usava revisão de código na primeira rodada, e isso levou à criação de um app open source
  • Por volta de 2005, em uma SME, foi pedido que codificasse em um quadro branco, sem poder usar um computador

    • Quando perguntou por que usavam quadro branco, a resposta foi que estavam imitando as boas práticas do Google
    • No fim, codificou no quadro branco, mas disse que toparia fazer de novo se fornecessem um computador
    • Acabou indo para outro lugar
  • A empresa A deveria se perguntar por que não contratar a IA se ela consegue resolver todas as perguntas de entrevistas técnicas

    • Pode ser necessário que um engenheiro avalie se um recurso pode ser implementado, e na entrevista é possível pedir ao candidato que pense sobre uma solicitação de recurso de exemplo
    • Muitas vezes a empresa não entende claramente o valor de um engenheiro, então tem dificuldade para julgar o valor do candidato
  • Como técnica de contratação para evitar IA, pede-se a desenvolvedores júnior que tragam código e o expliquem

    • Discute-se o que eles mudariam, como mudariam, se usaram padrões etc.
    • Para desenvolvedores sênior, dá-se código complexo e pede-se que o analisem em tempo real
    • Usar IA para encurtar tarefas rotineiras é aceitável, mas é preciso conseguir pensar criticamente sobre o resultado
  • Como entrevistador, em empresas que não são FAANG, usa-se um processo de entrevista simples

    • Pergunta-se sobre o currículo do candidato, expectativas e capacidades, e pede-se que mostre código que escreveu
    • Esse processo é rápido e eficaz
  • O mercado de trabalho atual está tão confuso que parece que será difícil conseguir emprego até bater a cabeça na parede

    • Há 26 anos de experiência, mas não se é perfeito, e enganar os outros não funciona muito bem
  • Usar problemas médios/avançados do Leetcode por 30-45 minutos na entrevista só tende a revelar dois tipos de pessoas

    • Quem aborda o problema do zero e quem já conhece a solução
    • Se não conhece o algoritmo de Kadane, é como abordar o problema do zero
    • Não se sabe qual é o método ideal de entrevista, mas há um estilo preferido pessoalmente
    • As perguntas de entrevista devem ter casos de teste, aumentar gradualmente em complexidade, focar em estruturas de dados e dar ao candidato a chance de fazer concessões e tomar decisões
  • O problema não é a IA, mas sim que as empresas não sabem como selecionar candidatos adequadamente

    • Nem aplicam o básico de psicometria
    • O melhor processo de seleção é fazer com que a nova pessoa realmente trabalhe por algumas semanas
  • Na última entrevista, foi pedido que a tarefa fosse feita usando ferramentas, incluindo IA

    • Um processo parecido também foi usado em uma entrevista de live coding
    • Usar ferramentas para verificar habilidades e boas práticas é uma escolha natural