Entrevista técnica para software engineer back-end: Roadmap

Node JS

Entrevista técnica para software engineer back-end: Roadmap

Hoje em dia temos visto muitos desenvolvedores sonhando e conseguindo a tão desejada vaga internacional como software engineer, mas você já se perguntou como é esse processo?

Diferente do que normalmente acontece no Brasil, os processos internacionais costumam ter várias etapas e exigem certos tipos de conhecimentos que não são cobrados em entrevistas nacionais.

O que preciso saber?

Obviamente além de conseguir falar e entender inglês, ter o conhecimento técnico que são requisitos na descrição da posição desejada e ter habilidade de “vender o seu peixe”.

Entrevistas técnicas requerem bastante preparo, há vários assuntos que precisam ser abordados para garantir que você esteja pronto para perguntas consecutivas sobre algoritmos, estruturas de dados, design, otimização e, honestamente, apenas uma cesta cada vez maior de assuntos.

Então, criei uma lista com os principais assuntos desde a minha última rodada de entrevistas que abrange muitas das perguntas que frequentemente são feitas.

1 – Domine uma linguagem de programação

Se você é novo no mundo do desenvolvimento de software, certifique-se de ter um domínio sólido de pelo menos uma linguagem. Você não vai querer que isso seja uma barreira na sua entrevista.

2 – Aprenda algoritmos e estruturas de dados

Live code e testes online onde você precisa resolver 1 ou 2 problemas em 30 minutos são etapas normais e as vezes eliminatória em um processo. Por isso você deve ter atenção ao estudar algoritmos e estrutura de dados, pois é exatamente esse conhecimento que vai te ajudar nesses testes e além disso siga as seguintes dicas:

  • Leia o livro Cracking the Coding Interview;
  • Sites como geekforgeek fornecem o conhecimento necessário sobre estrutura de dados e algoritmos.
  • Faça exercícios, utilize plataformas como leetcode e hackerrank fornecem uma quantidade enorme de testes dos mais variados níveis que você pode utilizar para treinar, além disso existem testes específicos para linguagem e temas.

Abaixo a lista de estruturas de dados que você deve estudar:

  • Sorting;
  • Array;
  • Link list;
  • List;
  • Tree;
  • Graph
  • Stack;
  • Hashing;

Algoritmos que vc deve estudar:

  • Recursion;
  • Sorting (Sort, Insertion Sort, Merge Sort, Quick Sort, Heap Sort);
  • Searching + BFS + DFS;
  • Dynamic Programming;

3 – Análise de complexidade (Big O)

É muito importante saber o que é e como calcular a complexidade de um algoritmo, esteja confortável para calcular a complexidade de qualquer algoritmo que você escrever. Cada vez que você responder uma pergunta ou resolver um problema, a próxima pergunta será para dizer qual a complexidade do mesmo.

4 – Projeto de Sistemas (System Design)

Nas primeiras rodadas de uma entrevista técnica (sem código) podem haver perguntas sobre system design. Não é algo muito rígido e você pode falar sobre suas experiências e de como aplicar ou aplicar certas soluções.

Mas também pode ser dado alguns cenários em que você deve dizer como faria e aqui vão algumas dicas:

  • O fator mais importante e saber comunicar bem, se tiver dúvida pergunte;
  • Pergunte sobre os recursos necessários. (Escalabilidade, frequência de alteração do banco de dados, backup etc…);
  • Comece pequeno e vá adicionando as coisas subsequentes;
  • Após cada etapa, pergunte se é necessário mais aprimoramento;

Conclusão

Tentei focar nesse roadmap o que eu aprendi ao longo de vários meses de estudo e nas várias etapas de vagas que participei, mas saiba que existem outras coisas que você deve estar atento e elas são: Programação Orientada a Objetos, Design Patterns, Clean Code, SOLID, SQL, Microservices, Git, GitFlow, noções de DevOps e claro de dependendo de qual linguagem e a vaga, saber profundamente como as coisas funcionam para o que é pedido.

Sim eu sei é muita coisa e muita das vezes quando passamos na vaga, não utilizamos nem metade desse conhecimento no dia a dia. Mas quero te lembrar que nada disso será útil se você não souber “vender bem o seu peixe”, por tanto sempre demonstre interesse na vaga e no seu entrevistador, tente usar as informações que ele te der ao seu favor como experiências passadas que você tenha vivido e sejam similares.

Espero que essas dicas sejam valiosas para você e boa sorte.

Explore mais