Perguntas para entrevista de C# e .NET

Está realizando ou participando de um processo seletivo que envolve C#? Então você precisa responder estas perguntas!

Recrutamento e Seleção

Há um tempo atrás eu publiquei um vídeo que deu uma ótima repercussão. Nele eu cometei algumas perguntas que faria para desenvolvedores júnior, pleno e sênior em um processo seletivo de .NET.

Sugiro que assista este vídeo antes de prosseguir com as perguntas, até para entender a motivação por trás delas!

Saiba o básico

Todas as perguntas abaixo são sobre os fundamentos do C#, sobre a base, e muitos desenvolvedores confundem isto, achando que o fundamental é muito básico e pulando esta parte.

Não pule o básico! Os fundamentos são a base para você construir algo sólido, para aprender novas tecnologias de forma mais rápida e eficiente, para aderir a algo novo com mais facilidade.

Curso completo de C#

Para você ter uma ideia, este vídeo repercutiu tanto que decidi revisitar os fundamentos do C# e criar um novo curso, passando por toda base necessária.

Para minha surpresa, o curso completo tem 14 módulos, 140 aulas e mais de 12 horas de conteúdo, e olha que eu sou bem direto ao ponto, quem já fez algum curso comigo, sabe disso.

Saiba mais sobre o curso

Carreira .NET

Claro que após os fundamentos ainda tem muita coisa a ser consolidada, como OOP, SOLID, Clean Code, Clean Architecture, e caso precise de algum amparo neste sentido, você pode recorrer a nossa carreira .NET.

Ao total são 6 cursos (Incluindo o anterior) com mais de 38 horas de duração, focado apenas em backend. Isto vai te dar uma base para criar APIs robustas e escaláveis, já prontas para nuvem.

Saiba mais sobre a carreira

Eu já sei o básico?

Bom, tem uma forma legal de descobrir isto, respondendo as perguntas abaixo! Se você for bem na maior parte delas, parabéns, você tem uma ótima base em C#!

Caso contrário, você precisa revisar os conceitos, mas fica tranquilo que não tem nada demais nisso, é plenamente normal!

