Em meio a entrevista na área de TI, geralmente temos o code challenge (desafio de código). Nessa etapa o candidato terá que resolver algum problema de programação, onde o objetivo principal é os entrevistadores conseguirem avaliar como é o seu raciocínio e suas habilidades técnicas.
Falando bem resumidamente, nessa etapa o candidato deverá implementar uma solução que atenda aos requisitos do problema proposto. Estes podem variar de complexidade, pois depende muito do nível da vaga que você está se candidatando.
Existem code challenges que você pode fazer em casa, de maneira independente, onde você tem um prazo para fazer e enviar para a pessoa responsável. Mas, aqui nesse artigo, vamos focar na etapa de code challenge que você faz na própria entrevista, juntamente com quem está te entrevistando.
Como é uma etapa em tempo real, o candidato pode ficar um pouco receoso e infelizmente não conseguir mostrar todo o seu potencial. Por isso, separamos 4 dicas para te ajudar a ir o melhor possível nessa etapa.
Pergunte e interaja
Ao ler o problema proposto, é importante extrair o máximo de informações sobre ele, por isso, pergunte tudo o que tiver dúvida. Não assuma nada precipitadamente. Os entrevistadores esperam que os candidatos façam perguntas, muitas vezes o enunciado do desafio pode não ser exatamente tão claro justamente para forçar a pessoa a sair dessa “zona de conforto” e perguntar, para que eles consigam inclusive ver como é a comunicação dessa pessoa. Então, interaja com os entrevistadores, isso mostra que você está engajado e comprometido em resolver o problema.
Um outro exemplo: geralmente para vagas com perfil mais sênior, os enunciados são mais abertos. Isso porque quando a pessoa é mais sênior, provavelmente ela irá fazer algumas perguntas mais maduras. Sendo assim, os entrevistadores conseguem ver quais são os tipos de perguntas que o candidato vai fazer e, a partir disso, conseguem ver um pouco da maturidade, da experiência dessa pessoa.
Se atente a comunicação
Apesar de ser uma etapa técnica, o candidato que tem se preocupar com sua comunicação. É muito importante saber comunicar seus pensamentos aos entrevistadores, isso porque não tem como eles entenderem sua linha de raciocínio se você apenas digitar o código. Eles querem entender quais seus pensamentos para chegar naquele resultado. Assim, ao ir expondo seus pensamentos em voz alta, quem está avaliando pode entender melhor como está sendo sua abordagem com o problema proposto e qual linha você está pensando em seguir.
A capacidade de explicar o código de forma coerente e de maneira clara é tão importante quanto o código em si. Isso pode contar até mais que o próprio código dependendo da situação. Às vezes o candidato é bom tecnicamente, mas não é um bom “team player”, onde os entrevistadores podem entender que talvez você tenha algum problema de trabalhar em equipe.
Use a linguagem que for mais confortável para você
A maioria das empresas nessa etapa não especificam a linguagem que você vai usar, elas deixam em aberto para que você possa utilizar a linguagem que preferir. Porém, os candidatos muitas vezes caem na neura de utilizar uma linguagem que às vezes ele não domina tanto só para agradar a empresa.
Claro que o domínio da linguagem é importante, mas se o processo seletivo não especificar uma linguagem para essa etapa, use a linguagem que você estiver mais confortável. Muitas vezes não é a escolha da linguagem que vai impactar, mas sim a comunicação e o resultado entregue.
Estude alguns tópicos como complexidade algorítmica e estrutura de dados
Muitas vezes as pessoas podem pensar que complexidade algorítmica não é algo muito usado no dia a dia, que é algo mais acadêmico, mas não é por isso que não é importante saber.
Mesmo que a complexidade algorítmica possa parecer distante da prática diária, ter esse cuidado com o código mostra senioridade. Um sênior naturalmente irá se preocupar se a complexidade temporal e espacial do código que ele está escrevendo é muito alta, já o júnior não necessariamente.
Essa preocupação e saber definir isso conta pontos no processo seletivo, o que mostra esmero com o código. Realmente você não deve usar complexidade algorítmica muito no dia a dia, mas é importante ter uma noção sobre isso, pois mostra que a pessoa é cuidadosa com o código.
Estrutura de dados é a mesma coisa: em muitos code challenge a pessoa provavelmente vai escrever uma primeira versão não tão otimizada (que é o esperado). Então, pode-se fazer uma primeira versão que funcione e cumpra os requisitos e depois ir refinando ela.
Para sair dessa solução não otimizada para ir para uma mais otimizada, provavelmente o candidato vai precisar entender pelo menos o básico de estrutura de dados, principalmente array, fila, pilha e mapa. Então dê uma atenção para isso, pois é importante em uma etapa de code challenge por conta desses pontos mencionados.