Como é uma entrevista na Toptal?
A Toptal expôs claramente as etapas da entrevista em seu site. Vou contar minha experiência de entrevistar com toptal.
O primeiro passo é uma entrevista por skype onde o entrevistador falará sobre sua experiência anterior, currículo ou qualquer coisa em geral. O objetivo da entrevista é verificar suas habilidades de falar inglês. Qualquer pessoa com habilidades orais decentes em inglês deve passar por esta rodada facilmente
A segunda etapa é um teste de programação, onde você recebe três questões de programação para resolver em 90 minutos no Codility. Os testes de codilidade julgam o código quanto à correção e desempenho , o que é diferente do que outras plataformas de codificação semelhantes fazem, como leetcode ou hackerrank.
Correção refere-se a quantos casos extremos seu código passa. Por exemplo, se você estiver lidando com uma função que usa uma matriz inteira como entrada, os possíveis casos extremos podem ser:
- comprimento da matriz é zero
- comprimento da matriz é um número muito grande
- comprimento da matriz é pequeno, mas cada número na matriz é muito grande. Portanto, se você estiver fazendo uma soma ou produto de número em qualquer lugar do programa, pode ultrapassar o intervalo de números inteiros
Desempenho refere-se à rapidez com que seu programa é executado. Em termos de programação, a complexidade do seu programa. Se o problema pudesse ser resolvido na complexidade O(log n) e você o resolvesse na complexidade O(n) cobrindo todos os casos de teste, você ainda obteria apenas 50/100.
A melhor maneira de melhorar nos testes de codilidade é praticando em codilidade. Existem muitas nuances dependentes do idioma que você só pode aprender praticando a própria codilidade. Por exemplo, em C++, se você estiver armazenando uma soma de números em uma variável, torne-a longa em vez de int ou seu programa pode interromper a entrada com números grandes.
Para limpar o teste de codilidade Toptal, você precisa de 120/300. Existem três problemas, cada um pesando 100 pontos. Dessas três questões, uma seria fácil, uma seria média e uma seria difícil. Alvo para marcar 100 no fácil. 50 e 50 em médio e duro. Para médio e duro, dê uma solução correta, mas não eficiente.
A terceira rodada é o teste de codificação ao vivo. Na minha opinião, esta é a rodada mais difícil de todas. Esta será uma sessão de hangouts do skype ou do google, onde o entrevistador solicitará que você compartilhe sua tela. O entrevistador lhe dará duas declarações de problema, uma após a outra, e espera-se que você codifique a solução em 20 minutos cada. Se você estiver tendo um bom dia, o entrevistador pode acrescentar um ou dois minutos a mais.
Essas perguntas não são algorítmicas difíceis, mas certamente exigem que você codifique ativamente, familiarizado com a sintaxe da linguagem que planeja usar. A chave para esta rodada está sendo pré-preparado para esta rodada. Deve-se ter uma configuração de ambiente em que o programa já esteja recebendo uma entrada de um arquivo. Por exemplo, o formato de entrada possível pode ser:
matriz 2-d de números inteiros:
- 91 90 91 10 21 30 41 51 61
- 21 30 40 50 60 71 81 91 31
- 21 41 50 61 70 31 41 51 61
- 91 90 91 10 21 30 41 51 61
- ola eu sou string
Isso lhe dará uma vantagem no problema.
A quarta rodada é a rodada do projeto. Você terá uma escolha com base em sua experiência. Eu escolhi um projeto de back-end.
Pessoalmente, achei o projeto difícil e tive que gastar muito tempo nele. Minha experiência anterior de trabalho em codificação de back-end definitivamente ajudou. Eu diria que seria extremamente difícil para alguém que tem muito menos ou zero experiência em codificação de back-end. Certifique-se de cobrir todos os pontos mencionados na declaração do problema, faça perguntas à pessoa que vai entrevistá-lo se você não tiver certeza sobre algum dos requisitos. Tudo de bom :)





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)