La entrevista técnica de 10 minutos [cerrada]

37

Debo hacer una evaluación rápida de docenas de estudiantes nuevos muy rápidamente. Tengo 30 minutos de reunión con cada uno de ellos (en dos o tres días). Quiero usar la mayor parte del tiempo para discutir aspectos no técnicos. Así que planeo usar 10 minutos para preguntas técnicas. Las mismas preguntas para todos ellos.

Ya están todos contratados (son estudiantes), lo que necesito saber es el nivel promedio para preparar una capacitación.

Idealmente, la dificultad must be progressivepara establecer un nivel para cada uno. Nivel promedio, y haré un promedio en cada pregunta también.

Si solo tuviera 10 minutos y 10 preguntas para hacerle a un candidato, ¿cuáles serían sus 10 principales?

usuario2567
fuente
66
¿Más contexto en el trabajo? ¿Es esta una posición de administrador del sistema o una posición de programador y si está programando un nivel bajo o alto? ¿Algún idioma o tecnología específicos en su tienda? Todo esto dictaría mi lista de preguntas.
Chris
44
¿Qué tipo de entrenamiento? ¿Programación? TI general?
Adam Lear
3
Revertiría eso y pasaría 10 minutos en cosas personales y 20 minutos en cosas técnicas.
Kyralessa
1
Lo sé, eso es lo que la mayoría de la gente haría. Pero creo en diferentes enfoques.
3
10 minutos para el candidato es muy poco
Zzz

Respuestas:

55

Tres preguntas, elaborando sobre el final de la respuesta de Eric Lippert aquí :

Pregunta 1:

En una escala del 1 al 10, ¿en dónde te calificas (nombra la habilidad aquí)? Responden [n], un número entre 1 y 10.

Pregunta 2:

¿Qué podrías aprender de alguien en el nivel [n + 1]?

Pregunta 3:

¿Qué podría aprender alguien de nivel [n-1] de usted?

El factor más importante en su decisión es determinar donde un estudiante (realista) coloca a sí mismos , y esas tres preguntas le ayudará a determinar que rápidamente. También ayuda a identificar a las personas que podrían verse comprometidas por el efecto Dunning-Kruger (en cualquier extremo), pero ese es otro tema.

Si alguien puede encontrar la referencia a este método en SO y editar esta publicación para incluir un enlace, realmente lo agradecería.

De todos modos, eso debería caer bastante menos de diez minutos.

Tim Post
fuente
55
¡Guauu! Métrica bastante inusual. Nunca he pensado en mí de esa manera. ¡Gracias!
Andrew Андрей Листочкин
Obviamente el candidato contesta 10 para evitar la segunda pregunta.
derecha el
44
@WTP El diez es una mentira.
Tim Post
1
Esto es excelente Si un empleador me preguntara esto, podría explicar más sobre mí en unos pocos minutos de lo que normalmente tengo la oportunidad en una entrevista de 1 hora.
fearofawhackplanet
28
  1. ¿Qué es una clase?
  2. ¿Qué es un método estático?
  3. ¿Qué es la herencia?
  4. ¿Qué es el polimorfismo?
  5. ¿Qué es una clave primaria?
  6. ¿Qué es una clave foránea?
  7. ¿Cuál es la diferencia entre HTTP GET y HTTP POST?
  8. ¿Qué es un servicio web?
  9. Nombra algunas estructuras de datos.
  10. ¿Cuál es el propósito de un mapeador de objetos / relacional?

Siéntase libre de sugerir reemplazos, esta lista tiene mucho margen de mejora.

