¿Preguntas que todo buen desarrollador de .NET debería poder responder? [cerrado]

246

Mi empresa está a punto de contratar desarrolladores de .NET . Trabajamos en una variedad de plataformas .NET: ASP.NET, Compact Framework, Windowsforms, Web Services. Me gustaría compilar una lista / catálogo de buenas preguntas, una especie de estándar mínimo para ver si los solicitantes tienen experiencia. Entonces, mi pregunta es:

¿Qué preguntas crees que debería responder un buen programador .NET ?

También lo vería como una lista de verificación para mí, para ver dónde están mis propios déficits (hay muchos ...) .

texto alternativo

* ACTUALIZACIÓN: Quiere dejar en claro que no solo estamos probando el conocimiento de .NET, y que las capacidades de resolución de problemas y las habilidades generales de programación son aún más importantes para nosotros.

splattne
fuente

Respuestas:

171

Las preguntas básicas incluyen:

Creo que generalmente ayuda pedirles a sus solicitantes que completen un ejercicio de codificación simple como:

  • Escriba su propia clase de lista vinculada sin usar las clases integradas.
  • Escriba su propia clase de tabla hash sin usar las clases integradas.
  • Escribe una clase que represente un árbol binario. Escriba un método que atraviese todos los nodos del árbol.
  • Escriba un método para realizar una búsqueda binaria en una matriz sin usar métodos integrados.
  • Dibuja un esquema de base de datos para un blog. Cada usuario solo tiene un blog, cada blog tiene muchas categorías, cada categoría tiene muchas publicaciones y cada publicación puede pertenecer a más de una categoría. Pídale a su solicitante que escriba consultas para extraer información específica.

A continuación, busque conocimientos técnicos específicos:

  • (Controladores de eventos) Cree una clase con un controlador de eventos personalizado, cree otra clase que se enganche en el controlador de eventos personalizado.
  • (XML) Cargue un documento XML y seleccione todos los nodos con propiedades x, y y z.
  • (Programación funcional) Cree una función que acepte otra función como parámetro. Una función de mapa o plegado funciona realmente bien para esto.
  • (Reflexión) Escriba una función que determine si una clase tiene un atributo particular.
  • (Regex) Escriba una expresión regular que elimine todas las etiquetas de un bloque de HTML.

Ninguna de estas preguntas es particularmente difícil de responder para un programador competente de C #, y deberían darle una buena idea de las fortalezas particulares de sus solicitantes. También es posible que desee trabajar en algunas preguntas / ejemplos de código que hacen uso de patrones de diseño específicos.

[Editar para aclarar] :

Parece que mucha gente no entiende por qué haría este tipo de preguntas. Permítanme mencionar los comentarios de algunas personas (no estoy citando directamente, sino parafraseando):


P: ¿ Cuándo fue la última vez que alguien usó volátiles o referencias débiles?

R: Cuando doy entrevistas técnicas, miro para ver si una persona comprende las características de alto y bajo nivel de .NET. Los volátiles y las referencias débiles son dos características de bajo nivel proporcionadas por .NET, incluso si estas características no se usan con frecuencia en la práctica, las respuestas a estas preguntas son extremadamente reveladoras:

  • Una buena comprensión de los volátiles demuestra que una persona comprende cómo las optimizaciones del compilador cambian la corrección del código, cómo los subprocesos mantienen copias locales del estado compartido que pueden estar fuera de sincronización en cualquier momento dado, y es mínimamente consciente de algunas de las complejidades del código multiproceso .

  • Una buena comprensión de las referencias débiles demuestra que una persona conoce los detalles íntimos del recolector de basura y cómo decide cuándo liberar memoria. Claro, podría preguntar a los candidatos "cómo funciona un recolector de basura", pero preguntar sobre referencias débiles obtiene una respuesta mucho mejor y más reflexiva.

.NET es un lenguaje bastante abstracto, pero los desarrolladores estrella casi siempre tienen una comprensión profunda del CLR y los detalles de bajo nivel del tiempo de ejecución de .NET.


