Não existe uma receita mágica para resolver um desafio de código – é por isso que mesmo os maiores profissionais podem falhar em entregar bons resultados. Algumas das razões que vemos ao testar os candidatos ao Strong The One incluem entusiasmo, pressa, a sensação de que o que está sendo solicitado está acima do conhecimento do candidato, o medo de que o conteúdo entregue seja insuficiente etc.
Como membro da equipe que emite e avalia os desafios de código no Strong The One, entendi muitas das estratégias que ajudam os candidatos a serem bem-sucedidos. Gostaria de compartilhar algumas ótimas dicas para melhorar suas chances de pontuar mais alto e deixar uma ótima impressão ao enfrentar um desafio de código de tarefa inicial.
Entenda e planeje
Normalmente, um desafio de codificação consiste em uma breve descrição de um problema ou uma lista de tarefas a serem executadas (às vezes, ambas). A expectativa é que o candidato seja capaz de ler, entender e preparar uma solução para o problema escrevendo código e/ou organizando ferramentas. Evite a tentação de começar a configurar ambientes e codificar imediatamente: em vez disso, tente fazer um plano detalhado entendendo os requisitos e distribuindo as etapas necessárias no tempo disponível.
É normal ter dúvidas no início ou até mesmo entender mal os requisitos, pois pode ser um assunto diferente do que você está acostumado a lidar. Se este for o caso – agora é a hora de pedir esclarecimentos ao seu recrutador. Não tenha medo – é melhor perguntar agora do que perder tempo com uma implementação incorreta.
Preste atenção aos requisitos específicos. Eles podem pedir que você use uma linguagem, ferramenta, estrutura ou técnica específica que você não conhece. Não há nada de errado em dedicar algum tempo para fazer algumas pesquisas sobre esses novos tópicos, mas não mergulhe muito fundo, ou você pode perder muito tempo.
Certifique-se de priorizar sua lista de requisitos e traçar um roteiro para o seu trabalho. Considere o tempo que você precisará para revisar seu código, descansar (você pode ser bom, mas ainda não é um robô) e escrever uma apresentação ou um arquivo leia-me (se necessário). Por último, mas não menos importante, faça funcionar primeiro e deixe as melhorias e coisas extravagantes para depois.
Ao planejar seu tempo, tente entregar seu trabalho antes do prazo especificado para contabilizar eventos inesperados ou problemas técnicos.
Revise o código
O código que você entrega para um desafio nunca chegará ao ambiente de produção, mas isso não significa que possa parecer trabalho amador. Se alguma coisa, ele precisa parecer melhor do que o normal. Afinal, esta é a sua chance de dar o seu melhor.
Portanto, certifique-se de revisar seu código antes de enviá-lo, remover arquivos vazios e rascunhos, livrar-se daqueles códigos de amostra que vêm com o framework, corrigir recuos e linhas em branco, verificar se todos os comentários no código são realmente necessários (lembre-se do práticas de Código Limpo) e torná-lo limpo o suficiente para que a pessoa que o avalia não perca tempo procurando coisas que não refletem suas habilidades.
Examinar o código de outras pessoas é mais agradável quando é consistente, mas isso não é tudo. Escrever código compreensível e significativo leva a um projeto mais fácil de manter e livre de erros, então seu código definitivamente será julgado em parte por quão limpo e legível ele é.
Boas práticas
A codificação não deve envolver comportamentos mágicos ou malucos. É por isso que as comunidades de desenvolvedores criaram muitas boas práticas para diferentes linguagens e ambientes ao longo dos anos. Algumas dessas práticas são implícitas e algumas são obrigatórias, e todas elas tornarão seu código mais fácil de entender e manter. Os avaliadores de código vão querer ver você usar as práticas recomendadas que evitarão que você forneça um código ruim.
Comece mantendo a autenticidade. Não copie código de projetos semelhantes online. Não há problema em fazer alguma pesquisa sobre problemas semelhantes, mas o que conta é como você implementa a solução do seu jeito e de acordo com seu próprio entendimento. Esteja ciente de que os códigos de outras pessoas podem não ser bons.
Em relação ao código em si, atente para código redundante, chamadas cíclicas, interfaces como dependências, tratamento de erros e análise de dados de entrada/saída. Tudo isso é coberto principalmente pelos princípios SOLID e vale a pena usar para manutenção.
Lembre-se de que seu código pode ser visualizado em um editor ou IDE totalmente diferente do seu que pode não ter recursos como preenchimento automático ou clique para ir, portanto, evite códigos ocultos complicados e sempre considere os padrões de linguagem/framework.
Lembre-se que a pessoa que vai avaliar seu código também pode não ter uma máquina com o mesmo ambiente, o que também pode causar todo tipo de problema. Seu código pode nem ser executado. Fazer uso da dockerização é uma boa prática para evitar problemas ambientais comuns, como a própria linguagem e suas dependências (versão, bibliotecas, pacotes etc.), configurações desejadas, bancos de dados e serviços de terceiros.
A execução de várias condições em um software pode ser frustrante, especialmente com condições que precisam de muitos parâmetros ou envolvem tecnologias diferentes. Preparar um arquivo make é uma boa prática para economizar tempo ao executar os aspectos mais comuns do seu software.
Passar pelo código de outra pessoa pode ser uma experiência dolorosa. Entender o que o código faz, o que não faz e como executá-lo ou configurá-lo pode ser complicado. Um arquivo leia-me ajudará a dar algumas instruções e estabelecer uma boa impressão desde o início.
Testes
Os testes são uma parte importante do desenvolvimento de software. Mesmo que os testes de redação não sejam explicitamente exigidos de você, eles melhorarão suas chances porque mostrarão sua capacidade de se apropriar de seu trabalho. Seus testes bem-sucedidos provam que tudo funciona.
Considere escrever pelo menos alguns testes para cobrir os fundamentos e casos extremos em torno do seu código e para demonstrar a qualidade e consistência do seu trabalho.
Conclusão
Os desafios de código de tarefas domésticas são uma ótima maneira de mostrar um pouco de todas as suas habilidades e receber feedback de alguns outros profissionais.
Lembre-se de que as pessoas que avaliam seu código querem mais do que apenas ver se você é bom o suficiente com uma estrutura ou ferramenta específica. Não é uma maratona para ver qual candidato entrega o conteúdo primeiro. A questão é ver como o candidato resolve um problema e se o candidato sabe usar as ferramentas certas para fazer algo funcionar.
Dê o seu melhor, tente causar uma boa impressão com o seu trabalho e suas chances certamente aumentarão.