Eric Wilson
fuente
1
Los métodos estáticos están en muchos lenguajes además de C ++, no es que sea relevante aquí. De hecho, creo que es un concepto difícil de entender para muchos estudiantes, y preguntarles si lo comprenden, o pedir una definición, es una mala manera de averiguar si lo hacen o no.
Kate Gregory el
3
Tenga en cuenta que la pregunta especificó diez preguntas en diez minutos. Si hubieran sido diez preguntas en treinta minutos, me gustaría elevar el nivel de dificultad y hacer preguntas abiertas más significativas.
Eric Wilson el
3
Realmente me gustan las preguntas 1-8 en su lista, aunque podría reemplazar las preguntas 9 o 10 con "¿Por qué son importantes las interfaces" y / o "¿Por qué es importante una clase abstracta?" (en ese orden)
Nicole
77
¿Qué pasa con todas las preguntas OO?
Recursión
3
Eh, estas son todas las preguntas de características del lenguaje. No estoy tan convencido de que sean importantes, en contra de cosas más vinculadas a la teoría.
Andres Jaan Tack
20
  1. ¡Explica los punteros!
  2. ¿Qué son los cierres?
  3. ¿Qué idiomas utiliza en su tiempo libre y por qué?
  4. ¡Habla un poco sobre las transacciones!
  5. ¿Cuál es la diferencia entre un intérprete y un JIT?
  6. Explicar los conceptos básicos de un compilador.
  7. Qué sucede en el nivel de memoria cuando haces recursividad (y qué es diferente cuando tienes TCO)
  8. ¿Cuáles son los conceptos importantes de la programación OO (y por qué son importantes)?
  9. ¿Qué cosas nuevas estás buscando en casa y por qué es interesante?
  10. Explica la diferencia entre un proceso y un hilo.
nickik
fuente
20
No creo que la mayoría de estas sean buenas preguntas para personas completamente nuevas en .net (o programación), e incluso si saben las respuestas, eso es 1 minuto por pregunta ...
FinnNk
99
Estoy de acuerdo en que estas preguntas se parecen más a preguntas de "cuán geek eres" en lugar de preguntas de "qué sabes / has aprendido" para los estudiantes.
hyprsleepy
55
Fracasaría terriblemente en este examen, en gran parte porque nunca estudié CS o usé C. Entonces esto podría ayudar a determinar quién ha prestado atención en clase y quién programa para divertirse, pero no sé si será útil en El contexto del OP.
Eric Wilson el
3
La mayoría de la gente entendería mal la mayoría de estos.
Recursión
44
Buenas preguntas, pero algunas no pueden responderse en un minuto.
zvrba
16

Mi experiencia con los estudiantes comenzaría prácticamente desde cero: descubrí lo que la gente aprende en la Universidad y lo que es útil son dos conjuntos bastante separados.

Pero como tienes la oportunidad de hablar con ellos, sería una tontería no tomarlo.

Mi suposición es que hay poco en común en sus antecedentes, así que estoy evitando preguntas específicas del idioma. La única excepción que he hecho es suponer que han hecho algo en la web, pero esta pregunta podría sustituirse por algo equivalente si son especialistas integrados o lo que sea.

Usted ha pedido que sean progresivos, algo que he intentado hacer, pero si mi suposición acerca de que no hay nada en común es correcta, las preguntas correctas / incorrectas son relativamente complicadas y gran parte de su competencia vendrá de cuán buenas sean sus respuestas a preguntas más generales. las preguntas son

De todas formas...

1) ¿A qué idiomas y tecnologías ha estado expuesto? ¿Cuántos de estos (y cuáles) ha pasado más de 50 horas programando realmente (eso no incluye conferencias, tiempo de laboratorio, etc., sino proyectos y tareas donde codificaba en solitario)?

2) Describe el programa más complejo que hayas escrito. ¿Qué lo hizo complejo?

3) ¿Qué te enseñaron en la universidad (en relación con la programación) que realmente no crees que entiendes correctamente? Si cree que entendió todo (verifique sus calificaciones en este momento), hable sobre una aplicación o un elemento de una aplicación que haya visto que no sabría cómo codificar y cómo podría comenzar a pensar en ello.

4) ¿Cuáles son los principios básicos de la programación orientada a objetos?

5) Cuéntame todo lo que puedas sobre bases de datos relacionales en 1 minuto

6) Para una aplicación web, describa un método para mantener la información sobre el usuario entre páginas. Qué ventajas y desventajas existen para el mecanismo que ha descrito.

7) Elija una pieza de funcionalidad comúnmente utilizada dentro de la informática y explique brevemente cómo funciona a nivel programático (por ejemplo, cifrado, compresión). También explique cómo tenía que usar esa funcionalidad que la implementaría (aquí estaría buscando el hecho de que, aunque puede saber cómo funciona algo, probablemente sea mejor obtener una biblioteca para ello).