P: ¿Por qué alguien necesitaría implementar su propia tabla hash o lista vinculada?

R: No estoy insinuando que la clase Diccionario sea inferior o que la gente deba lanzar su propia tabla hash. Esta es una pregunta básica que evalúa si una persona tiene una comprensión mínima de las estructuras de datos. Eso es lo que prueban estas preguntas: comprensión mínima mínima.

Aprenderá sobre estas tablas hash y listas vinculadas el primer día de Data Structures 101. Si alguien no puede escribir una tabla hash o una lista vinculada desde cero, entonces tienen una gran brecha en su conocimiento técnico.


P: ¿Por qué estas preguntas están tan orientadas a la basura?

R: Debido a que el título de este hilo es "preguntas que todo buen desarrollador de .NET debe saber". Todos los desarrolladores de .NET comienzan su carrera escribiendo aplicaciones crud, y el 90% de todas las personas de desarrollo de aplicaciones que se dedican a la vida se preocupan por las aplicaciones de línea de negocio.

Creo que las preguntas que prueban el conocimiento de una persona sobre las aplicaciones de línea de negocio son apropiadas en la mayoría de los casos, a menos que esté buscando desarrolladores en nichos muy específicos, como el desarrollo de compiladores, el desarrollo de motores de juegos, la prueba de teoremas, el procesamiento de imágenes, etc. .

Julieta
fuente
8
Creo que su lista es una buena manera de investigar las fortalezas y debilidades, pero no es un conocimiento "básico". Como señala Greg, los operadores de "cortocircuito" me hicieron tropezar a pesar de que son simples y los uso con frecuencia: me había olvidado del nombre. ¿Eso me descalificaría?
Mark Brittingham
33
Del mismo modo, nunca he declarado una variable "Volátil" y hago muy poco con XML, por lo que no pude completar su tarea de programación. Y, sin embargo, soy un autor publicado, gané un importante concurso de programación y escribí 4 productos exitosos que ganaron importantes premios.
Mark Brittingham
24
Por lo tanto, no estoy necesariamente en desacuerdo con su lista, solo estoy en desacuerdo con su caracterización de los elementos de conocimiento como "Básico". Ninguno es un concepto difícil , pero algunos son bastante específicos y no serán familiares para un buen número de solicitantes. Aún así, de nuevo, acepte mis disculpas.
Mark Brittingham
39
La mitad de los elementos en esta lista son preguntas de trivia. Esto no ayudará a encontrar buenas personas, pero puede molestar a algunas de ellas lo suficiente como para abandonar su entrevista.
Jason Kester
15
(Regex) Write a regular expression which removes all tags from a block of HTML.-
HUELO
135

He encontrado estas listas en de Scott Hanselman 's Blog :

Esto es lo que creo que son las preguntas más importantes de estas publicaciones divididas en categorías. Los edité y los reorganicé. Afortunadamente para la mayoría de estas preguntas, ya hay una buena respuesta en Stack Overflow. Simplemente siga los enlaces (los actualizaré todos lo antes posible) .

Preguntas independientes de la plataforma .NET

ASP.NET

splattne
fuente
8
Sé de desarrolladores que saben todo esto y todavía no puedo ver más allá del libro. La mentalidad abierta es muy importante, además, no intentes obtener demasiadas respuestas detalladas, solo asegúrate de que entiendan el concepto.
Saif Khan
Envejezco, Saif. Pero, por otro lado, si no conoce los detalles, no podrá aplicar correctamente los "conceptos".
splattne
2
Algunas preguntas son realmente estúpidas, como cuál es la diferencia entre Debug y Release build. Sí, Visual Studio ha predefinido algunas configuraciones de compilación, pero esta no es una pregunta independiente de la plataforma. Alguien que compila por línea de comando o usando Mono, puede que no tenga idea de lo que está hablando.
lubos hasko
3
¿Es capaz de describir conceptos que usualmente toman 2 páginas o incluso un capítulo de un libro, de manera articulada en una situación de entrevista? No puedo sin ensayarlos de antemano
Chris S
1
Intenta no pedirle a la gente que defina términos. Terminarás con especializaciones en CS que tuvieron que memorizarlas para las pruebas, pero te perdiste a las personas que realmente saben cómo programar. Recuerdo que una vez me preguntaron qué era la "defensa". No tenía la primera pista, aunque lo hice 30 veces al día en ese entonces.
Jason Kester
94

