Que perguntas devo esperar em uma entrevista .NET?

Por Aaron Cao · Atualizado em

Que perguntas devo esperar em uma entrevista .NET?
Espere perguntas sobre runtime (CLR, coleta de lixo, tipos por valor versus tipos por referência), linguagem (async e await, LINQ, genéricos, records), frameworks (middleware e injeção de dependência no ASP.NET Core, EF Core) e cenários como um vazamento de memória em um serviço de longa execução ou um endpoint de API lento. Os entrevistadores avaliam o raciocínio.

Espere perguntas sobre runtime (CLR, coleta de lixo, tipos por valor versus tipos por referência), linguagem (async e await, LINQ, genéricos, records), frameworks (middleware e injeção de dependência no ASP.NET Core, EF Core) e cenários como um vazamento de memória em um serviço de longa execução ou um endpoint de API lento. Os entrevistadores avaliam o raciocínio.

Quais perguntas de runtime e linguagem abrem uma entrevista .NET?

Os entrevistadores começam onde o framework começa: no runtime. Espere explicar o que o Common Language Runtime faz (carrega assemblies, compila a linguagem intermediária just-in-time e gerencia a memória) e depois entrar em mais detalhes sobre a coleta de lixo. A sequência de perguntas é previsível: por que o coletor é geracional, o que faz um objeto sobreviver até uma geração posterior, para que serve o heap de objetos grandes e por que IDisposable e using existem se a memória é gerenciada. Responda à última pergunta citando recursos não gerenciados, como identificadores de arquivos e conexões, que o coletor não sabe liberar prontamente.

  • Tipos por valor e tipos por referência. Onde cada um reside, o que significa copiar cada tipo e qual é o custo do boxing.
  • async e await. Explique que uma tarefa aguardada libera a thread chamadora em vez de bloqueá-la, por que async void é reservado para manipuladores de eventos e a que deadlock as pessoas se referem ao alertarem sobre .Result.
  • LINQ. A execução adiada é a armadilha: uma consulta IEnumerable é executada quando enumerada, não quando escrita, e uma consulta feita a um provedor de banco de dados só é traduzida para SQL no caso de expressões que o provedor entende.
  • Genéricos, interfaces e records. Restrições, por que usar interfaces em vez de classes base para facilitar testes e qual é o benefício da igualdade por valor de um record.

Responda a cada pergunta com o mecanismo e uma consequência. Dizer que uma coleta da geração zero é barata porque a maioria dos objetos morre jovem é o nível de resposta que os entrevistadores procuram; apenas citar as gerações sem explicar o motivo não é.

Como são as perguntas sobre ASP.NET Core e EF Core?

Você escreve controllers com confiança, mas teme que as perguntas sejam sobre a infraestrutura com a qual raramente lida. Essa preocupação faz sentido, pois é aí que ficam as perguntas sobre o framework. Veja a infraestrutura na ordem em que ela costuma ser abordada, com a pergunta complementar que acompanha cada tópico.

  • O pipeline de requisições. O middleware é executado na ordem em que foi registrado, e cada componente decide se chama o próximo. Pergunta complementar: onde a autenticação fica em relação à autorização e o que acontece se elas forem registradas na ordem inversa?
  • Ciclos de vida da injeção de dependência. Singleton dura por toda a aplicação, scoped dura por uma requisição e transient é criado sempre que é resolvido. A armadilha clássica é injetar um serviço scoped, como um contexto de banco de dados, em um singleton; esteja preparado para explicar por que isso é um bug.
  • Configuração e opções. Fontes em camadas, substituições por ambiente e o padrão options para configurações tipadas.
  • EF Core. Rastreamento de alterações e quando desativá-lo para consultas somente leitura, o problema N+1 e como o carregamento antecipado ou a projeção o evitam, migrações e o ponto realista em que uma consulta escrita manualmente supera o LINQ.
  • Testes. Como interfaces e o contêiner de DI tornam um serviço testável e o que um provedor em memória demonstra ou não sobre um banco de dados real.

Os candidatos mais fortes conectam esses pontos: um contexto scoped resolvido dentro de um serviço em segundo plano singleton não é uma pergunta de curiosidade, mas o tipo de bug de memória e correção que os próprios entrevistadores já colocaram em produção, e eles querem ouvir que você criaria um escopo explicitamente.

