Trabalho remoto no exterior #2 - Code challenges
Tags: remote, devlife
Published: 2019-07-03 14:13:38

Olá, esse é o segundo post da série "Trabalho Remoto" (leia o primeiro [aqui] (https://dev.to/lucascavalcante/trabalho-remoto-no-exterior-1-onde-procurar-de7)), e dessa vez vou trazer algumas dicas relacionadas aos sites de **code challenge**.

Como falei no post anterior, em 2017 comecei a fazer entrevistas em inglês para tentar trabalhos no exterior, fossem eles remotos ou presenciais. E na maioria dessas entrevistas, quando eu conseguia passar para o teste técnico, recebia um e-mail com um link para um site onde o teste seria validado de forma automática e com um tempo pré-determinado para finalização. Também conhecidos como code challenges.

Esse tipo de teste se diferencia um pouco dos demais pela automação que mencionei acima, e também por exigir um pouco mais de conhecimento na parte de conceitos, como por exemplo: estrutura de dados, resolução de problemas, sistemas distribuídos, algoritmos, matemática, etc.

Para quem é acostumado apenas com o dia a dia de um software mexendo com requests, responses, ORM e afins, vai penar bastante como eu penei. Apesar de ter estudado muitos desses temas na faculdade, não aplico com frequência no dia a dia e o conhecimento acaba escapando com o tempo.

Alguns destes testes são bem pragmáticos, do tipo "faça isso" e se compilar, passou. Já outros mandam um breafing, vocẽ tem que criar uma feature, criar testes unitários, e no final a plataforma ainda rodar os próprios testes para verificar a assertividade do código. (e depois de passar em todos esses testes, a empresa ainda te retorna dizendo que você não foi aprovado para a próxima fase, vai entender)

Bom, com o tempo a gente vai pegando o jeito e melhorando nosso rendimento nesses challenges. Mas, claro, precisamos estudar e pegar dicas que irão nos ajudar nesse processo. Então, vou listar abaixo o meu processo de aprendizado para essa finalidade:

* [30 Days of Code - Hackerrank] (https://www.hackerrank.com/domains/tutorials/30-days-of-code): o Hackerrank é uma dessas plataformas utilizadas pelas empresas para avaliar seu conhecimento através dos code challenges. Mas, um dos grandes diferenciais dela é que você tem à disposição uma lista de challenges para fazer na hora que você quiser. São organizados por linguagem, conceito, nível de dificuldade, etc. E para começar do zero, recomendo demais o **30 Days of Code** que vai explicando desde um simples "Hello World" até temas mais complexos como filas, pilhas, árvores binárias, etc.

* [Codility] (https://app.codility.com/programmers/lessons/1-iterations/):  o Codility tem o mesmo propósito do anterior, mas sua parte de aprendizado é um pouco menor, além de ter um foco bem forte em **algoritmos**. Nos exercícios a gente encontra o algoritmo de Euclides, Fibonacci, Crivo de Eratóstenes, etc.

* Livro [Estrutura de Dados e Algoritmos em Javascript] (https://www.youtube.com/watch?v=4-A07R_B8sU): esse livro é, de longe, a melhor **referência do assunto em língua portuguesa**. Apesar de ser focado em uma linguagem (Javascript), a autora aborda o tema de uma forma tão ditática e simples, que mesmo quem não conhece Javascript, terá facilidade com o conteúdo aqui apresentado.

![](https://thepracticaldev.s3.amazonaws.com/i/aoh8q4thto67ei70w1w2.jpg)

Essas foram as dicas de hoje. Se você conhecer mais alguma plataforma e/ou livro que possa ajudar nessa jornada, compartilhe conosco. :)