Perguntas

  • O C# é uma linguagem compilada, tipada e gerenciada, o que isto significa?

  • Explique como o C# funciona

  • O que diferencia uma linguagem compilada de uma interpretada?

  • O que é o CLR?

  • O que é IL?

  • O que é um Framework?

  • O que é o .NET?

  • O que é o .NET Standard?

  • Explique o que é versão semântica

  • O que significa LTS na versão do software?

  • O que é um Runtime?

  • O que é um SDK?

  • O que é um CLI?

  • Cite 3 tipos de projetos que temos no .NET

  • O que é uma Solution?

  • Qual comando para executar uma aplicação .NET?

  • Qual comando para compilar uma aplicação .NET?

  • Qual comando para publicar uma aplicação .NET?

  • Qual nome do método principal de um Console App?

  • O que significa Debug?

  • Como executamos uma aplicação .NET em modo Debug?

  • Qual a finalidade da pasta Properties?

  • Qual a finalidade das pastas Bin e Obj?

  • Quais partes compõe um programa em C#?

  • O que são Namespaces?

  • Qual a finalidade do Using?

  • Qual a diferença entre uma variável e uma constante?

  • Cite 3 nomes reservados que temos no C#

  • Quais formas temos de comentar código em C#?

  • O que são tipos primitivos?

  • Qual tipo base no .NET?

  • Dado um var de um número real, qual tipo seria o var?

  • Dado um var de um número inteiro, qual tipo seria o var?

  • Qual a diferença entre char e string?

  • Qual valor padrão do tipo char?

  • Qual a diferença entre var e object?

  • O que são tipos nulos?

  • O que são alias? Cite 3 exemplos

  • O que são conversões implícitas?

  • O que são conversões explícitas?

  • Qual a diferença entre parse e Convert?

  • O que são operadores aritméticos e quais temos no C#?

  • O que são operadores de atribuição e quais temos no C#?

  • O que são operadores de comparação e quais temos no C#?

  • O que são operadores lógicos e quais temos no C#?

  • Cite duas estruturas condicionais que temos no C#

  • Cite duas estruturas de repetição que temos no C#

  • Qual a diferença entre while e do/while?

  • Como definimos que um método não retorna valor algum?

  • Podemos ter métodos sem parâmetros no C#?

  • Como tornamos um parâmetro opcional no C#?

  • O que são heap e stack?

  • O que são tipos de valor e tipos de referência?

  • Onde são armazenados os tipos de valor?

  • Onde são armazenados os tipos de referência?

  • O que são Structs?

  • O que são enumeradores?

  • O que é um GUID?

  • O que é interpolação de String?

  • Qual a finalidade do método CompareTo?

  • Qual a finalidade do método Contains?

  • Qual a finalidade do método StartsWith e EndsWith?

  • Qual a finalidade do método Equals?

  • Qual a finalidade do método IndexOf e LastIndexOf?

  • Qual a finalidade do método ToLower e ToUpper?

  • Qual a finalidade do método Insert?

  • Qual a finalidade do método Length?

  • Qual a finalidade do método Remove?

  • Qual a finalidade do método Replace?

  • Qual a finalidade do método Split?

  • Qual a finalidade do método Substring?

  • Qual a finalidade do método Trim?

  • O que é StringBuilder e quando devemos utilizar?

  • O que é Regex e quando devemos utilizar?

  • O que é o DateTime?

  • Como obtemos a data de hoje no C#?

  • Como convertemos uma data para String?

  • Como comparamos duas datas em C#?

  • Como podemos obter o ano, mês ou dia no C#?

  • Como podemos obter o último dia do mês no C#?

  • Podemos criar datas nulas?

  • O que são nullable types?

  • O que é Timezone?

  • Como obtermos a data sem um Timezone no C#?

  • O que é DateTime Offset?

  • O que é um TimeSpan?

  • Qual a finalidade do Math.Round, Math.Celling e Math.Floor?

  • Qual a diferença entre IEnumerable, IList e ICollection?

  • Qual a diferença entre List e IList?

  • Qual a finalidade do método Add e AddRange em uma lista?

  • Qual a finalidade do método Clear em uma lista?

  • Qual a finalidade do método Contains em uma lista?

  • Qual a finalidade do método CopyTo em uma lista?

  • Qual a finalidade do método Exists em uma lista?

  • Qual a finalidade do método Find e FindAll em uma lista?

  • Qual a finalidade do método IndexOf e LastIndexOf em uma lista?

  • Qual a finalidade do método FindIndex, FindLast e FindLastIndex em uma lista?

  • Qual a finalidade do método Insert e InsertRange em uma lista?

  • Qual a finalidade do método Remove, RemoveAll, RemoveAt e RemoveRange em uma lista?

  • Qual a finalidade do método Reverse em uma lista?

  • Qual a finalidade do método Sort em uma lista?

  • Qual a finalidade do método ToArray em uma lista?

  • Qual a finalidade do método TrueForAll em uma lista?

  • Qual a finalidade do método ConvertAll em uma lista?

  • Qual a finalidade do método ForEach em uma lista?

  • Qual a finalidade do método Where em uma lista?

  • Qual a finalidade do método First em uma lista?

  • Qual a finalidade do método OrderBy em uma lista?

  • Qual a finalidade do método Sort em uma lista?

  • Qual a finalidade do método Select em uma lista?

  • Qual a finalidade do método Convertendo Listas em uma lista?

  • O que são Classes e Objetos?

  • O que é uma instância?

  • O que são Propriedades?

  • O que são Métodos construtores?

  • O que é o Garbage Collector?

  • O que é Object Dispose?

  • Defina os modificadores public, private e protected

  • O que são objetos estáticos?

  • O que é Herança?

  • O que é Upcast e Downcast?

  • O que são Interfaces?

  • O que são Classes abstratas?

  • Qual a finalidade das Classes seladas?

  • O que é Sobrecarga de métodos?

  • O que é Sobrescrita de método?

  • Como podemos Comparar dois objetos no C#?

  • Qual a finalidade do Dispose?

  • O que é Encapsulamento?

  • O que é Polimorfismo?

  • O que são Tipos complexos?

  • O que são Delegates?

  • O que são events?

  • Qual a diferença entre Events e Delegates?

  • O que são os generics?

  • Como restringimos um tipo genérico?

  • Como tratamos erros no C#?

  • Qual a finalidade do finally?

  • Para que serve o Try/Parse?

  • O que são Tasks?

  • Para que serve async/await?

  • Qual a diferença entre Task.FromResult e o uso de await?

  • Para que usamos a interface IEquatable?

  • Para que usamos a interface IComparable?

  • Quando utilizamos a interface IDisposable?

  • O que são Extension methods?

Conclusão

Conte para nós o que achou das questões, se por acaso já se deparou com elas em entrevistas e especialmente como você as responderia. Conte para nós na nossa comunidade no Discord.

Entrar no Discord