EDITAR: reestructurado y agregado un par de preguntas adicionales para hacerlo más progresivo como se preguntó originalmente.

Jon Hopkins
fuente
66
Me gusta esta lista, agregaría otra pregunta: ¿Para qué te enseñaron en la universidad que no puedes ver ningún uso práctico en el mundo real? Eso podría dar algunas indicaciones útiles de cómo piensan.
glenatron el
2
Si son buenos, entonces los 10 minutos han terminado después de la pregunta 2 :-)
Sean Patrick Floyd
Cuando preguntas sobre los "principios" de la POO, ¿quieres decir que la POO es una religión?
compman
@compman - Claramente no. el principio puede aplicarse a una religión, pero no es exclusivo de ese contexto y también puede aplicarse a cualquier organización, movimiento o profesión.
Jon Hopkins
8

Si se trata de estudiantes y está buscando poder evaluar dónde están en sus estudios, entonces realmente no debería haber ninguna pregunta capciosa o preguntas que los hagan pensar mucho. Mi consejo sería centrarse solo en lo básico: no tiene mucho sentido pedirles que expliquen cómo funciona la reflexión si todavía no están completamente al día con los objetos y la herencia.

Aquí hay algunas preguntas de ejemplo que podrían usarse y que tal vez podría comenzar con algo de la categoría de conocimiento central y luego moverse de acuerdo con la forma en que responden las preguntas, algo así como cómo funciona la prueba adaptativa .

Fundamentos

  1. ¿Cuáles son algunos comandos básicos de control de flujo del programa?
  2. ¿Cuáles son algunas operaciones lógicas básicas?
  3. ¿Cuál es la diferencia entre while y for loops?

Núcleo

  1. Explique brevemente la programación orientada a objetos.
  2. Explique brevemente el concepto de herencia.
  3. Explique brevemente cómo funcionan las bases de datos.
  4. ¿Para qué se enumusa la palabra clave y cuándo la usaría?

Avanzado

  1. ¿Qué puede decirme sobre los genéricos de C # o las plantillas de C ++?
  2. ¿Qué me puede decir sobre la sobrecarga del operador?
  3. ¿Cuál es la diferencia entre una clase y una estructura?
  4. ¿Qué me puede decir sobre la reflexión en .NET?
rjzii
fuente
6

Sin una respuesta a mi comentario anterior, estas son cosas que me vienen a la mente en general, pero no estoy seguro de considerarlas técnicas.

  • ¿Qué tipo de control de versiones has usado?
  • ¿Está familiarizado con las metodologías de desarrollo de software tales como ágil, cascada, tdd?
  • ¿Cuál es el propósito de la documentación en el software?
  • ¿Diferencia entre lenguajes tipados estática y dinámicamente?
Chris
fuente
55
"¿Por qué es útil el estilo de codificación de espagueti?" - the ultimate one
mlvljr
Jaja, ¿es esto para tratar de engañarlos?
billy.bob
@ m.edmondson Ahora, por favor, da un ejemplo de un caso cuando es inevitable romper la abstracción;)
mlvljr
Hmm, no creo que haya ningún caso en que eso sea inevitable ;-)
billy.bob 05 de
4

Me doy cuenta de que estás tratando de desarrollar la capacitación en base a lo que ellos no saben, y que planeas tener varios "cubos" de capacitación para diferentes grupos de estudiantes. Dado que solo tiene diez minutos asignados, ¿por qué no hacer una lista de las cosas que está pensando incluir en la capacitación y hacer esas preguntas específicas? Entonces planeas enseñarles C #. Pregúnteles si lo saben bien. Pregunte si han utilizado alguna característica más reciente (LINQ, tipos anulables, genéricos, ...). Si hay contenido de base de datos en su entrenamiento, haga algunas preguntas al respecto. Al final, puede ver que uno de los temas que había planeado es innecesario, porque todos lo saben, y todos necesitan otros temas, y así sucesivamente. Eso es más práctico que tratar de formular preguntas que no estén relacionadas con lo que tú '

