Preguntas de entrevista de trabajo para .NET

La idea de esta entrada es promover las típicas preguntas que hacen al momento de postular a una empresa para el puesto de .NET Developer.

autor Rodríguez Patiño, Eduardo
publicado
visitas 10,845

La idea de esta entrada no es usarla como plagio para tu próxima entrevista, sino reforzar ciertas debilidades que podemos tener.

Hay empresas que como parte de su filtro hacen preguntas técnicas relacionadas al puesto y estas suelen ser medias rebuscadas o que tal vez la sabíamos pero hace tiempo que no repasabamos esos conceptos.

Por ejemplo, me pasó hace poco que postulé a una empresa y me mandé a la entrevista sin haber hecho un repaso, peor aún que ahora ando viendo más Node JS.

Preguntas

Estas preguntas van a estar directamente relacionadas a .NET, luego haremos otra entrada de preguntas generales.

1. ¿Qué es .NET?

Es una plataforma abierta de desarrollo creada por Microsoft para el desarrollo de múltiples aplicaciones.

Fuente: https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet

2. ¿Ventajas de usar .NET?

Tienes soporte al desarrollo de distintas aplicaciones como desktop, web, rest, mobile, etc, sobre una misma plataforma de desarrollo.

3. ¿Cómo harías para reutilizar código entre .NET Framework con .NET Core?

A través de .NET Standard, ya que este permite crear librerías que puedan ser usados entre las distintas aplicaciones de .NET.

Fuente: https://dotnet.microsoft.com/platform/dotnet-standard

4. ¿Qué es LinQ?

LinQ nos permite manipular distintas fuente de datos a través de un lenguaje de query que propone este.

Fuente: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries

5. Overloading vs Overriding

  • Overloading: crear varios métodos con el mismo nombre pero diferentes parámetros.
  • Overriding: sobrescribir el comportamiento de un método padre.

Fuente: https://dotnet.microsoft.com/platform/dotnet-standard

6. ¿Para que se usa la palabra reservada async en C#?

Para hacer uso de la programación asíncrona dentro de C# y que el método que encapsula pueda hacer uso de await.

7. ¿Qué es un delegado?

Un delegado es similar a una interface pero a nivel de métodos en el cual podemos definir los parámetros de entrada y salida de este. La implementación ya lo resolverá quien haga uso del delegado.

8. ¿readonly vs const?

Esta me la hicieron una vez y fallé.

  • const: indica que una propiedad o variable una vez definida no podrá ser modificada (se inicializa en el tiempo de compilación).
  • readonly: similar al anterior pero la diferencia que esta se puede definir en tiempo de compilación o ejecución. Por ejemplo, podemos definir el valor de un readonly a través del constructor.

Fuente: https://docs.microsoft.com/es-es/dotnet/csharp/tour-of-csharp/delegates

9. Value type vs Reference Type

Esta es bien rebuscadita.

  • value: ciertas variables almacenan su valor en su propio espacio de la memoria y si les preguntan mencione algunas: bool, byte, char, decimal, double, enum, float, int, long, sbyte, short, struct,uint, ulong, ushort.
  • reference: algunas variables al sobrescribir su valor generan otro punto de almacenamiento en la memoria. Ejemplo, las cadenas.

Fuente: https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type

10. ¿Que es una tupla (tuple)?

Una tupla permite agrupar multiples tipo de datos en una sola estructura simple.

(double, int) t1 = (4.5, 3);

Fuente: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/value-tuples

11. ¿Cuál es la utilidad de la palabra reservada Using?

Automatiza la liberación de los objetos que implementen la interfaz IDisposable en vez de hacerlo a mano.

using (var reader = new StringReader(manyLines))
{
    string? item;
    do {
        item = reader.ReadLine();
        Console.WriteLine(item);
    } while(item != null);
}

Fuente: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-statement

12. ¿Qué es common language runtime?

Todos los lenguajes soportados en .NET como C# o VB se convierten al final en CLR para que pueda ser interpretado por la máquina.

13. ¿Diferencia entre una clase abstracta y una interface?

  • Una clase abstracta puede tener métodos abstractos (sin lógica) o no abstráctos (lógica).
  • Una clase abstracta se hereda, una interface se implementa.
  • Una interface solo puede hacer uso de métodos públicos.
  • Una interface solo puede extender o heredar otras interfaces, mientras que una clase abstracta puede heredar cualquier otra clase o implementar interfaces.

Fuente: https://es.wikipedia.org/wiki/Common_Language_Runtime

14. ¿Qué es inyección de dependencia?

Es un patrón que permite desacoplar los diversos componentes (clases) de nuestro proyecto a través de un nivel de abstracción. De esta manera, cambiar una dependencia de nuestro proyecto no debe afectar el código de nuestro proyecto.

Fuente: https://anexsoft.com/ejemplo-de-inyeccion-de-dependencias-con-c

Por ejemplo, en vez de hacer una instancia dentro de nuestra clase (fuerte acoplamiento), mejor lo pasamos como parámetro a nuestro constructor

¿Conoces más?

Por ahora se me vinó a la cabeza estas preguntas, si tienen más escriban un comentario y la agregamos al post. Eso si, que las preguntas sean directamente relacionada a .NET ya crearemos otro post para preguntas generales.

- Nuestros cursos -