Cómo dar una buena entrevista de codificación técnica

Aquí hay algunas técnicas para dar una buena entrevista técnica:

  • Las preguntas deben escalar de fácil a imposible. Una gran pregunta puede funcionar para candidatos con 0–20 + años de experiencia. Por ejemplo, puede comenzar con un problema como, “Dado un archivo de registro, encuentre todas las entradas que contengan la cadena ‘foo’”. Para un candidato universitario, escribir el código para hacerlo manualmente será suficiente para mantenerlos ocupados. Para un candidato experimentado, será una expresión regular de una línea. Por lo tanto, para un candidato experimentado, puede comenzar con “Dado un archivo de registro en formato X (proporcionado por el entrevistador), busque todas las entradas que muestren IP en una subred hablando con IP 1.2.3.4″. Nunca debería encontrarse en un callejón sin salida a menos que el candidato sea significativamente más alto que usted. Para los candidatos de más antigüedad, una gran pregunta es: “¿Cuál crees que es el problema más importante en nuestra industria? ¿Cómo lo resolverías? Impleméntalo.”
  • Desarrolle su pregunta durante la entrevista para que coincida con las habilidades del candidato. Continuando con el ejemplo anterior, digamos que el candidato escribe rápidamente el código para encontrar esas direcciones IP. Ahora pregunte: “Encuentre casos en los que las máquinas propiedad del usuario X se comunicaron con el dominio Y (donde los datos solo tienen direcciones IP). Al escribir el código, dígame qué otras API necesita para lograr esto ”. Esta es una pregunta difícil porque debe tener en cuenta que las máquinas del usuario y el dominio pueden haber cambiado las direcciones IP con el tiempo, podría haber NAT, servidores proxy o tráfico falso, etc. Si también lo logran, puede agregar más complejidad: ¿Qué pasa si hay 1 TB de registros? ¿Qué pasa si no tienes acceso a internet? ¿Si los ciclos de CPU o la memoria fueran realmente caros? Si los datos fueran escamosos? Por el contrario, si el candidato tiene problemas con lo que creía que era una pregunta básica, puede simplificar si se concentra en un solo aspecto de la misma, por ejemplo, “Simplemente encuentre las máquinas correspondientes al usuario” o “¿Qué estructura de datos necesitaría rastrear? ¿Qué máquinas tienen qué direcciones IP? ”Si un candidato realmente está totalmente en llamas, pase a una nueva pregunta.
  • Pídales que sean autocríticos. Los grandes candidatos tienen excelentes respuestas a preguntas como “¿Qué no te gusta de tu código?”, “¿Qué más harías aquí si tuvieras más tiempo?” “¿Crees que esta es la mejor solución posible?” pocos minutos y casi siempre es muy revelador.
  • Base sus preguntas en ejemplos del mundo real. Tome un problema que su equipo haya resuelto recientemente y pídales que resuelvan una versión simplificada de eso. Esto garantiza que (a) su pregunta sea relevante para el trabajo de su equipo, (b) sea solucionable, (c) sepa lo difícil que fue resolverla y (d) conozca algunas de las trampas y opciones. Es importante utilizar un problema que ya haya resuelto, tanto por (b) como por (c) y porque si el candidato encuentra una solución novedosa que su equipo implemente, los derechos de propiedad intelectual podrían convertirse en un problema. Además, si está entrevistando a una persona en el nivel X, puede usar un problema resuelto por una persona de su equipo en ese nivel para que sepa que es la dificultad correcta.
  • Límite de trivia. Preguntarle al candidato sobre hechos aleatorios que podrían buscar es una pérdida de tiempo. Las preguntas breves sobre áreas en las que afirman ser expertos en su currículum pueden ser útiles para determinar cuán exagerado es su currículum y obtener una evaluación básica de su experiencia, pero no vale la pena dedicar mucho tiempo, porque hay un elemento demasiado grande de suerte al elegir un hecho particular que ellos saben. Es mejor cubrir el conocimiento incluyendo algo de terminología y tecnología en el contexto de una pregunta más exploratoria. Sin embargo, es totalmente válido pedirles que expliquen una tecnología amplia en profundidad extrema, por ejemplo, “¿Qué sucede cuando ingresas una dirección en la barra de URL?” – esto les permite elegir qué elementos técnicos discutir, muestra su capacidad para comunicarse es un tema complejo y brinda oportunidades para ver si comprenden las elecciones de diseño que se hicieron. Los mejores ingenieros pueden decir: “El campo n. ° 3 se utiliza para transmitir el valor X para proporcionar una propiedad útil Y, pero significa que es posible un ataque de seguridad Z”.
  • Haz que el candidato hable. Siempre que sea posible, durante las preguntas técnicas, haga que hagan las preguntas. ¿Se está ejecutando localmente o en un centro de datos, cuántos registros, qué tan limpios son los datos, quiénes son los clientes, con qué frecuencia se ejecutarán, etc.? Todos esos detalles deben provenir del candidato. Desea proporcionar suficientes detalles para que sigan el camino correcto. Si se pierden un detalle importante, puede interponerlo, pero no comience con un preámbulo extenso: no quiere tener que ser esa directiva cada vez que les asigna una tarea, así que no lo haga en una entrevista.
  • Manténgalos en el camino y en el ritmo. En ocasiones, deberá pedirle al candidato que se concentre en secciones específicas o que pase por una sección que no ha completado. Una buena manera de hacerlo es decir que pueden usar una API externa que hace X para que puedan omitir la escritura del código. Alternativamente, puede decir: “Me gustaría centrarme en Y. ¿Puede escribir el código para eso?”
  • La sintaxis perfecta y la creatividad son puntos de bonificación, no el punto principal. Si el candidato pierde un punto y coma, no es gran cosa. Si no recuerdan el nombre de la clase de tabla hash en el idioma que están utilizando, significa que no han escrito mucho código en ese idioma recientemente, pero puede que no sea un gran problema. Si constantemente entienden mal la sintaxis, entonces probablemente no sean un buen programador. Del mismo modo, si encuentran una solución innovadora y brillante en la que nunca hayas pensado, eso es genial y puedes darles un poco de crédito extra, pero reconoce que esto es principalmente suerte. La mayoría de las veces, la solución correcta a un problema es sencilla, y la creatividad en una entrevista está poco correlacionada con la creatividad en el trabajo.
  • Preguntas de prueba sobre compañeros de trabajo. Para comprender qué tan bien debe desempeñarse un candidato, haga que algunos compañeros de trabajo de diferente antigüedad respondan su pregunta en una entrevista simulada. Esto también le mostrará algunas soluciones diferentes a sus preguntas que podría no haber esperado.
  • Mantenga su retroalimentación de la entrevista objetiva y sus evaluaciones comparativas. Escriba lo que hizo el candidato, no lo que pensaba de él. Luego, evalúe sus resultados con respecto a otras entrevistas, incluidas las de sus compañeros de trabajo: ¿cuánto código escribieron? ¿Cuántos errores tenía su código? ¿Su código realmente resolvió el problema? ¿Cuántos casos límite se perdieron? El sesgo es insidioso, lo tienes y no lo sabes, y la mejor manera de combatirlo es con una evaluación analítica rigurosa. Tenga en cuenta que el sesgo no es solo demográfico, sino que también puede provenir de cosas como en qué idioma les gusta desarrollarse, qué pasatiempos tienen y si hablan mucho o poco. En particular, no importa si te gustan. Siempre que no hayan sido groseras o inadecuadas, los contratará para escribir código, así que evalúelos únicamente en función de lo bien que escriban el código. El “ajuste cultural” es casi siempre una excusa para el sesgo.