Como funcionam as perguntas baseadas em cenários?

Processos seletivos para cargos seniores apresentam um sintoma e observam seu método. Um exemplo representativo: informam a uma pessoa que está concorrendo a uma vaga de engenharia de backend sênior em uma empresa de logística que o consumo de memória de uma API ASP.NET Core aumenta durante vários dias, até o contêiner reiniciar. Uma boa resposta não faz suposições. Ela pergunta o que mudou, verifica objetos retidos por caches estáticos ou assinaturas de eventos de longa duração, procura serviços scoped mantidos por singletons, inspeciona o crescimento do heap de objetos grandes e recorre a um snapshot da memória antes de propor uma correção. O entrevistador avalia a ordem da investigação.

Outros cenários recorrentes: um endpoint que só fica lento sob carga, cuja resposta passa de chamadas síncronas ao banco de dados para async, esgotamento do pool de conexões e cache; uma condição de corrida em uma coleção compartilhada e o custo das coleções concorrentes e das opções de bloqueio; uma requisição que precisa chamar três serviços downstream e como você lida com timeouts, novas tentativas e falhas parciais; e uma migração que precisa adicionar uma coluna sem indisponibilidade. Em cada caso, indique a restrição, escolha um mecanismo e exponha a compensação em voz alta.

Essas perguntas ficam muito mais fáceis quando você as ensaia em voz alta com perguntas complementares, exatamente para isso foi criado o modo de entrevista simulada; os outros bancos por linguagem e função estão reunidos em perguntas de entrevista por função e tópico.

Um assistente de IA pode ajudar com perguntas de .NET?

Em rodadas de conversa, sim, dentro dos limites declarados. O aplicativo nativo para desktop macOS e Windows do SubcueAI captura o áudio do sistema e do seu microfone e exibe sugestões curtas de resposta em uma sobreposição local. Assim, quando o entrevistador pergunta por que um contexto scoped dentro de um singleton é um bug, o mecanismo aparece na sua tela enquanto você o explica com suas próprias palavras. A extensão para navegador cobre chamadas em abas do Chrome e Edge, capturando apenas o áudio da aba da reunião. Nenhum bot entra na chamada e nada é injetado na página da reunião; a configuração está na página de tutorial.

Os limites: uma avaliação supervisionada, uma tela gravada, um laptop gerenciado pela empresa ou um exercício de programação ao vivo no qual você digita C# sob observação estão fora do escopo, e o assistente é mais fraco justamente quando a entrevista pede que você escreva código. Ele é mais eficaz nas perguntas acima sobre runtime, framework e compensações. Primeiro, forneça seu currículo para que as sugestões reflitam os sistemas que você realmente desenvolveu; o criador de currículos é onde esse perfil fica armazenado.

FAQ

Por que o coletor de lixo do .NET tem gerações?

A maioria dos objetos morre jovem, portanto coletar a geração mais nova de forma frequente e barata recupera a maior parte da memória sem examinar todo o heap. Os objetos sobreviventes são promovidos e coletados com menor frequência, o que mantém as pausas curtas nos padrões de alocação habituais.

Qual é a diferença entre singleton, scoped e transient no ASP.NET Core?

Singleton é criado uma vez para a aplicação, scoped uma vez por requisição e transient sempre que é resolvido. Injetar um serviço scoped em um singleton faz com que ele seja retido por todo o ciclo de vida da aplicação, um bug comum em contextos de banco de dados.

O que await realmente faz?

Ele registra o restante do método como uma continuação e devolve o controle ao chamador, liberando a thread enquanto o trabalho aguardado é concluído. Bloquear uma tarefa com .Result ou .Wait pode causar um deadlock em contextos que precisam recuperar essa thread.

O que é o problema N+1 no EF Core?

É carregar uma lista de pais e depois executar uma consulta separada por pai para obter seus filhos. O carregamento antecipado com Include ou a projeção apenas dos campos necessários transforma isso em uma ou duas consultas.

O SubcueAI pode ajudar durante um teste supervisionado de programação .NET?

Não. Avaliações supervisionadas e gravadas estão fora do escopo, e a programação ao vivo sob observação deve ser trabalho seu. Ele foi criado para rodadas de conversa, e o modo de entrevista simulada é onde você pode praticar antes delas.

Perguntas relacionadas

← Mais sobre Perguntas de entrevista por cargo e tema