Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 19, 2021 09:12 pm GMT

Dicas Para Mandar Bem Em Testes Tcnicos

Tabela de Contedos

  1. Introduo
  2. Escolha da Tecnologia
  3. O Domnio do Desafio
  4. Desenvolvendo a Soluo do Desafio
  5. Hora de Testar a Aplicao
  6. Entrega e Concluso

Introduo

Antes de mais nada, gostaria de me apresentar, sou Leonardo Fiedler e atualmente trabalho como pesquisador na Senior Sistemas. A motivao inicial para este post surgiu depois da experincia ao avaliar algumas pessoas candidatas a vaga para trabalhar na equipe que fao parte.

Deixo bem claro tambm que este post no um guia, nem mesmo ir estabelecer regras do que fazer ou que no fazer, mas sim, ser dado dicas e observaes de algum que esteve do outro lado, avaliando desafios. As dicas deste post tambm podem ser aplicadas a qualquer projeto que voc for participar.

Para mandar bem no desafio necessrio ateno em todos os detalhe, desde a escolha da tecnologia, documentao, testes, at mesmo a entrega. Lembre-se que tudo conta e tudo avaliado e levado em considerao.

Escolha da Tecnologia

Escolher sabiamente a tecnologia para resolver um problema uma tarefa cotidiana na vida de uma pessoa desenvolvedora de softwares, por conta disso, caso o problema no especifique as tecnologias a serem utilizadas, voc dever fazer. E aqui que voc pode mitar ou virar o bola murcha logo de cara.

Imagem com uma bola murcha escrito abaixo bola murcha e outra com uma bola cheia escrito abaixo, bola cheia

Primeiramente, procure entender as tecnologias que a empresa e a equipe que se est aplicando utilizam no cotidiano - particularmente, sugiro dar preferncia por esta, mas caso no seja algo de sua familiaridade e isso no seja um impedimento para a vaga, escolha a tecnologia que voc mais se sinta confortvel.

Evite a ideia de selecionar uma tecnologia que nunca utilizou anteriormente para tentar aprender e fazer o desafio ao mesmo tempo, pois isto poder lhe causar contratempos e ainda impactar no desempenho do seu trabalho.

claro, estou falando de aplicar um conceito ou uma linguagem em sua totalidade que nunca foi praticado antes. Isso no se aplica, por exemplo, caso voc j tenha utilizado MySQL mas o desafio seja com base no PostgreSQL - neste caso, j so compreendidos os conceitos de: SQL e bancos relacionais e s ter de aprender algumas especificidades de um para o outro.

Uma outra coisa importante na escolha das tecnologias: evite escolher algo somente pelo hype. Para cada deciso que tomar, tenha uma justificativa clara do porqu est escolhendo aquilo e lembre-se que esta escolha precisa estar atrelada diretamente ao domnio do problema.

O Domnio do Desafio

Normalmente, o desafio iniciado com um texto introdutrio, seguido por uma lista de requisitos. Durante a leitura do texto, deve-se buscar algumas respostas:

  1. Qual o problema principal?
    Esta aqui simples, num amontoado de requisitos, procure entender o problema principal, ele que voc tem de atacar. Tente entender tambm, onde estar o desafio principal, se no front, back, arquitetura, banco de dados...

  2. Quais os requisitos so mais importantes e essenciais?
    Sabendo o problema principal, mapeie todos os requisitos que so essenciais. Estes devero ser os requisitos que voc dever focar e atender com maestria (so esses que iro ser avaliados, se no forem contemplados, dificilmente algo alm deles vai contar muitos pontos para voc)

  3. O que pode ser o diferencial do seu trabalho?
    Pense no que poder destacar o seu trabalho ao resolver este problema, porqu dentre N solues algum escolheria a sua como a resoluo definitiva? No necessariamente obrigatrio ter algo diferente, voc pode ter uma sacada de arquitetura, uma ideia de comunicao, uma forma inteligente de criar a interface de usurio, como por exemplo, sendo responsiva para dispositivos mveis ou at mesmo hospedando sua soluo para que os avaliadores possam acessar e executar online.
    Pense nas respostas das perguntas anteriores para chegar nesta.

Estando em mos dessas 3 respostas, hora de botar a mo na massa, mas no se esquea que voc ter um tempo limitado para fazer isso e dever administrar sabiamente o tempo para entregar um bom desafio.

Desenvolvendo a Soluo do Desafio

Essa a melhor parte, mas que pode se tornar um pesadelo se voc cometer alguns deslizes. Um dos mais clssicos, inclusive cometido por mim em diversos trabalhos da faculdade e ps graduao, a PROCRASTINAO!

Pois , uma nica palavra, aparentemente to inofensiva, pode fazer o prazo de entrega de 1 semana se tornar 1 dia em questo de algumas viradas de ponteiro. Administrar o tempo fundamental e deixar para depois sempre pior, ento a dica : comece assim que receber o desafio, trace metas dirias e estabelea um prazo de entrega antes da data planejada (eu gosto de terminar um dia antes, assim ainda me sobram algumas horas para rever e fazer alguns ajustes pontuais).

O segundo problema algo tambm bem conhecido no meio de tecnologia, onde voc entra em um espiral de pesquisas e divagaes, tentando fazer algo funcionar de uma forma e investe muito tempo tentando fazer algo "perfeito" e isso lhe consome um tempo precioso. Entregar um desafio da melhor forma possvel algo que todos adoram, mas lembre-se que a perfeio nunca existir e voc no ter tempo hbil para isso. Ento, prefira fazer e seguir em frente ao ficar perdendo tempo com coisas que podem ser melhoradas futuramente.