Estos son mis consejos personales de 10 años de entrevistas en Microsoft y Google. No están respaldados oficialmente por ninguna de las compañías ni universalmente seguidos por nuestros entrevistadores, pero creo que funcionan bastante bien.

Dar una buena entrevista técnica que le permita obtener ofertas de trabajo instantáneas es difícil.

Piensa en ello un segundo. Para un trabajo promedio [desarrolladores de software] aproximadamente 100 personas solicitan el trabajo. pero solo 1 uno de ellos lo consigue.

La aplicación pasa de seguir FLOW

  1. Examen de CV [75% de los candidatos se eliminan en esta etapa]
  2. Revisión del teléfono [8 de cada 10 candidatos se eliminan aquí]
  3. Entrevista en el lugar 1 [50% de los pocos seleccionados se eliminan aquí]
  4. Entrevista en el lugar 2 O 3 [El 99% de los candidatos seleccionados son descartados]

Ahora puedes imaginar que tienes una competencia feroz en cada nivel. Para vencer al resto de los candidatos, necesitas un plan de juego para cada ronda.

En esta respuesta, me centraré por completo en las entrevistas técnicas in situ para que pueda consultar los siguientes recursos:

Consejos para escribir un CV único

Preguntas de la entrevista telefónica [297+]

Cómo hacer una gran primera impresión en entrevistas

¿Cansado de ser rechazado en las entrevistas? Siga esta guía

Así que ahora volvamos a nuestra pregunta original

¿Cómo dar una impresionante entrevista técnica?

Aquí hay tres componentes principales para hacer esto

1-Qué hacer antes de la entrevista

Antes de aparecer en una entrevista técnica, debe prepararse mental, emocional y técnicamente.

No puedo decir cuántas veces en mi carrera como líder del equipo técnico he entrevistado a personas que simplemente no están preparadas.

Simplemente carecen de disciplina para sentarse y al menos actualizar su conocimiento y estrategia antes de ir a entrevistas importantes.

Por lo tanto, su prioridad número 1 debe ser prepararse mental y técnicamente para la entrevista.

Comience con la descripción del trabajo, investigue un poco sobre la empresa y el proyecto, verifique el perfil vinculado del entrevistador.

Dedique un tiempo a actualizar sus conocimientos en conceptos básicos de programación, estructuras de datos, algoritmos, etc.

En base a mis años de experiencia, he creado una lista de más de 500 preguntas de entrevistas de programación [Preguntas para el 100% de éxito garantizado en entrevistas de programación]

