Acabei de passar por mais um code challenge que me fez lembrar das vezes que bebi demais e passei o dia seguinte prometendo para mim mesmo que aquela havia sido a última vez e nunca mais faria isso novamente!

Antes de me aprofundar mais no assunto é preciso deixar claro que existem diferentes visões sobre o assunto dependendo do seu grau de senioridade. Para pessoas júniors e com pouca experiência, não há muito o que fazer a não ser se submeter a estes code challenges enviados pelas empresas. Quando estamos precisando de uma oportunidade, fica difícil se recusar a participar de processos seletivos porque eles possuem uma etapa com code challenge. Para você que está começando a carreira, a minha mensagem é “não se frustre!”. O code challenge não é uma boa ferramenta para medir a sua capacidade e conhecimentos técnicos.
Para explicar o meu ponto de vista eu vou falar um pouco sobre a minha experiência. Já fiz inúmeros code challenges e sempre tive a sensação de que era muito mais uma questão de sorte do que de conhecimento. Em uma ocasião específica me enviaram um code challenge com duas questões de Python onde eu teria uma hora para resolver as questões. Na primeira questão eu cometi um deslize na lógica e gastei todo o tempo sem entender porque a minha solução não funcionava. Pouco tempo depois eu estava perdido em meus pensamentos quando percebi o erro que havia cometido e lamentei ter falhado por um descuido tão simples. Para a minha surpresa a recrutadora me ofereceu a possibilidade de tentar realizar o teste mais uma vez. Ao tentar novamente eu consegui resolver as duas questões em menos de 5 minutos. Neste dia eu comprovei; não é só conhecimento, é sorte! Se você der o azar de deixar passar um erro simples, todo o seu teste pode ir por água abaixo. É como aquela prova de matemática onde o você resolve corretamente a integral e as derivadas, mas erra uma simples soma durante o processo e tira zero na questão.
Em outra ocasião eu recebi um teste técnico que consistia em 2 questões de SQL e uma sobre Python. Eu logo percebi que já conhecia aquelas questões de outros testes técnicos e sabia como resolvê-las. Como eu estava participando de outro processo seletivo e acreditava que logo seria chamado para outra vaga, decidi testar a minha hipótese. Respondi a questão de Python utilizando uma biblioteca core e, só por diversão, fiz com que o retorno de cada função se tornasse input para outra, de modo que toda a minha resposta coube em apenas uma linha de código (mas o output desejado era obtido). Resultado, fui aprovado e recebi muitos elogios pelo resultado do teste técnico. Neste dia eu comprovei a minha hipótese; ninguém havia olhado a minha solução, apenas olharam se eu tinha atingido os outputs ou não.

Falando um pouco sobre a minha visão como líder técnico. Eu já conduzi diversos processos seletivos e infelizmente eu já caí na armadilha de enviar code challenges para os candidatos. Posso dizer que, até hoje, a única pessoa que me arrependi de ter contratado foi justamente a pessoa que teve o melhor desempenho no code challenge. Esta pessoa entregou um código excelente, muito bem documentado e com testes. Eu fiquei tão impressionado que não prestei atenção nas red flags que a pessoa tinha em suas soft skills. Resultado, uma pessoa muito boa tecnicamente, mas que nunca se integrou ao time, possuía sérios problemas de comunicação e causou muitos problemas no curto período que fez parte da equipe. Por outro lado, eu já consegui convencer a equipe de recrutamento a adotar um live code bem simples de cerca de 30 minutos onde discutimos conceitos simples de algoritmos com os candidatos. Resultado, a empresa recrutou talentos incríveis! Alguns permanecem na empresa até hoje, outros seguiram carreira internacional e outros ainda se tornaram gestores em outras empresas. Não conheço um só candidato desta fase que não tenha dado certo!
Por fim, preciso dizer que não sou completamente contra os code challenges, mas às vezes (quase sempre) eles são usados de uma forma equivocada. Para as empresas e para os recrutadores enviar um code challenge é muito confortável. É como lançar uma rede ao mar e ver quais peixes vem, mas profissionais qualificados não são como peixes no mar! É preciso estar atento para não perder um bom profissional simplesmente porque ele fez o teste em um dia ruim. Além disso, é muito mais fácil ensinar um conhecimento técnico do que uma soft skill. Afinal, um profissional de tecnologia tem que estar em constante aprendizado, então é muito melhor avaliar a sua capacidade de entendimento da tecnologia e a sua motivação para continuar aprendendo do que avaliar o que ele já sabe.

Sintetizando, acho que os code challenges deveriam ser usados com responsabilidade (enviar code challenge e não ver a resposta do candidato deveria ser crime previsto na lei!). Os recrutadores precisam ter maturidade para saber qual é o conhecimento básico que a vaga exige e parar com aquele discurso de mas eu acho que saber subir um cluster Kubernetes é o básico. Enquanto os code challenges estiverem sendo utilizados como principal critério de recrutamento, as empresas continuaram perdendo excelentes talentos.


Deixe um comentário