Durante o desenvolvimento do desafio, seu objetivo deve ser avanar as etapas, sem perder o ritmo. Mas espere, no v muito rpido para no se atrapalhar nas prprias pernas! Nesta etapa, voc no pode esquecer de documentar e testar.
DOCUMENTAO um ponto que separa bons/medianos de timos trabalhos. Ao abrir um projeto, ler um README.md que contm informaes sobre:

  • O que o projeto?
  • Quais tecnologias utilizadas?
  • Como instalar e executar a aplicao?
  • Link de acesso pblico ou um Gif/prints demonstrando o funcionamento da aplicao
  • Diagrama de funcionamento da aplicao (ou uma explicao um pouco mais tcnica sobre como funciona o projeto)

Provavelmente voc no consiga fazer tudo isso em um desafio, mas escolha alguns desses itens e d uma ateno a documentao, porque caso no tenha, uma pessoa avaliadora ter bastante dificuldade em saber o que voc fez e precisar passar pelas suas classes e mtodos para entender seu cdigo.
E a propsito, eu falei em documentar o todo, mas e o cdigo, documentar ou no documentar? Eis a questo... No h um consenso entre os avaliadores, assim como no h consenso entre as pessoas da rea, tem os que acreditam que deve-se documentar os mtodos, j outros dizem que o cdigo deve ser a prpria documentao.

Particularmente, gosto de documentar algumas parte do cdigo, mas sem aquelas obviedades, como:

# Este cdigo abaixo printa o texto Hello Worldprint('Hello World')

Alis, falando desse trecho de cdigo, escrever em portugus ou ingls?

Essa tambm uma questo complexa e na verdade, no h uma resposta correta. Particularmente, eu adoto a seguinte postura: estou no Brasil, todos falam o portugus, ento este o idioma padro por aqui. A menos que a empresa seja estrangeira ou o problema explicitamente me pea para trocar o idioma, eu escreverei neste idioma.
Independente do idioma que adotar, jamais misture idiomas, como nesse caso abaixo:

# Este mtodo faz algodef do_something():  pass# This method does somethingdef faz_algo():  pass

Voc deve ter lido at agora esta seo e pensado: caramba, cad a parte em que ele vai falar de Clean Code, Clean Architecture e tudo mais que eu tenho de fazer no meu cdigo? Pois bem, vamos falar disso.

Acho muito bacana tudo isso, de verdade, mas veja s, voc tem um desafio e um prazo curto para faz-lo. Voc j conhece esses livros e j os aplicou alguma vez antes? timo, coloque seus ensinamentos em prtica aqui tambm. Nunca os leu, no lembra, deu branco ou qualquer outro motivo: faa o bsico! Foco na entrega, no resultado final. Escreva um cdigo bem estruturado, divida em classes/arquivos, deixe tudo ORGANIZADO! Mas lembre-se, vo te avaliar por uma soluo pronta e entregue, ou seja, pelo todo e no apenas por um item em especfico.

Um outro detalhe muito importante no cdigo, evite a utilizao de strings de configurao fixas! Pois , segundo a agncia Dados Inventados SA, para cada candidato que deixa uma config fixa no cdigo, um dia acrescentado a pandemia (como se j no bastassem outros motivos). Vai usar uma URL? Um parmetro esttico? Ento voc tem 2 alternativas para fazer isso de forma elegante:

  1. Crie uma constante ( bacana, mas no top);
  2. Criar um arquivo de configuo e utiliz-lo (esse o que eu recomendaria se quisesse gabaritar no desafio).

Com todas essas dicas, as pessoas que iro avaliar vo at lhe agradecer pelo seu desafio...

Hora de Testar a Aplicao

Ento voc construiu a aplicao, fez todos os passos e terminou o desenvolvimento. Aparentemente, est tudo certo e tudo funciona como esperado.

Mas espere, voc criou testes?? Xiii...
Essa uma parte que percebi de maior dificuldade as pessoas que se candidataram. A maioria investe tanto tempo desenvolvendo que no h sequer espao para testes, por mais simples que sejam.

Uma dica para voc destacar o seu projeto: preocupe-se e implemente casos de testes. Por mais simples que eles sejam, bons e bem documentados testes iro elevar o patamar do seu trabalho.

E no precisa pensar muito complicado, viu? Pode fazer testes unitrios e de carga se for uma API, pode fazer testes de interface ou at algum outro.

Normalmente, este um item que fica por ltimo e em certas vagas, como a que avaliei, os testes no eram nem especificados no desafio. Porm, quem fizer...

Entrega e Concluso

Parabns, se voc chegou at aqui, possivelmente passou por toda a odisseia e est pronto para entregar o seu trabalho e correr para negociar o salrio.

Brincadeiras a parte, aps concluir o desafio, caso ainda tenha tempo, sugiro que publique em algum lugar para que os avaliadores possam ver.

normal, infelizmente, que o seu desafio no ganhe um feedback como devesse ser merecido aps tanto esforo. No entanto, publique seu cdigo no GitHub e compartilhe com pessoas mais experientes, pea a elas um feedback (pode mandar l no Twitter tambm, inclusive).

Tambm aps o desafio, gosto e recomendo que faa uma retrospectiva de tudo que construiu, as dificuldades encontradas, o que pode estudar mais e o que fazer de diferente em uma prxima.

Testes tcnicos so uma maneira de avaliar, de forma geral, o conhecimento e domnio em um conjunto de ferramentas e caso voc no tenha ficado satisfeito com o resultado, no se cobre tanto, lembre-se que o aprendizado um processo e voc sempre estar em seu meio. Reflita sobre seus acertos e erros e tente novamente caso no tenha obtido xito.

Espero que tenha gostado e bons desafios!


Original Link: https://dev.to/leonardofiedler/dicas-para-mandar-bem-em-testes-tecnicos-231k

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To