Esto es en lo que consiste una entrevista de programación típica: Fundamentos de ciencias de la computación, especialmente estructuras de datos y algoritmos. He hecho esta pregunta sobre qué preparar para programar entrevistas, así que he creado una lista de verificación de la respuesta del usuario de Quora a ¿Qué debo esperar en una entrevista de Ingeniero de Software en Google y cómo debo prepararme?
Aquí está la versión abreviada de la publicación anterior.
- Competencia en lenguaje (s) de programación de su elección
- Preguntas de programación :
- Conceptos generales de informática
sistemas operativos (subproceso vs proceso, sincronización, punto muerto, etc.) , redes de computadoras (paquete IP, direccionamiento IP, enrutamiento, paquete TCP, protocolo – ventana deslizante, protocolo de enlace de tres vías, control de congestión, ataque de hombre en el medio, TCP vs UDP, HTTP – canalización, GET vs POST)
- diseño orientado a objetos y patrones de diseño
Método de fábrica, iniciación diferida, grupo de objetos, Singleton, decorador, publicación / suscripción, estado, monitor
- ¿Cuál es mejor, MBBS o veterinaria?
- ¿Cómo puede Camboya lograr una tasa de desempleo del 0%?
- ¿Por qué un probador de software no recibe el mismo o más respeto que un desarrollador?
- ¿Cómo es trabajar en Google DeepMind?
- ¿Cuál es su experiencia trabajando con el FBI?
- Notaciones Big-O (no se puede adivinar la complejidad de su solución es tan malo como no tener una solución)
- Clasificación (montón, fusión, rápida. No utilice la clasificación de burbujas).
- Estructuras de datos
Picadillo
Lista enlazada
Árboles: complejidad y uso del árbol de búsqueda equilibrado
Intentos
- Búsqueda ~ búsqueda binaria, primera búsqueda de amplitud, primera búsqueda de profundidad y otras variantes.
- Preguntas de diseño
- Recursividad
- Algoritmos fundamentales como divide y vencerás, programación codiciosa y dinámica. y problemas comunes como la mochila, el vendedor ambulante, etc. Aquí hay una lista específica de Algoritmos importantes para dominar para resolver acertijos de programación.
- Otros temas útiles para conocer
Dijkstra , A *
Algoritmos heurísticos / aproximados para problemas NP difíciles
conceptos básicos de algoritmos aleatorios (ordenación rápida aleatoria, máximos locales y conceptos de IA relacionados)
Mapa reducido
Computación distribuida y paralela (y resolución distribuida de problemas para problemas a gran escala)
Con respecto a las otras tecnologías que mencionó, desde AWS hasta Hadoop, acabo de enterarme de Hadoop en el trabajo (no me lo preguntaron durante mis entrevistas), ¡y ni siquiera tengo la menor idea sobre AWS! Entonces, aparte de las preguntas estándar de pizarra blanca, las tecnologías varían de una posición a otra, y estoy seguro de que no todas las posiciones requieren todas las tecnologías que ha enumerado.
Por último, tenga en cuenta que las empresas más grandes, especialmente aquellas en la parte superior de la jerarquía (FB, GOOG, etc.) se preocupan menos por sus habilidades tecnológicas y más por sus habilidades básicas de ingeniería. Respuesta del usuario de Quora a ¿Se espera que escriba un código perfecto en su primer intento en entrevistas tecnológicas?
Algunas compañías se están alejando de un modelo de pizarra blanca para exigir a los aspirantes de trabajo que completen un mini proyecto, pero personalmente prefiero la pizarra blanca que perder dos o tres días de mi vida para cada compañía con la que me gustaría entrevistarme.