Es posible que esto no sea lo que desea escuchar, pero recomendaría no centrarse en tecnologías limitadas, sino en habilidades generales de programación y resolución de problemas. Los desarrolladores sólidos pueden aprender lo que quieras que hagan rápidamente.

Yo, por ejemplo, no soy un tipo de Compact Framework, por lo que podría fallar su entrevista si fue en esa dirección. Pero si tuviera que usarlo, podría investigar un poco y comenzar de inmediato.

El libro de Joel, Smart and Gets Things Done , tiene excelentes consejos para contratar desarrolladores y hay grandes secciones jugosas sobre el tipo de preguntas que hacer. Lo recomiendo altamente.

Brian MacKay
fuente
¡Quizás parte del proceso de contratación debería ser un problema en Cardspace o algo que nunca hayan visto!
Jennifer
Tal vez, pero está el problema de la investigación, así que creo que puede ser injusto. Estoy más interesado en ver cómo piensan los problemas y tal vez verlos codificar algo abstracto para poder averiguar si hablan código de forma nativa o no.
Brian MacKay
Si pudiera elegir acerca de dos personas que tienen habilidades generales de programación y resolución de problemas, por razones prácticas TENGO que elegir la que tenga un mejor conocimiento y experiencia .NET.
splattne
El conocimiento de .NET ciertamente, pero cuando se trata de tecnologías más limitadas, creo que puedes ir con el programador con las habilidades para resolver problemas.
Jennifer
55
Sí, todos tenemos que conocer toneladas de "tecnologías limitadas". Pero por cada uno que conocemos, hay un grupo que no conocemos (generalmente porque no los hemos necesitado). Estoy diciendo que no quieres perderte un gran desarrollador por no conocer SharePoint, porque muy pronto podría ser tu mejor tipo de SharePoint.
Brian MacKay
66

Creo que si me estaban entrevistando a alguien que tenía experiencia LINQ, yo posiblemente simplemente pedirles que expliquen LINQ. Si pueden explicar la ejecución diferida, la transmisión, las interfaces IEnumerable / IEnumerator, foreach, bloques iteradores, árboles de expresión (para puntos de bonificación, de todos modos), entonces probablemente puedan hacer frente al resto. (Es cierto que podrían ser desarrolladores "ok" y no "obtener" LINQ todavía; realmente estoy pensando en el caso en el que afirman que conocen suficiente LINQ para que sea una pregunta justa).

En el pasado, he hecho varias de las preguntas ya enumeradas, y algunas otras:

  • Diferencia entre tipos de referencia y valor
  • Pase por referencia vs pase por valor
  • IDisposable y finalizadores
  • Cadenas, inmutabilidad, codificaciones de caracteres
  • Punto flotante
  • Delegados
  • Genéricos
  • Tipos anulables
Jon Skeet
fuente
1
Sí, quería ver este tipo de respuesta. Buen candidato para ser aceptado. Alguien mejor?
splattne
55
@splattne: no seas tonto, esta es una respuesta de Jon Skeet, así que acéptala. Es inevitable.
Steven A. Lowe
3
Estaba a punto de decir ... wt ... ¡no cuestiones a Skeet!
Saif Khan
1
Esta es una respuesta mucho mejor que la aceptada. Le ayuda a comprender si alguien tiene un conocimiento profundo en un área de supuesta experiencia al tiempo que prueba el conocimiento de las características del lenguaje que abarcan una gama bastante amplia.
Mark Brittingham
1
Esta respuesta le quita el pantalón a 'diseñar su propia lista vinculada, "analizar HTML con regexp" o "¿Cuánto sabe sobre el ensamblado, GAC, etc.?" Porque aborda las herramientas y conceptos que usted Realmente uso durante el desarrollo. El conocimiento íntimo de LINQ también es esencial. He visto muchas instancias en este sitio donde las personas están tratando de lanzar su propia versión de Union Distinct y Concat para colecciones porque no entienden LINQ.
Evan Plaice
42

