Executando verificação de segurança...
1

Testes Práticos e sua efetividade pra medir nosso desenpenho

Tenho certeza que todos aqui ja se viram diante de um teste que era simples (quase besta) mas não performaram bem, mesmo estando a anos trabalhando com tecnologia e gerando valor nos softwares que ajudaram a construir. Sei também que existem àqueles que vão bem nesses testes e conseguem finalizar.

Recentemente, um ex-colega que tenho bastante contato começou a procurar uma nova oportunidade remota pra fora do país depois de voltar de um intercâmbio e em um dos testes ele foi requisitado pra fazer um script que devolvesse os 10 primeiros números da sequência de fibonacci, em 1/2 hora. Acredito que muitos aqui vão achar simples, assim como ele, mas depois de 45min ele ainda não tinha finalizado.

Um front-end com 6 anos de carreira, ja migrou monolito pra micro-front-end, ja trabalhou em multinacional, é squad-leader (dos bons, me ajudou a evoluir bastante quando ainda era full-stack), um cara desenrolado que entregava tudo que era pedido. Mas que de repente num teste de 30min, pode ter ficado na pilha do "a gente te liga".

Nos próximos meses, pretendo aplicar pra fora também e sei que estou fadado a passar por situações assim mesmo sendo dev a 5 (os 2 ultimos como backend), sempre trabalhei com Node/JS/Typescript mas meu aprendizado foi truncado. Meu atual chefe montou um plano de estudos pra eu poder preencher as lacunas que tinha sobre alguns conceitos básicos, que confesso que ainda tenho, mas nunca deixei de entregar uma tarefa, eventualmente acontecem atrasos, mas geralmente são sempre sobre a regra de negócio que é complexa no nosso nicho, dificilmente acaba sendo por questões técnicas. Mas no momento que "peguei esse desafio pra mim" finalizei depois de 2h, contra os 30min do teste do meu colega, sem usar o stack overflow (pelo menos durante 1:40h).

O ponto é, pra mim esse teste não mostraria a capacidade de nenhum de nós, nem de praticamente ninguém da comunidade e este é o ponto que gostaria de saber a opinião de vocês. Onde eu poderia melhorar pra conseguir realizar esse teste em 30min?

Já trabalho para preencher as lacunas que sei que existem e para nem deixar aparecer as que não sei que existem ainda. Me considero um bom dev, mas num desafio como esse me pergunto, o problema está em mim, na possível falta de lógica? Talvez, mesmo já tendo entregue algumas queries bem complexas no MongoDB, nunca fui requisitado pra entregar uma lista com as opções da sequencia de fibonacci, coisa que com o stack overflow da pra fazer em 15min.

Ou será que o problema está nesses testes?

Carregando publicação patrocinada...
1

Esse teste em especifico serve para verificar como você lida com recursividade e o quanto você consegue fazer um código eficiente, pois em uma implementação normal desse algoritmo ele teria uma complexidade de O(2^n), que seria o que a maioria dos devs implementaria, porém, você pode utilizar o conceito de DynamicProgramming para implementar esse algoritmo, e por consequência, a complexidade dele diminuiria para O(n). Esse é um conceito bem importante pois demonstra que você é capaz de quebrar um problema grande em problemas menores e resolvê-lo com eficiência.

Uma boa ideia é treinar no HackerRank, por exemplo, pois lá tem vários desafios que podem ser resolvidos dessa forma, e normalmente as grandes empresas de TI usam o mesmo tipo de algoritmo que tem lá no HackerRank (as vezes o próprio hackerrank, inclusive) para avaliar os candidatos.

P.S.: Uma vez eu reprovei num teste da Amazon justamente por causa disso :(

1

Pô, obrigado pelo comentário, faz sentido isso. Você acha que tem algum outro ponto que seria interessante prestar atenção?

1

Estrutura de dados e Design Patterns são coisas que grandes empresas tendem a validar nas entrevistas.

Sobre Design Patterns, esse site tem basicamente tudo que você precisa para estudar:https://refactoring.guru/design-patterns

Sobre Estrutura de Dados, o próprio HackerRank tem uma triha para treinar esse tópico.

1

Show! Obrigado mano! Os design patterns já estavam no plano de estudos mas com certeza vou encaixar o HackerRank. Obrigado novamente hehe.