Antes mesmo de pensar sobre entrevista de emprego técnica, que é uma etapa em processos seletivos, é provável que você tenha tido contato e consequentemente interesse pela carreira em tecnologia.
Esse entusiasmo muitas vezes acontece pesquisando e aprendendo alguma linguagem de programação com conteúdo na Internet, fazendo o ensino médio em conjunto com um curso técnico, dando manutenção no computador do seu amigo ou ajudando sua tia com o Blog dela em WordPress. Eu, por exemplo, comecei programando scripts para um jogo chamado Tibia. Era muito divertido, inclusive.
Seja qual for o ponto de partida, sendo ele um reflexo do quão nerd você foi na infância ou não, existe a hipótese de em algum momento você deixar de ser uma pessoa entusiasta ou trabalhar de forma independente e participar de um processo seletivo.
Muitas empresas incluem nessa jornada a entrevista técnica. Essa etapa costuma ser decisória para o êxito em conseguir o trabalho pretendido. Por isso, é crucial que uma pessoa desenvolvedora esteja preparada para ter sucesso nesse formato de entrevista.
Todos os pontos levantados a seguir são frutos de leituras e conversas com diversas pessoas em lideranças, pares e lideradas. Também trago percepções como entrevistador enquanto líder de desenvolvimento mobile no Stoodi e no AppProva, e como entrevistado em empresas como Trybe (conheça mais sobre nossa cultura), AppProva, Stoodi, Facebook, Uber, iFood, JusBrasil, ThoughtWorks, EBANX, NuvemShop e Rakuten.
Vamos conhecer alguns dos diferentes tipos de entrevista técnica:
- Whiteboard: é um teste feito para que a pessoa demonstre sua forma de pensar e resolver problemas. Geralmente consiste na criação de um algoritmo de maneira síncrona, remota ou presencial, enquanto você conversa com a pessoa entrevistadora. A preparação para esse desafio geralmente vem do estudo de algoritmos.
- Construção de projetos: muitas vezes as empresas pedem para que você construa um projeto com base em alguma especificação e posteriormente o apresente, respondendo, assim, à pergunta sobre como você implementou cada um dos requisitos propostos. Essa parte pode ser tanto um momento assíncrono, em que você constrói e depois apresenta, como síncrono, em que você desenvolve enquanto a pessoa assiste e faz perguntas.
- Conversa sobre tecnologia: a pessoa que está te entrevistando traz alguns questionamentos relativos a tecnologias específicas e conhecimentos computacionais com as quais você trabalhará.
- Conversa sobre qualidade, processos e dia a dia: você responderá sobre os processos de desenvolvimento de software que conhece ou vivenciou, assim como alinhar expectativas de como será o seu dia a dia naquela empresa. A visão de qualidade entra como ponto-chave para diferenciar uma boa pessoa desenvolvedora de software.
Estes são alguns dos tipos de entrevista técnica, deixando claro que pode variar de empresa para empresa. Sendo assim, seguem dicas sobre como se preparar para cada uma delas.
Whiteboard
- LeetCode: plataforma que ensina conhecimentos sobre algoritmos, estruturas de dados e prepara para entrevistas técnicas das mais diversas empresas de tecnologia, com foco no famoso Whiteboard.
- Cracking the Coding Interview: livro que aborda diversos desafios de programação e ensina a como chegar na solução, com foco em explicar qual a construção de raciocínio necessário para tal. Este livro foi uma sugestão que recebi da própria entrevistadora durante o processo do Facebook.
- Revisão de algoritmos, estruturas de dados e todas as categorias de fundamentos de programação. Os dois primeiros cursos desse programa da Universidade de Stanford são sensacionais para o aprimoramento destes conceitos. Além disso, para praticar a escrita de algoritmos você também pode utilizar plataformas como CodeWars e Exercism.
Construção de projetos
Antes de começar a construir seu projeto leia com atenção a especificação que será apresentada. Além disso, é importante que você tenha uma base acerca de guidelines de engenharia praticados por empresas de referência. Um bom exemplo é o guia de estilo de código JavaScript do Airbnb.
- Procure por repositórios públicos no Github/Gitlab/Bitbucket da empresa pretendida: empresas que possuem projetos com código aberto deixam indícios das tecnologias que estão adotando, assim como qual o padrão de qualidade e demais práticas de escrita que adotam.
- Leia o blog técnico da companhia, quando houver: é possível encontrar informações sobre produtos que foram feitos recentemente, tecnologias adotadas e práticas de desenvolvimento. Além de alinhar a pessoa candidata ao que a empresa tem manifestado publicamente, demonstra para quem te entrevista que você tem de fato interesse pela vaga.
- Faça os dois itens acima levando como premissa se ater aos requisitos pedidos na especificação do projeto. Não atrase a entrega do projeto e demonstre o quanto você sabe fazer primeiro o que é prioritário. Aqui você demonstra características como habilidade em gerir o tempo e responsabilidade com prazos.
Conversa sobre tecnologia
- Perguntas e respostas sobre questões de tecnologia: busque por conteúdos no Google como ‘top javascript interview questions’ ou ‘top computer fundamentals interview questions’ para que você possa ter uma ideia dos possíveis questionamentos. Empresas como a Toptal costumam publicar ótimos conteúdos sobre o assunto;
- Prepare-se relendo a documentação da linguagem e tenha humildade quando não tiver clareza sobre alguma pergunta. É melhor dizer que “não sabe e vai procurar” do que inventar uma resposta;
- Seja uma pessoa ávida por conhecimento, escute ‘podcasts de tecnologia’, leia ‘blogs’, veja vídeos com novidades sobre tecnologia.
Conversa sobre qualidade, processos e dia a dia
- Testes unitários: pessoas desenvolvedoras que entendem a importância e têm experiência com testes unitários tendem a ser mais valorizadas. Tendem porque depende da empresa contratante dar ou não valor a esse aspecto de qualidade de código. Para aprender sobre teste unitários gosto de indicar essa leitura como ponto de partida.
- Code-review (CR): ter prática em realizar uma boa CR, assim como saber explicar os benefícios que ela traz para a equipe também te valoriza. Para realizar uma CR de qualidade é necessário aperfeiçoamento constante. Uma dica é criar um repositório em sites como Github e Gitlab e pedir para que outras pessoas façam CR do seu código, assim como acessar repositórios públicos e realizar o CR de outros códigos. Essa é uma boa leitura para começar a entender mais sobre o assunto.
- Ferramentas de análise de qualidade de código: elas auxiliam, medem e dão feedbacks sobre a qualidade do código. Entre outras coisas, elas podem medir o percentual de cobertura de código, forçar o uso de regras de padrão de escrita e sugerir reduções de complexidade na sua lógica. Conhecer os benefícios e seu uso é um ponto positivo já que você demonstrará preocupação em garantir a qualidade.
- Entender o processo de desenvolvimento: perguntas sobre como é o dia a dia da equipe, quais metodologias são adotadas, processos de qualidade e qualquer prática adicional são importantes para deixar claro que você tem a preocupação além do código. Esse ponto se conecta com os três pontos anteriores, já que eles podem ser parte do processo de desenvolvimento da empresa pretendida.
- Quem são as pessoas que vão te mentorar? Ter boas pessoas para te mentorar é incrível e faz toda a diferença na forma como você evolui. Trazendo uma visão pessoal, a parte ao qual dou mais importância em um processo enquanto pessoa entrevistada é o fit entre mim e minha futura liderança/referência. Ter a curiosidade de conhecer e conversar com sua futura liderança e pessoas mentoras é uma forma de deixar claro que você tem interesse em crescer profissionalmente.
- Com qual tecnologia vou trabalhar? Essa é uma pergunta válida, mas deve ser colocada de forma que deixe evidente a preocupação em entender quais as tecnologias que você terá oportunidade de trabalhar. NUNCA se refira de forma pejorativa a uma tecnologia, seja ela qual for. Isso é uma postura anti-profissional. Entenda que a tecnologia serve para resolver problemas e que em algum momento, alguém precisou realizar aquela escolha. Você pode até não concordar, não se interessar e achar ruim, mas tenha respeito por quem gastou meses ou anos de sua vida trabalhando naquilo.
Ao se preparar para uma entrevista técnica você não só está construindo um caminho para a empresa que pretende entrar, mas também está desenvolvendo uma habilidade que será útil ao longo da sua carreira. Apesar de tudo, é comum não passar em processos seletivos, mesmo com preparação para a entrevista técnica. Existem outros pontos como fit cultural, habilidades socioemocionais e nível de experiência requerido que contam muito – às vezes até mais do que o seu desempenho técnico.
Fazendo um paralelo com a carreira de liderança em tecnologia, é comum que você precise estruturar e atuar como pessoa responsável pela etapa de entrevista técnica. Conhecer esse momento facilita quando no futuro você for a pessoa do outro lado da mesa.
Por fim, se você busca uma carreira em desenvolvimento de software e tem certeza que quer aprender tecnologia e seguir na carreira de uma pessoa desenvolvedora, venha para a melhor escola do Brasil! Ao longo da formação você terá contato com profissionais de mercado que vão te ensinar a, entre outros conhecimentos, compreender as dicas que listei, vem para a Trybe!