Estoy con los muchachos que buscan habilidades para resolver problemas en lugar del tipo de cosas que puedes buscar y memorizar de '101 preguntas y respuestas de la entrevista .NET superior ".

Solo para citarme a mí mismo como ejemplo, tiendo a 'conocer' las cosas que necesito usar día a día. Tiendo a olvidar (y luego tengo que volver a buscar) cosas que uso raramente.

Si quisieras hacerme tropezar en una entrevista, sería muy fácil.

Sin embargo, he diseñado y codificado gran parte de la infraestructura para un sistema que utiliza capas de datos y objetos comerciales idénticos para sus encarnaciones WinForms y ASP.NET, y nuestra base de código es lo suficientemente robusta y reutilizable para que podamos admitir y desarrollar más de 20 versiones configuradas de manera diferente del sitio web, así como un número creciente (actualmente 5) de la aplicación WinForms ...

... con un equipo de desarrollo de dos.

Solía ​​trabajar en un equipo como líder tecnológico, y mi trabajo implicaba mucho reclutamiento y entrevistas. Mi error más espectacular fue contratar a un tipo que sabía más sobre la tecnología que estábamos usando que todos los demás juntos, incluyéndome a mí, y me consideré un experto. Lo sabía todo ...

... excepto cómo escribir código que cumpla con los requisitos o que nadie más pueda entenderlo. Cuando finalmente convencí al primer ministro para que no renovara su contrato, cada cosa que escribió tuvo que ser reescrita.

Estructura tus entrevistas sabiamente ...

ChrisA
fuente
1
Esa es una observación realmente interesante. Tuvimos la situación opuesta: una pequeña camarilla de desarrolladores que sabían menos que otros pero que convencieron a la gerencia de que sabían más. Propusieron una clase de abstracción de datos que, según yo, era imposible (me criticaron por no ser un "jugador de equipo").
Mark Brittingham
-continuó - después de 4 meses de esfuerzo "skunk works" le presentaron al equipo ... sus documentos de transferencia a otro departamento - y sin código. El resto del equipo tuvo que recoger las piezas.
Mark Brittingham
1
En pocas palabras, sin embargo: me gusta mucho su observación de que el conocimiento específico de las construcciones de codificación no garantiza la capacidad de crear software de trabajo que satisfaga las necesidades del cliente.
Mark Brittingham
34

Quien es Jon Skeet?

Steven A. Lowe
fuente
11
O mejor: ¿Eres Jon Skeet? ;-)
splattne
Esta es una buena pregunta para las posiciones de C #. Teniendo en cuenta que Jon Skeet ahora posee stackoverflow / búsquedas de google para C # relacionadas. Si no sabes quién es ahora, eres Jon Skeet o no estás programando en C #.
lubos hasko
2
Sin ofender a Jon Skeet - pero creo que Rick Strahl tiende a aparecer con las respuestas más frecuentes para los tipos de problemas que ejecutar en ..
Andrew Theken
1
@ [Andrew Theken]: Jugaré los porcentajes en ese ;-) google para "Rick Strahl" produce 38,500 visitas, "jon skeet" produce 144,000. Además, Rick Strahl no publica en SO AFAIK.
Steven A. Lowe
1
ambos muchachos son geniales en lo que hacen ... nuestra ganancia.
GR7
33

Las buenas preguntas que me han hecho son

  • ¿Qué crees que es bueno sobre .NET?
  • ¿Qué crees que es malo sobre .NET?