Kate Gregory
fuente
+1 - Esto es lo que quería decir. Simplemente pregúnteles qué necesitan para ser incluidos en una capacitación hecha para ellos.
mouviciel
4

Hágales la pregunta de FizzBuzz

¿Sabían cómo codificarlo? ¿Qué idioma usaron? ¿Por qué lo codificaron como lo hicieron? ¿Usaron la recursividad? Bucles? Otros métodos / funciones? Punteros?

También podría usar la pregunta como base para otras preguntas (es decir, ¿por qué usó / no usó Recursion? ¿Cómo escribiría esto usando punteros?)

No abarca todo, pero puede darte una idea de sus habilidades de codificación

Rachel
fuente
1
Oh sí, le prometí a alguien de la comunidad que haré esa pregunta. Será la última pregunta, y compartiré resultados con todos.
1
@Pierre 303: solía pedirle a la gente que escribiera una función que validara un código postal. Te aseguro que fue tan esclarecedor como FizzBuzz.
Scott Whitlock
1
Me das la oportunidad de dar algunos resultados que obtuve al hacer esa pregunta. En 6 o 7 entrevistas, nadie pudo responderla. La mayoría de ellos eran estudiantes nuevos, ¡pero uno tenía 8 años de experiencia! Así que estoy un poco confundido ...
4

Diez preguntas

  1. Muestra un bucle for que suma los valores de una matriz. Pregunte entonces qué hace el fragmento de código. [¿Pueden leer un bucle básico?]

  2. Pídales que escriban un bucle for que imprima los números del 1 al 10, separados por comas. [Además de "¿pueden hacer esto?" puedes juzgar cuán repetitivo es su código.]

  3. Muestre un fragmento de código con dos referencias ay bseñalando dos objetos diferentes con un campo entero xestablecido en, digamos 7y 5. A continuación, reasignar: a = b;, b.z = 9;, y luego pedir el valor de a.z. [¿Entienden las referencias?]

  4. Muestra dos bucles anidados para (usando índices iy j), acumulando valores de alguna expresión. En el bucle más interno, tenga dos cálculos: double x = Math.pow(2.0, i)y double y = x * j. Pídales que hagan el código más eficiente. [¿Saben sobre la dependencia del bucle simple?]

  5. Pregúnteles qué hay de malo en el código de muestra A. (Ver más abajo) [¿Pueden pensar lógicamente?]

  6. Pregúnteles qué es lo que está mal en el ejemplo de código B. (Vea a continuación.) [También en el pensamiento lógico.]

  7. Pídales que inviertan esta condición: (s != null && s.Length != 0)sin usar !. [¿Conocen la ley de DeMorgan?]

  8. Muestre un código similar a los viejos anuncios de Lint en revistas: pídales que encuentren el error. Por ejemplo, sobrecargar en equalslugar de anularlo. [¿Son buenos abogados de idiomas? Este tipo de preguntas evalúan principalmente la experiencia: ¿has visto esta antes?]

  9. ¿Pueden describir cómo realizar una búsqueda binaria a través de una matriz ordenada?

  10. ¿Pueden describir cómo se podría implementar un método de clasificación?

Esto puede parecer "demasiado corto", pero creo que para evaluar a los estudiantes es posible que los diez minutos sean bastante ajustados. Realmente quieres verlos hacer algo de codificación. (Parece que harás FizzBuzz, basado en un comentario).

Si puede asumir que es un estudiante más fuerte, entonces también querrá preguntar algunos de los clásicos, como la recursión, revertir una lista vinculada y tal vez un comodín avanzado como explicar una lista XOR o qué intuiciones podrían tener para por qué ordenar un conjunto de números hace que sea más fácil comprimir que sin ordenar.

Código de muestra A:

if (m != null)
    a = m;
else
    a = null;

Código de muestra B:

if (x != 0 || x != 1) {
    ...
}
Macneil
fuente
3

Seguramente vas por esto de la manera incorrecta. Identifique las agrupaciones en las que desea ubicar a cada alumno

p.ej

