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.
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.
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?
- O que diferencia uma linguagem compilada de uma interpretada?
- Explique como o C# funciona
- 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 compoe 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
eobject
? - 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
eConvert
? - 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
edo/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
estack
? - 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?