Sería interesante ver qué se le ocurriría a un candidato y seguramente aprenderá un poco sobre cómo utiliza el marco.

qui
fuente
18

Siempre buscaría las habilidades blandas, sin juego de palabras. Por lo tanto, un buen diseño de OO, un desarrollo impulsado por pruebas, un buen fondo lingual multi (programación) y una inteligencia general general (¡y hacer las cosas, supongo!).

Un desarrollador inteligente no debería tener problemas para aprender las tecnologías individuales que necesita saber, incluso si nunca las ha visto antes, por lo que no me preocuparía demasiado sobre preguntas específicas sobre WCF / marco compacto y similares.

Me gustaría que escribieran algún código, la mejor manera de averiguar lo que saben y cómo funcionan. Cualquiera puede memorizar la respuesta a '¿Cuál es la diferencia entre un tipo de referencia y un tipo de valor?'

Jennifer
fuente
2
Correcto. Hacer preguntas de memoria es pedir problemas. La compañía para la que trabajo hace la vieja pregunta del técnico, pero sobre todo es: tengo estos problemas, aquí hay una pizarra, me enseñó cómo los resolvería. Miedo pero efectivo.
Chris Brooks
44
... pero si no los resuelve de la manera que espera el entrevistador, fracasará.
gbjbaanb
1
@gbjbaanb a veces. Pero si ese es el caso, es posible que no quiera trabajar allí de todos modos. Recuerde, también está entrevistando a la empresa. ¡He conocido algunas compañías que fallaron en la entrevista!
Tony Ennis
13

¿Honestamente?

"¿Qué es .NET?"

Si pueden darle una respuesta clara sobre qué es .NET y qué no es, cómo se usa, de qué elementos está compuesto, etc. Si pueden convencerlo de que saben lo que es, entonces es probable que Lo sé bastante bien.

El hecho es que muchas personas realmente no saben qué es .NET. Incluso aquellos que escriben programas para ello.

Erik Funkenbusch
fuente
11

Ninguno, de verdad. Probablemente hay preguntas muy simples que las personas más inteligentes del mundo no conocen las respuestas. No porque sean difíciles, sino simplemente porque no lo han encontrado. Debería mirar todo el paquete y la habilidad del desarrollador, no si pueden responder una pregunta arbitraria.

Si la pregunta es fácil de responder en una o dos oraciones cortas, es fácil decirle a alguien que no sabe. Debe buscar su comprensión de los conceptos y la capacidad de razonamiento, no su capacidad para responder preguntas "todos los desarrolladores de .NET deberían poder responder".

Gene Roberts
fuente
10

Conozca la diferencia entre los tipos de referencia y valor.

Sepa que los eventos se almacenan como referencias físicas (es decir, recuerde anular el registro de eventos o la aplicación perderá memoria).

Las cuerdas son inmutables.

Brian Rasmussen
fuente
4

Sugiero preguntar sobre los blogs que leen regularmente y los proyectos de programación personal en los que han trabajado, ya que esto mostrará una disposición a aprender y una pasión por la programación.

Nicholas
fuente
3

Aquí hay algunos que he usado para filtrar a los programadores que solicitan trabajos como programadores de C #:

¿Cuál es la diferencia entre un tipo de referencia y un tipo de valor?

Explique la interfaz IDisposable, qué construcción de lenguaje C # lo requiere y cómo lo implementaría.

¿Qué excepción lanzaría si se pasa un valor nulo como argumento a un método que tiene un contrato que no permite valores nulos para ese parámetro?

Mike Scott
fuente
Mi código generalmente arrojaría una NullReferenceException.
Joshua
55
@Joshua, ArgumentNullException falló.
Nicolas Dorier
3

"¿Cuál de los ASP: los controles que usarías en la producción y por qué?"

Eso le dirá rápidamente si su sujeto realmente ha construido y mantenido un proyecto grande durante el tiempo suficiente para que DataGrids y LinkButtons lo hayan quemado, o si todavía está en la fase de Arrastrar / Soltar "enseñarse en 21 días".

