Há várias formas de avaliar um programador em uma entrevista de emprego. Alguns métodos envolvem um grande desafio, a criação e apresentação de projetos ou várias horas de discussão sobre um determinado case com a banca avaliadora. Outros apenas querem saber qual o perfil do candidato e suas habilidades em um dia normal de trabalho.
Aliás, mesmo que um teste de programação seja aplicado durante o processo não é apenas a parte técnica que importa para os recrutadores. É preciso ter em mente que muitos deles irão analisar sua capacidade de se comunicar com um cliente para consertar um erro em um código ou para apresentar um novo projeto.
Na galeria a seguir, selecionamos alguns relatos do Quora com exemplos de métodos usados em processos seletivos para programadores.
Neles, os internautas contam suas experiências e mostram seus pontos de vista tanto da perspectiva de um candidato quanto de um recrutador, e os relatos podem servir como dicas para quem está se preparando para uma entrevista de emprego na área. Confira:
A resposta de William Pietri ganhou mais de 1.500 votos no Quora. O usuário afirma que gosta de saber exatamente como o candidato se porta no ambiente de trabalho. Por isso, a única pergunta que ele faz para o entrevistado é: Você gostaria de se sentar e programar comigo por um momento?
Segundo o internauta, chamar o entrevistado para programar por algumas horas faz com que ele mostre qual o seu perfil profissional de uma maneira que ele não poderá encenar suas qualificações. Algumas características que podem ser descobertas nesse método são: se o candidato tem programado ultimamente; o quanto ele está familiarizado com a linguagem que irá usar; como ele trabalha em equipe; se eles fazem a pergunta certa sobre uma tarefa e como eles lidam com contratempos.
Com mil votos, o usuário Leo Polovets diz que as melhores perguntas para programadores são aquelas que trazem várias abordagens com diferentes trade-offs ou seja, situações em que há conflitos de escolhas. O exemplo dado pelo internauta foi o seguinte:
Digamos que você tenha uma lista de N+1 números inteiros entre 1 e N. Você sabe que há pelo menos um número duplicado, mas podem haver outros. Por exemplo: se N = 3, sua lista poderia ser 3, 1, 1, 3 ou 1, 3, 2, 2. Imprima o número que aparece na lista mais de uma vez (Isto é, no primeiro exemplo, você poderia mostrar 1 ou 3 não é preciso mostrar ambos).
Ficou curioso? Clique aqui para ver o caso completo e a resolução do problema.
A melhor entrevista que o engenheiro de software do Facebook, Amir Memom, já presenciou foi quando lhe deram um notebook para que ele programasse algo do zero em três horas, e depois explicasse seu projeto e a solução para uma equipe de avaliação. Enquanto isso, os avaliadores analisavam a solução e discutem como aprimorar o projeto, sugerindo melhorias e fazendo novas exigências. A sexta hora do processo foi aberta para perguntas para a futura equipe do candidato.
Segundo o usuário, esse tipo de processo permite que os avaliadores aprendam muito sobre o candidato. Além disso, uma vantagem para os recrutadores é que poucos são os candidatos que conseguem terminar o projeto a tempo, é uma boa forma de filtrar os mais capacitados.
Nate Waddoups descreve a situação em que esteve em uma de suas entrevistas:
- Sabe a função malloc?
- Sim, claro.
- Ótimo, então eu quero que você escreva ela no quadro branco.
Quando ele foi ao quadro branco, o entrevistador disse: Você deve descrever o projeto pela primeira vez.
Para Waddoups, o elemento surpresa é fazer com que essa seja uma grande questão. O candidato riu quando o avaliador lhe fez a pergunta, pensando "Isso é um absurdo!", e isso fez com que o clima ficasse mais descontraído. Ele levou boas horas para escrever o tudo e, enquanto isso, discutiu com o entrevistador as melhores formas de otimizar o código.
Sid Reddy também relata um problema que pode ser usado em processos seletivos para programadores.
"Considere um baralho padrão com 52 cartas, sem coringa, com 13 cartas por naipe. Digamos que um amigo lhe peça para puxar e olhar cinco cartas aleatórias desse baralho. Depois, você deve mostrar quatro delas e manter uma escondida.
Existe algum esquema em que você e seu amigo podem concordar de antemão que ele poderá identificar a carta escondida olhando as quatro cartas reveladas para quaisquer cinco cartas que forem puxadas? Se sim, explique como isso aconteceria. Caso contrário, prove por que isso não é possível."
Clique aqui para saber a solução para o problema.
Um dos métodos usados por Joseph Wang, cientista chefe na Bitquant Research, é imprimir um código com 10 páginas do sistema, dar para o entrevistador e perguntar: Então, o que acha?
Para o usuário, essa questão pode revelar imediatamente a diferença entre um programador experiente e um novato. Um candidato com menos experiência geralmente começaria a olhar o código linha por linha, enquanto um programador mais avançado daria uma olhada rápida e depois folhearia as páginas para entender o design de auto nível do sistema. Isso quando o objetivo for realmente de contratar um profissional mais experiente na área.
(Clique aqui para conferir todas as outras respostas enviadas no Quora)
Para quem busca trabalhar no exterior, é fundamental traçar um caminho para ter sucesso em um novo país, segundo brasileira que é VP global de finanças da IBM