Recentemente, tive uma entrevista por telefone com uma empresa. Após a entrevista por telefone, fui orientado a concluir uma breve tarefa de programação (um pequeno programa; não deve demorar mais de três horas).
Eu continuaria com cautela. Avalie a relevância do desafio para o trabalho e garanta que o reembolso futuro do empregador valha a pena 3 horas do seu tempo.
Questiono o valor desses tipos de testes e prefiro julgar alguém por suas realizações passadas. Uma tarefa curta predefinida não pode dizer nada ao empregador sobre o que você pode fazer. Apenas o que você não pode fazer, e isso pode ser rapidamente determinado com algumas perguntas por telefone.
O teste tem seu lugar. Faça a si mesmo as seguintes perguntas sobre o teste e responda em conformidade.
- O teste é justo, considerando seu nível de carreira atual?
- O teste tem uma resposta correta claramente definida?
- O entrevistador tem interesse em seu potencial como pessoa ou está demonstrando mais interesse nos resultados dos testes (ou seja, contratar agências é péssimo para isso).
- O teste representa o tipo de trabalho que você gostaria de fazer ou é uma verificação de habilidades ambígua (por exemplo, teste se você conhece a sintaxe Java).
Só sou instruído diretamente a concluir a tarefa e entregar o código.
Você acabou de responder sua própria pergunta.
Imediatamente planejei lançá-lo no Github, escrevendo um conjunto de testes para ele, usando o Travis-CI (integração contínua gratuita para repositórios públicos do Github) para executar os conjuntos de testes e o CMake para criar os makefiles do Linux para o Travis-CI.
Não, não foi isso que eles pediram para você fazer.
Dessa forma, não só posso demonstrar que entendo como usar Git, CMake, Travis-CI e como escrever testes, mas também posso simplesmente vincular a página Travis-CI para que eles possam ver a saída dos testes. Achei que isso seria um pouco mais conveniente para o entrevistador.
Seria cuidadoso ao demonstrar habilidades muito cedo ou muito tarde no processo de entrevista. Se você sente que não se saiu bem na entrevista e agora está tentando compensar, isso não vai funcionar. Por outro lado, fazer muito quando não solicitado também demonstra excesso de ansiedade. Isso poderia resultar na contração do empregador com uma oferta de salário mais baixo do que você esperava.
No entanto, estou um pouco preocupado que fazer tudo isso para uma tarefa relativamente simples pareceria ruim.
Sim, parece ruim. Resolver seu desafio com uma linha de código será muito mais impressionante do que um projeto completo.
Pela minha experiência, não é assim que você ganha a entrevista de emprego, mas é uma maneira de perder o emprego. O teste de código é um problema de controle de qualidade. Toda empresa que usa testes de código ao contratar pessoas o faz, porque anteriormente não estava usando testes de código. Eles tiveram uma péssima experiência com alguém que escapou das rachaduras do processo de entrevista que não deveria ter.
Eles pegam seu código-fonte e o passam pelo escritório. As pessoas comentam sobre isso, e o que você não quer que elas digam é "Ele cometeu esse erro? Mas estava gastando tempo usando Git, CMake e Travis-CI. Que idiota por perder esse erro".
É isso aí. Você perdeu.
Eles querem saber que você pode codificar, porque não podem ensinar isso a você. Git, CMake e Travis-CI podem ser facilmente ensinados.