(la respuesta es asp: Repeater, asp: PlaceHolder, asp: Literal y asp: Content)

Jason Kester
fuente
2

¿Qué es un hilo?

¿Qué es el GC?

StingyJack
fuente
2

Esta es una pregunta un poco variable, y no realmente una que debería poder contestar completamente ahora, sino una que debería poder responder cuando sea apropiado:

"¿Qué ofrece .NET Framework para realizar la tarea X?"

O más específicamente:

"¿El marco .NET incluye un objeto que hace X?"

Por ejemplo, recientemente pasé unas horas desarrollando un objeto que está optimizado para almacenar una matriz de booleanos y operar en él, como hacer un NOT, OR, XOR y AND en conjunto, establecer todos los valores, etc. Hasta que terminé de escribir todas mis pruebas unitarias y ajustarlas para obtener el mejor rendimiento posible, me di cuenta de que mi objeto "BoolArray" ya existía en el marco .NET con el nombre "BitArray".

Esto puede ser difícil de responder, ya que muchas veces la mejor respuesta sobre qué objeto / ayuda utilizar es la que no conoce o no comprende completamente. Qué maravilloso sería el mundo .NET si todo el mundo supiera incluso sobre el simple StringBuilder, una herramienta básica que puede aumentar significativamente el rendimiento.

Spodi
fuente
2

Sugeriré algunas preguntas centradas en la comprensión de los conceptos de programación usando dotnet como

¿Cuál es la diferencia entre un entorno gestionado y no gestionado? Pros y contras de GC Pros y contras de JIT Si necesitamos desarrollar la aplicación X, ¿podemos usar dotnet? ¿Por qué? (Esto identificará cómo ve el dotnet)

Sugiero también escribir métodos pequeños y pedirle que los reescriba con un mejor rendimiento utilizando mejores clases de dotnet o formas estándar. También escriba métodos incorrectos (en términos de cualquiera) lógicos o lo que sea y pídale que los corrija.

Ahmed dijo
fuente
2

Soy fanático de lo siguiente, además de algunas de las preguntas ya mencionadas:

  • ¿Qué es un delegado?
  • ¿Cuál es el dominio de la aplicación?
  • ¿Cuándo usarías la palabra clave de bloqueo?
  • ¿Son seguras las hebras de colección genéricas de la biblioteca estándar?
  • ¿Qué es un método de extensión?
  • ¿Cuál es la diferencia entre XmlDocument y XmlReader?
  • ¿Cómo se lee la configuración desde el archivo de configuración de la aplicación?
segy
fuente
2

Esto es interesante, y con el riesgo de que este voto sea rechazado por poner en mi opinión, ya que nazco sordo, que me hagan una pregunta como esa requeriría más esfuerzo para comunicar personalmente mis pensamientos.

Para ser franco, realmente no leería demasiado las preguntas típicas, ya que el paradigma subyacente es ' ¿Qué tan bien puedes vocalizar tus pensamientos y comprensión? ', eso es realmente lo que el entrevistador está buscando. La comunicación es siempre mi mayor debilidad debido a mi forma de ser y puede frustrarse con bastante facilidad.

Sería ideal tener el conocimiento y ser del tipo sabelotodo, pero desafortunadamente, hay algunas cosas que no sé, pero no tener miedo si realmente no sabes la respuesta y la admites en lugar de farolear a traves de. Si un entrevistador me hiciera una pregunta como una de las anteriores, de la que no estaría seguro o no entendería / interpretaría mal la pregunta, lo diría por adelantado, lo que personalmente puede ser vergonzoso, pero he aprendido a manejar eso.

Te sorprendería saber cuántos realmente se enredarían y fanfarronearían en lo que al final del día quedarían atrapados con sus 'pantalones bajados' metafóricamente hablando.

Mis 2 centavos, Saludos cordiales, Tom.

t0mm13b
fuente
2

