Perguntas de Entrevista para Desenvolvedores Backend Sem Respostas Certas
Volte no tempo até sua última entrevista. Você foi perguntado sobre coisas como "o que é ACID" ou "como uma interface difere de uma classe abstrata." Você recitou definições decoradas de um livro de referência. O entrevistador marcou uma caixinha em seu caderno, e você seguiu para o próximo item. Esses tipos de diálogos se parecem com uma prova oral na universidade. Eles demonstram mal como um candidato resolve problemas do mundo real.
Ariardo Martini, autor do repositório Back-End Developer Interview Questions, encontrou o mesmo problema. Ele prefere passar um dia inteiro com candidatos fazendo pair programming. Mas quando não há tempo para desenvolvimento colaborativo, você precisa de tópicos que estimulem discussões em vez de respostas ensaiadas.
Uma Cola Sem Respostas Certas
O projeto é uma coleção estruturada de tópicos para entrevistas conversacionais com desenvolvedores backend. O repositório reuniu mais de 16.000 estrelas, mas não contém uma única resposta pronta.
E isso é intencional. O autor adverte desde o início: a maioria das perguntas aqui são abertas. Elas não têm uma única solução correta. O objetivo da coleção é iniciar uma conversa que revele o processo de pensamento do desenvolvedor, sua atitude em relação a trade-offs arquiteturais e sua compreensão dos princípios fundamentais.
Sobre o Que o Autor Propõe Discutir
Todos os materiais são divididos em seções temáticas. Aqui estão alguns blocos que mostram claramente a estrutura do repositório.
Arquitetura e Padrões de Projeto
Em vez de recitar nomes de padrões do livro GoF, o candidato recebe tarefas práticas. Por que objetos globais e estáticos são considerados má prática? Quais são os limites de usar Active Record versus Data Mapper? Ou como contornar o "erro do bilhão de dólares" — o conceito de referências nulas que causou milhares de crashes em produção.
Linguagens e Paradigmas
Este bloco contém perguntas sobre sistemas de tipos, estilo funcional e o funcionamento interno das linguagens. Você pode ser solicitado a reescrever um loop usando recursão apenas com estruturas de dados imutáveis. Ou discutir por que construtores em Java e C# não fazem parte de interfaces.
Sistemas Distribuídos e Bancos de Dados
Aqui, o entendimento de desafios práticos de escalabilidade é testado. Como o candidato avalia os trade-offs do teorema CAP? Qual modelo de comunicação eles escolherão para microsserviços: Request/Reply ou Publish/Subscribe? Como abordar testes de código concorrente quando bugs se manifestam uma vez por mês sob alta carga?
Tópicos Não-Técnicos e Processos
Uma parte inesperada do repositório aborda questões de gerenciamento e colaboração. Como você explica a natureza de código legado para um gerente de projetos e prova a necessidade de trabalhar com technical debt? Como você organiza o trabalho em equipe sob horários flexíveis e políticas de férias ilimitadas?
O Valor Dessa Abordagem
O próprio princípio de seleção de perguntas é interessante. Martini aconselha trazer para entrevistas tópicos cujas respostas não são totalmente claras para o próprio entrevistador. Dessa forma, o diálogo se torna uma troca genuína de experiência.
O repositório contém uma categoria separada de tarefas com trechos de código. O candidato recebe um fragmento subótimo ou perigoso. A tarefa é encontrar um vazamento de memória em uma implementação de stack ou refatorar uma cadeia de cinco constructs aninhados if. Isso mostra se a pessoa identifica code smells e se importa com legibilidade.
Outra camada consiste em cenários hipotéticos no estilo das perguntas de entrevista de Bill Gates. Imagine que seu chefe é um clone exato de você. Você gostaria de trabalhar para ele? Ou tente defender COBOL contra defensores de linguagens modernas. Tais tópicos testam flexibilidade mental e a capacidade de argumentar uma posição sem fanatismo.
Como Usar o Repositório
Os responsáveis por contratação não devem tentar passar por todas as 150 listas de uma vez. Isso transformaria a entrevista em uma maratona de várias horas. É mais sábio escolher duas ou três seções focadas que correspondam aos requisitos específicos do cargo.
Para desenvolvedores, o projeto é útil para autoavaliação. Percorra os tópicos. Se termos como Herança Variante e Contravariante ou Falácias da Computação Distribuída causam confusão, você tem uma lista pronta de tópicos para estudo autônomo.
Por fim, estes são tópicos prontos para discussões em equipe. Pegue a questão de monólito versus microsserviços e faça uma revisão arquitetural de uma hora da sua própria aplicação.
Back-End Developer Interview Questions é uma ferramenta para mudar o formato da entrevista de prova oral para diálogo entre pares.
Se você conduz entrevistas, confira este repositório e tente construir uma conversa como iguais. E se você está planejando procurar emprego, use a coleção como referência para avaliar seu próprio conhecimento.
Projetos relacionados