No previous programming experience
Familiar with procedural constructs like variables, loops, branching
familiar with basic object orientated constructs like classes, interfaces, events, inheritance
familiar with using Generics/Templates
familiar with creating Generics/Templates

y así. Cuando haya identificado las agrupaciones adecuadas que dependerán del material del curso, resolver qué preguntas hacer será trivial.

Michael Shaw
fuente
3

Los estudiantes ya están contratados y desea establecer un programa de capacitación, por lo que parte del acuerdo es determinar qué tan rápido pueden aprender (y / o lo que saben: ¿a quién le importa qué?). ¿Por qué no elegir algunas preguntas fáciles, medianas y difíciles y dárselas de antemano? ¿Por qué tenderles una emboscada con preguntas que tal vez no conozcan si algunos pueden aprenderlas fácilmente?

Verá, al contrario de lo que la mayoría de la gente imagina, que a muchos de los estudiantes no les irá muy bien incluso con las preguntas en la mano. De esta manera, aprenderá acerca de sus estudiantes, sus conocimientos y su capacidad de aprender.

Dan Rosenstark
fuente
2

Cree 5 construcciones de diagramas de flujo simples y una lista separada de respuestas. Pídales que hagan coincidir la imagen con la frase.

Dibujar el siguiente:

  1. Si construye
  2. Si otra construcción
  3. Do While Loop
  4. Hacer hasta el bucle
  5. Construcción de declaración de caso

Pídales que expliquen la diferencia entre 1 y 2.
Pídales que expliquen la diferencia entre 3 y 4.
Pídales un ejemplo de cuándo sería aplicable una Construcción de declaración de caso.

Michael Riley - también conocido como Gunny
fuente
1

No estoy seguro de que sea posible hacer esto en 10 preguntas en 10 minutos. Tal vez les dé 5 minutos para contarles lo que saben sobre .net. Luego tenga una lista preparada de quizás 20 temas y elija 2 o 3 de las cosas que han mencionado y 2 o 3 de las cosas que no han mencionado.

Por ejemplo, podrías comenzar:

Dígame brevemente (tiene 5 minutos) cómo produciría un proyecto simple de C # en Visual Studio desde su creación hasta su ejecución.

Entonces, después de esto:

OK, cuéntame un poco más sobre lo siguiente. Será rápido, 1 minuto por respuesta, así que no trates de ser demasiado detallado, solo quiero tener una idea de lo que estás familiarizado.

Luego haga 5 preguntas para eso de lo siguiente:

  • Explica qué es una clase.
  • ¿Cuál es la diferencia entre una clase abstracta y una interfaz?
  • Explique brevemente cómo funciona la recolección de basura en .Net

    ....

  • ¿Cómo depurar algo si tiene un problema?

  • Yadda-yadda: estoy seguro de que podrás elegir una lista larga para elegir entre las otras respuestas
FinnNk
fuente
1

¡Creo en la "autoevaluación"! Si le explica a la persona la situación exacta en la que se encontrará, por ejemplo: "tendrá que codificar SQL ... con una base de datos de más de 100 tablas y más de 500K registros, que deben ejecutarse en menos de 4 segundos ...". Y si le preguntas: "¿Crees que puedes lograrlo?" - obtendrá una respuesta correcta.

Pasaré 5 preguntas sobre las expectativas de los estudiantes y 5 más técnicas:

  1. ¿Qué esperas de este entrenamiento?
  2. ¿Cuál es su nivel (esto debería ser específico del dominio)?
  3. ¿Qué quiere ver / aprender durante esta capacitación (señale los 3 puntos más importantes)?
  4. Si hacemos ejercicios, ¿qué le parecería más útil? (taller, opción múltiple)?
  5. ¿Qué esperas del profesor?

Entonces puede ir con algunas preguntas técnicas como (esto debería ser de acuerdo con el tema). para OOP por ejemplo:

  1. ¿Qué es la encapsulación?
  2. ¿Qué es la interfaz?
  3. ¿Polimorfismo?
  4. Sub-mecanografía?
  5. Enlace dinámico?
usuario7876
fuente
1