Un poco mas:

  1. Clases parciales. ¿Y sus limitaciones?
  2. Clases selladas
  3. ¿Cómo se puede hacer la localización en .NET?
  4. Conectividad de base de datos
  5. Varios archivos de configuración
  6. Delegados vs eventos
  7. Acceso dll no administrado
  8. Reflexiones
  9. Clases genéricas
  10. Más caliente en .NET 3.5
  11. Marcos de prueba de unidad que ha utilizado.
RameshVel
fuente
2

No haría esas preguntas de "saber algo del libro de texto", sino más bien hacer algunas preguntas como:

  • ¿Qué hace el bucle foreach en C # simple? (Esperando que escriba un bucle iterador).
  • ¿Qué es un singleton?
  • Deje que analice un String to Datetime (esperando que use TryParse en lugar de try / catch)
  • Implemente los patrones de singleton, estrategia y comando
  • Deje que él / ella refactorice una pieza de código para probar. Esperando que él / ella abstraiga los servicios externos fuera de la Unidad bajo Prueba e implemente su propia Prueba doble del servicio (sin proporcionar un marco de simulación)

Estos no son 100% seguros, dependiendo de la persona que les pregunte:

  • deje que él / ella guarde un método de entrada nula (esperando que él / ella use múltiples retornos para reducir la anidación)
  • cómo funciona un inicializador de objetos (esperando que él / ella escriba la asignación segura para subprocesos)

También le preguntaría cómo aprendió sus cosas y qué está leyendo (qué blogs, libros).

Tigraine
fuente
1

Un poco mas:

¿Cuáles son las limitaciones de la recolección de basura?

Conozca los finalizadores e IDisposable.

Tenga en cuenta el grupo de subprocesos y cuándo usarlo.

Si está haciendo aplicaciones GUI, tenga en cuenta que la GUI de Windows es de un solo subproceso.

Use foreach (veo mucha gente haciendo MoveNext, etc.)

Brian Rasmussen
fuente
1
No lo sabía, así que busqué las limitaciones de la recolección de basura .
MSpeed
1

Creo que no deberían ser solo preguntas, conozco a algunos tipos que son brillantes cuando los entrevistas, pero una vez que llegan a la realidad son demasiado perfeccionistas, diría que no pueden codificar la tarea de manera miserable.

Una vez me entrevistaron y me gustó el enfoque en el que el primer empleador me dio un cuestionario técnico para completar en 30 minutos. Si uno tiene éxito, lo llamarán para una entrevista de 1 hora que abarque preguntas sobre el juicio de la personalidad y la búsqueda de personajes, además de jergas técnicas.

Luego me pidieron que desarrolle una aplicación web de tres páginas en 6 horas. Las restricciones impuestas en la aplicación cubrían de manera inteligente aspectos importantes del desarrollo de la aplicación, como un pequeño ERD, Diseño de capa, Consistencia de la interfaz de usuario, controlan problemas específicos como usar botones de radio en GridView y Fetching y mostrar tipos de imágenes desde DB en una página web, desarrollo de un algoritmo, seguridad, cifrado, hash, representación y manipulación de datos.

Luego, al día siguiente, siguieron una discusión de 30 minutos sobre la aplicación desarrollada que cubre áreas de cuellos de botella de rendimiento y mejoras en el diseño y los algoritmos utilizados. Y una prueba opcional de 1 hora para mejorar su algoritmo desarrollado en el paso anterior con una condición específica.

Por lo tanto, tomó bastante tiempo, pero de esta manera puede asegurarse de que la persona que está contratando conozca, al menos, los conceptos que son esenciales para un buen desarrollador.

S M Kamran
fuente
0

Preferiría darle un problema y pedirle que lo resuelva utilizando las características de .net que conoces y por qué crees que es la mejor solución.

Esto agrietará casi todas las capacidades de un candidato en términos de habilidades técnicas, analíticas y de resolución de problemas junto con su enfoque para resolver un problema.

JPReddy
fuente