En promedio, ¿cuánto tiempo le tomará a un ingeniero de software responder una pregunta de entrevista técnica sobre estructuras de datos o algoritmos en Google, Facebook, Amazon, etc.?

[matemáticas] \ dfrac {\ textrm {Longitud \, de \, entrevista}} {\ textrm {Número \, de \, preguntas \, usted \, debe \, responder}} [/ matemáticas].

Así que ahora hemos reducido el problema de averiguar cuánto tiempo se debe tomar para responder una pregunta de entrevista técnica a los dos problemas para determinar cuánto durará la entrevista y cuántas preguntas debe responder. El primero suele ser sencillo, ya que la duración de la entrevista a menudo se especifica de antemano. El segundo, no tanto.

Resulta que no hay una buena solución para el segundo problema. ¿Por qué es esto? Porque cada empresa es diferente. Algunas entrevistas técnicas simplemente toman una sola pregunta y hacen que el entrevistado pase toda la entrevista trabajando en este problema; hay preguntas de entrevista que son muy abiertas y que satisfacen esta necesidad. Algunas entrevistas técnicas son solo una secuencia rápida de preguntas de entrevistas, donde es una carrera para ver cuántas puede resolver en el tiempo dado. Otros son una mezcla, donde obtienes un par de preguntas fáciles al principio para ver si tienes algunos requisitos básicos (es decir, habilidades básicas de codificación / algoritmos), y si puedes resolver esas preguntas fáciles, entonces procedes a trabajar más duro, más Problemas interesantes

10-15 minutos es un buen estadio para el primer draft. Obviamente depende de la pregunta.

Esto va a depender de la pregunta y la empresa. Las diferentes compañías presupuestarán diferentes cantidades de tiempo para cada paso del proceso, por lo que generalmente es difícil saber con anticipación a menos que el entrevistador le diga cuánto tiempo tiene.

Dado que tanto los entrevistadores como los candidatos varían tanto, es difícil para ambos adivinar cuánto tiempo llevará algo. Por lo tanto, incluso dado un proceso con una cantidad de tiempo establecida, es probable que reciba preguntas que lo lleven desde una fracción del tiempo asignado hasta mucho más tiempo. No te preocupes por esto.

Por ejemplo, recientemente tuve una entrevista con tres preguntas de pizarra, cada una tenía una hora reservada para eso. Y, sin embargo, tenía una pregunta que no tuve tiempo de terminar, una que terminé en aproximadamente media hora y otra que era la correcta. (Supongo que soy el Ricitos de oro de los candidatos). Este fue el proceso de entrevista mejor llevado a cabo por el que he pasado; ¡Espere aún más variabilidad y confusión en otras compañías!

Esto saca la conclusión más importante: no necesariamente tiene que terminar el problema por completo. Siempre que pueda mostrar progreso y el hecho de que sabe lo que está haciendo, no debería importar si obtiene la solución óptima o si termina con un programa 100% correcto. Los buenos entrevistadores entienden que estás limitado en el tiempo, bajo estrés y sin tus herramientas habituales; solo quieren asegurarse de que pueda programar y, lo que es más importante, de que pueda pensar . No están (o al menos no deberían estar) tratando de hacerte tropezar o comprobar si conoces el “truco” de un problema; Básicamente están usando el problema como un tema de conversación para que pueda mostrarles que sabe lo que está haciendo.

En resumen: no puede predecir cuánto tiempo llevará. Así que no te preocupes por eso. Incluso si nunca terminas.

Uno de mis problemas de codificación en el sitio tardó 30 segundos (excluyendo la definición del método, que escribió el otro chico). Otro en el mismo bucle tardó 3600 segundos. Si bien existe una gran variación en la complejidad, el tiempo promedio por problema parece ser de 20 minutos en todas las empresas que he visitado (2-3 problemas por sesión).

De hecho, recientemente estuve trabajando con Gayle McDowell en un nuevo recurso llamado Beat The Technical Interview y ella ofrece una idea interesante sobre esta pregunta:

“Cuando encuentre errores, y probablemente lo hará, ¡no se asuste! Los errores están bien; ningún entrevistador razonable espera que solo explote código impecable, especialmente cuando ni siquiera tiene una computadora. Solo piense en sus errores y cuidadosamente Intenta arreglar la solución.

En cada pregunta, se lo evaluará en relación con otros candidatos en la misma pregunta. Piense en esto como ser “calificado en una curva”. Cuanto más difícil sea una pregunta, más tiempo tomará resolver, más errores tendrán todos y, en general, el rendimiento de todos será más débil en términos absolutos. Por lo tanto, los entrevistadores serán un poco más indulgentes con todos los factores. ¡No tienes que ser perfecto! ”

También explica cómo desglosar las preguntas comunes de codificación y algoritmos en este recurso: Cómo responder a las preguntas de codificación y entrevista de algoritmos

¡Buena suerte!

Esto depende completamente de la pregunta. Doy preguntas de codificación de pizarra; a veces doy preguntas que espero tomar 5 minutos, y a veces doy preguntas que espero tomar toda la entrevista. Siempre tengo más preguntas de las que espero que la gente realmente responda.

El promedio no tiene sentido en este caso porque la variación es muy alta. Diferentes entrevistadores e incluso el mismo entrevistador entre diferentes preguntas harán preguntas fáciles y difíciles.