Estoy buscando resolución de problemas, un fuerte hábito de aprendizaje, desarrollo profesional y un amplio conocimiento de los enfoques.

  1. ¿Puedo ver tu cartera?
  2. ¿Cuáles son los últimos 3 libros técnicos que has leído? ¿Por qué?
  3. ¿Qué texto de programación cambió tu forma de pensar más? ¿Por qué?
  4. ¿Cómo definirías a chickencomo un objeto? ¿Cómo se relaciona con los demás birds? ¿Qué tal mammalsy animals?
  5. ¿Puede explicar cualquiera de (REST, Polimorfismo, álgebra relacional, diseño de analizador sintáctico, MVC) en términos simples?
  6. ¿Cuál es la pieza de software más interesante (o mejor) que ha creado usted mismo?
  7. ¿Puede describir los idiomas en los que domina desde el favorito al menos favorito? ¿Qué te frustra de tus idiomas menos favoritos?

Espero que los desarrolladores:

  • Sea ingenioso y rápido
  • Captar conceptos básicos adecuadamente
  • Anhela asimilar conceptos avanzados
  • Rastree el éxito y el fracaso (aprendiendo de él)
  • Aprende constantemente, cuidadosamente
  • Comunicar problemas complejos simplemente
  • Mostrar equilibrio y lógica cuando se discuten temas comúnmente dogmáticos
Bruce Alderson
fuente
1
Raramente leo libros de programación de principio a fin. Hacen mejor material de referencia y aclaración.
Andres Jaan Tack el
Tienes razón: hay algunos textos que no puedes leer de principio a fin (material de referencia), pero hay una cantidad de volúmenes increíbles que cambiarán tu forma de pensar. Por ejemplo: las explicaciones visuales de Tufte, o la paradoja de la elección, o la pragmática del lenguaje de programación (o cualquier cosa de Hofstadter).
Bruce Alderson el
"hay una cantidad de volúmenes increíbles que cambiarán tu forma de pensar", que no se limita a libros técnicos / de programación. Además, no tengo cartera, todos mis trabajos han sido sistemas seguros, estaría jodido.
NimChimpsky
Contribuir un tiempo a un proyecto abierto o sin fines de lucro. Es importante ver trabajo real antes de contratar a alguien (eventualmente terminarás mostrando tu trabajo real). Una cartera es tan importante como un CV bien cuidado.
Bruce Alderson
1

La taxonomía de Bloom es útil aquí. Desea alcanzar una variedad de niveles de conocimiento, que van desde la memorización de memoria hasta el análisis. Esto te da la oportunidad de descubrir dónde se encuentra su nivel de habilidad. Dado que el OP estaba buscando preguntas para hacer a los estudiantes, la lista a continuación no supone más conocimiento que el que poseería un estudiante de 3er o 4to año (espero).

Conceptual

  1. ¿Qué es un desbordamiento de pila?
  2. ¿Cuál es la diferencia entre un objeto y una clase?
  3. ¿Cuál es la diferencia entre una función y un método?
  4. Identifique algunas de las fortalezas y debilidades de Quicksort e Insertion Sort.
  5. Describe cómo un programa que escribiste mostraría todos los valores almacenados en un árbol binario.

Práctico

  1. ¿Has utilizado un sistema de control de versiones? ¿De qué manera permite a los miembros del equipo colaborar de manera más efectiva?
  2. Su compilador dice "símbolo no identificado". Qué significa eso?
  3. ¿Qué es una "violación de segmentación"?
  4. Nombre algunas estructuras de datos proporcionadas por la sintaxis (insertar idioma aquí) o la biblioteca estándar.
  5. ¿Cómo encontrarías y mostrarías todas las direcciones de correo electrónico en 10,000 archivos?
Barry Brown
fuente
1