En resumen Recuerde: el 99% de los candidatos fallan en las entrevistas técnicas porque no están preparados.

Ella es cómo puedes prepararte técnicamente antes de tu entrevista:

2-Qué hacer durante la entrevista:

El segundo hecho más importante es lo que haces durante la entrevista. Hay muchos elementos para ello. Que se puede detallar a continuación

  1. Cómo presentarte en las entrevistas
  2. Cómo responder preguntas técnicas durante la entrevista
  3. Cómo resolver algoritmos en la pizarra
  4. Cómo descifrar los comentarios de las entrevistas y ajustar sus respuestas.

He escrito una guía de más de 10000 palabras que describe exactamente todo esto en detalles, puede consultarlo aquí: Cómo tener éxito en las entrevistas técnicas

3- Qué hacer después de la entrevista

Lo más importante después de terminar las entrevistas técnicas es enviar un correo de agradecimiento a los entrevistadores. Servirá dos propósitos

  1. Usted establece una conexión emocional con los entrevistadores y ellos pueden recordarlo por más tiempo que el otro candidato
  2. Si durante las entrevistas no pudo responder un pensamiento importante, puede aclarar su respuesta un poco más aquí.

Buena suerte.

Lo mejor que puede hacer es encontrar a otra persona que otorgue tales entrevistas y preguntarles si tienen algún esquema, o si puede participar en algunas entrevistas para aprender. Este tipo de adulación puede ser muy efectivo.

Al carecer de tal mentor, mire a su alrededor en el trabajo. Por ejemplo, mi biblioteca local está anunciando un asistente técnico, y tengo un amigo interesado en el trabajo. Esta tarde fuimos a la sucursal principal de la biblioteca y caminamos por las áreas de usuarios. Tienen computadoras que se usan casi exclusivamente para acceder a Internet o al paquete de Microsoft Office. Como con la mayoría de las computadoras públicas, no puede descargar un nuevo software. Algunas de estas computadoras enlazan con el catálogo de la biblioteca, pero la biblioteca también tenía catálogos dedicados … impresoras … escáneres de códigos de barras … impresoras remotas …

Anotamos los números de modelo para que ella los investigara, para que estuviera preparada para discutirlos en una entrevista. Usted, como entrevistador, debe estar preparado para hablar sobre las mismas computadoras, software y periféricos. Quizás pregunte la diferencia entre una impresora láser o de inyección de tinta, blanco y negro versus color, tamaños de papel y capacidad. Pregunte por qué no permitimos descargas, etc.

Al evaluar al solicitante, está buscando tres cosas:

  1. Capacidad técnica para los requisitos del trabajo;
  2. Habilidades de comunicación;
  3. Nivel de confianza.

Usted quiere a alguien que pueda ser lo suficientemente preciso para conocer el “vocabulario” de un trabajo que la comunicación puede suceder fácilmente. Usted quiere a alguien que pueda decir “el escáner de código de barras no está emitiendo un rayo láser”, no “esa cosa que lee los códigos del libro está rota”. Al mismo tiempo, no quieres a alguien que diga: “¡Aquí no hay una máquina que no pueda arreglar!” Demasiada confianza puede conducir a dañar la maquinaria en un esfuerzo por arreglar algo que el solicitante realmente no sabe.

More Interesting

Es probable que asista a una entrevista (software) el próximo mes, ¿dónde puedo prepararme para la entrevista en línea?

Cómo averiguar qué estoy haciendo mal en entrevistas técnicas

Cómo aprender a programar y desarrollar un interés en escribir códigos

¿Cuál es el mejor libro de texto / sitio web de estructura de datos para prepararse para las ubicaciones en 2 meses?

En la codificación de entrevistas, soy bueno para encontrar el algoritmo correcto pero malo para implementarlo. Además de la respuesta obvia de practicar la codificación, ¿qué más debo hacer para mejorar?

Cómo comparar el proceso de entrevista para Amazon en India y EE. UU.

¿Qué tipo de libros recomienda leer mientras se prepara para codificar entrevistas?

¿Cuáles son algunos proyectos que se pueden hacer para mejorar mi cartera de proyectos junto con mi currículum?

Cómo enumerar todas las rutas en una cuadrícula 2D solo yendo hacia la derecha o hacia abajo desde (0,0) a (n-1, n-1)

Codificación de entrevistas: ¿Es mejor manejar explícitamente los casos base en los comienzos o manejarlos dentro de la solución general?

¿Cuáles son los tutoriales que proporcionan la comprensión profunda de los conceptos básicos de Java?

En una entrevista técnica, ¿debo implementar las estructuras de datos auxiliares o usarlas de la biblioteca estándar?

¿Cómo diseñarás una lista de contactos en un teléfono celular? ¿Qué estructura de datos usarás?

Cómo mejorar en la resolución lógica de problemas algorítmicos para entrevistas técnicas

Una cadena contiene solo 0 y 1 (cualquier número de 0 y 1). Dado n (longitud de la cadena, no la cadena en sí), ¿cuántas permutaciones de cadena son posibles donde cada subsecuencia contagiosa de longitud principal de la cadena tiene un número mayor o igual de 0 que número de 1?