Como ya están contratados, para una evaluación rápida, creo que uno debería (junto con las preguntas de programación), uno debería preguntarles sobre

  1. ¿Cuál es la configuración del sistema en la que ha trabajado (configuración de hardware de PC)?
  2. ¿Intentó probar su código (proyecto si se trabajó durante la universidad) en diferentes sistemas operativos?
  3. ¿Prefiere la codificación en Windows o Linux (si han funcionado en sistemas operativos que no sean Windows)
  4. la codificación es más rápida / lenta / mejor ¿depende de los sistemas? (sistemas superiores = se siente bien para la codificación, ya que los sistemas lentos tardan en compilarse y todo)
  5. Además, si se les pregunta si saben al menos formatear una unidad o instalar el sistema operativo en caso de que se bloquee / no se pueda iniciar en lugar de confiar en el tipo de TI para obtener ayuda (esto es para saber si pueden manejar correctamente alguna situación del sistema operativo)

Estas preguntas son solo para conocer su conocimiento sobre el sistema que usan durante la programación,

cod3r
fuente
0

Comience desde los niveles más bajos de la pila de software y suba.

  1. ¿Qué es el BIOS?
  2. ¿Cuál es el papel del sistema operativo?
  3. ¿Qué es la multitarea? ¿Qué es el enlace dinámico?
  4. Describa cómo se transforma el código fuente en un programa de trabajo para el idioma de elección del alumno (ejemplo de respuesta para C: preprocesador -> compilador -> un montón de archivos de objetos -> enlazador -> ejecutable)
  5. ¿Qué es un caché? Estime los tiempos de acceso relativos a la caché L1, la caché L2, la RAM, el disco giratorio (es decir, no SSD).
  6. Enumere las estructuras de datos que podría implementar sin buscar detalles en la literatura.
  7. ¿Cuál es el programa más complejo que escribiste? ¿Qué lo hizo complejo?
  8. Explicar la recursividad en un ejemplo de elección propia.
  9. ¿Por qué fallan los programas?
  10. Explica qué es una sección crítica y da un ejemplo de dónde se usaría.
zvrba
fuente
44
La mayoría de estas preguntas parecen provenir de un libro sobre el sistema operativo y, sinceramente, tienen poco que ver con la programación. Honestamente, no necesita saber nada de esto para la mayoría de los trabajos de programación, si los hay.
Bryan Harrington el
1
Un poco exagerado, pero: si no sabe cuál es el papel del sistema operativo, no tiene sentido hablar de seguridad y derechos de acceso, ya sea a nivel del sistema operativo o de la base de datos. Si no conoce el proceso de compilación, no puede depurar su proceso de compilación de la A a la Z. Si no conoce las latencias de caché, terminará con un código que empuja todo en un DBMS donde un plano- El archivo hubiera sido suficiente. Si no sabe sobre mutexes, no sabe nada sobre programación paralela. El resto debería tener un enlace obvio a la programación.
zvrba
1
(Y si no sabe qué es el BIOS, lo más probable es que no sepa nada sobre la programación del hardware de la PC.)
zvrba
44
Comience con una comprensión básica de la electricidad. Rasca eso: comienza con la física atómica. LUEGO trabaje hasta llegar al BIOS.
Dan Rosenstark
Si bien estas son preguntas muy importantes y básicas, y cada programador debe saber las respuestas, creo que la primera mitad de la lista será una pérdida de tiempo, ya que es algo que los técnicos de PC también deben saber. No le darán una buena idea de si la persona que está contratando sabe algo sobre programación .
Ken Bloom
0
  1. ¿Es una cadena mutable o inmutable?
  2. ¿Cuál es la diferencia entre una clase y una clase estática?
  3. ¿Qué es un puntero?
  4. Describe la complejidad.
  5. ¿Cuál es la diferencia entre una matriz y una lista vinculada?
  6. ¿Cuál es la diferencia entre Merge Sort y Quick Sort?
  7. Dada una hoja de cálculo con las columnas Nombre, Dirección, Código postal y Número de teléfono, describa cómo convertiría la hoja de cálculo en una base de datos normalizada.
  8. Describa las diferencias entre los métodos asíncronos y sincrónicos y las formas en que deben manejarse.
  9. ¿Cómo pasaría la información de una aplicación del lado del servidor a una aplicación web?
  10. ¿Cuál es tu idioma preferido? ¿Cuáles son algunas razones por las que usarías ese lenguaje sobre X? (es decir, ¿por qué querría usar Java sobre C # y cuáles son algunas de las diferencias fundamentales?)
Kavet Kerek
fuente