¿Cuánto importa la velocidad en la programación de entrevistas y hay escenarios en los que la velocidad es más importante que en otros?

¿Cuánto tiempo tienes?

La pregunta no tiene sentido, y lo explicaré con una analogía.

  • Usted y 20 amigos van a correr una carrera. Les pagaré a las primeras tres personas para completar la carrera $ 1000 dólares. ¿Cuánto tiempo tienes para completar la carrera (de modo que ganes los $ 1000)?

¿Qué, no puedes responder esa pregunta? ¡Exactamente!

No puedes responder esa pregunta porque:

  1. No has visto el hipódromo, entonces, ¿cómo podrías decirme cuánto tiempo tomaría? Algunas carreras pueden tomar solo 10 segundos para correr, y otras pueden tomar horas o días.
  2. Estás siendo juzgado contra otros corredores, no de manera absoluta. No hay un “límite de tiempo” exactamente, ya que se trata de hacerlo mejor que otras personas.

Esto es lo mismo para programar entrevistas. 10 minutos pueden ser rápidos para un problema y lentos para otro. Y, realmente, su desempeño se juzga en relación con otros candidatos. No es que haya un cronómetro y cualquier cosa por encima de X minutos es equivalente.

¿Cuánto importa la velocidad?

Es muy importante, sin duda. Si pasa una hora imprimiendo una lista de los factores de dos, eso probablemente no será un muy buen rendimiento.

Entonces, sí, la velocidad importa [más o menos **]. Mucho.

Pero, ¿qué vas a hacer al respecto? Decir que ir más rápido realmente no ayuda mucho.

** Además, no es tan simple. Supongamos que usted y su amigo tienen el mismo problema. Tu amigo tarda 10 minutos. Desarrolla el mismo algoritmo después de 20 minutos, pero usted y su entrevistador pasaron un rato discutiendo algunos de los puntos más finos / casos límite de un enfoque particular. Tal vez a tu amigo le fue mejor, pero tal vez a ti también. Realmente depende

Piénselo de esta manera: luchar para resolver una pregunta generalmente significa que se tomó más tiempo para resolverla. Pero si tomó más tiempo por otra razón, porque fue más detallado, por ejemplo, está bien. No es el momento ese es el problema; Es la lucha.

¿Debo comenzar a disparar ideas ingenuas, o tomarme un tiempo para idear una solución más inteligente, modular y / o eficiente?

De nuevo, me estoy rascando la cabeza aquí. Mi respuesta sería: ambos. O tampoco? Es realmente difícil de decir.

Debes tratar de resolver la pregunta de la manera más óptima posible. Comenzar con una solución de fuerza bruta / ingenua suele ser un buen paso para llegar a una solución más inteligente.

Probablemente no debería simplemente sentarse allí e intentar enumerar tantas soluciones ingenuas como sea posible. No estás siendo juzgado por el volumen de malas soluciones, después de todo. Por supuesto, si está tratando de encontrar una solución que pueda refinar en una más óptima, tal vez una lluvia de ideas de soluciones ingenuas adicionales sería útil.

Probablemente no deberías sentarte allí y tomarte el tiempo para idear una solución inteligente. Necesita un punto de partida, y su entrevistador quiere saber cómo piensa. Desarrollar una solución óptima sin pensar en soluciones ingenuas suele ser muy difícil. Ni siquiera estoy seguro de cómo harías eso. ¿Cómo intentas desarrollar una solución pero evitas que tu mente explore soluciones subóptimas?

En otras palabras, haz lo mejor que puedas.

La velocidad es lo incorrecto para enfocarse.

Sí, pasar una hora para resolver un problema en una entrevista es malo si el candidato promedio resuelve dos o tres problemas. Sin embargo, no sabe cuánto tiempo debería tomar un problema determinado. ¿Para qué deberías optimizar entonces?

Comunicación clara.

Su entrevistador sabrá muchas de las posibles soluciones al problema, pero no sabrá qué solución va a producir. Simplemente resolver el problema en tu cabeza es insuficiente, debes comunicarlo a tu entrevistador. Tomemos el siguiente problema de muestra:

Tienes un conjunto múltiple de enteros. Puede realizar tres operaciones: agregar un número al conjunto múltiple, eliminar un número del conjunto múltiple o informar el MCD de todos los números en el conjunto múltiple. ¿Cómo implementaría el multiset para hacer cada una de las operaciones dadas lo más rápido posible?

Una solución de muestra es usar un vector de enteros para almacenar todos los enteros en el multiset. Desea comunicar claramente cómo funcionan las operaciones de adición, eliminación y consulta en el vector, y luego explicar la asintomática de esas operaciones. A partir de ese momento, puede trabajar en cambiar la implementación para reducir la asintomática de las operaciones dadas.

La regla general que he seguido con la programación de preguntas de entrevistas sobre el sabor algorítmico es la siguiente:

  1. Genere una solución simple al problema y explique claramente cómo funciona.
  2. Mejore iterativamente la solución generada, haciendo y explicando observaciones hechas sobre el problema que le permitan resolver el problema más rápidamente.

En mi experiencia, nunca está de más dar incluso una solución trivial a una entrevista de programación. Al menos allí, el entrevistador tiene algo con lo que trabajar. Si intenta saltar directamente a una solución más rápida, es posible que se quede atascado y que el entrevistador no pueda ayudarlo.

Nunca pensé en tener que resolver un problema en un período de tiempo específico, en gran parte porque las buenas preguntas de la entrevista son lo suficientemente abiertas como para que puedas pasar una entrevista completa solo hablando de una pregunta, y tu entrevista puede estar dedicada a una sola. pregunta.

Comunicarse claramente mejorará su entrevista: tratar de resolver un problema lo más rápido posible podría hacer que se comunique de manera menos efectiva, lo que termina confundiendo a su entrevistador y luego le lleva más tiempo del que hubiera necesitado para resolver la pregunta. Su entrevistador no tendrá miedo de decirle si se está enfocando en detalles que no son particularmente importantes para la pregunta en sí, y si le preocupa, siempre puede pedirle aclaraciones a su entrevistador.

En una sesión de entrevista de 45 minutos, tendrá unos minutos para la presentación al principio y unos minutos para las preguntas al final. Como resultado, ¡solo obtienes ~ 35 minutos para las preguntas de codificación!

Normalmente, esperará que los entrevistadores le hagan 1-2 preguntas y al menos una de ellas requiere que escriba un código sólido. Por lo tanto, la velocidad importa mucho en la programación de entrevistas.

Comprobar advertencia! ¿Eres un programador lento en entrevistas? para una discusión detallada sobre este tema.

No es la velocidad de escritura / escritura.
Este es uno de los malentendidos más comunes cuando decimos que es demasiado lento. En realidad, la velocidad de escritura / escritura no importa para la mayoría de las personas. Lo que marca una gran diferencia es el tiempo que pasa analizando el problema y completando la solución de código perfecta.

Los entrevistadores no te dirán la verdad.
Desafortunadamente, los entrevistadores no le dirán si es demasiado lento para mantener contento a cada candidato. Por ejemplo, si pasa toda la sesión de 45 minutos terminando una sola pregunta, él no le dirá que no tenemos tiempo para la segunda pregunta, sino que dirá algo como “He terminado todas mis preguntas”.

Aunque 2 preguntas son más comunes, a algunos entrevistadores todavía les gusta hacer una sola pregunta con un montón de seguimientos. Si ha practicado con suficientes preguntas de la entrevista, no debería ser difícil saber si la única pregunta vale toda la sesión.

More Interesting

Cómo contar el número de formas únicas en una matriz que contiene muchas islas de 1s

¿Qué tipo de preguntas se harán durante las entrevistas de TI para otros estudiantes de la rama?

¿Por qué la mayoría de los entrevistadores están obsesionados con los árboles y los gráficos?

¿Cuáles son algunas preguntas ingeniosas que le han hecho en una entrevista técnica?

¿Cuáles son las preguntas de entrevista basadas en escenarios para microservicios que usan Java?

¿Qué es mejor en una entrevista técnica, código ilegible con buen rendimiento o código legible con peor rendimiento?

¿Qué es la matriz de posición?

Para entrevistas técnicas en empresas tecnológicas de primer nivel, ¿cuánto tiempo tienen los candidatos para cada pregunta de programación?

Cómo decir que alguien 'técnicamente no está allí' cuando responde todas las preguntas de la entrevista con soluciones óptimas y código de trabajo

¿Cuál es la pregunta de entrevista de programación más difícil que le han hecho?

Para codificar entrevistas en empresas de primer nivel como Google, Facebook, etc., ¿es C un lenguaje adecuado?

¿Cuál es la mejor manera de prepararse mental y físicamente para absorber tanta información sobre un tema técnico como sea posible en una semana?

Dada una lista de n enteros, ¿cómo puedo encontrar todas las combinaciones que suman 0?

¿Cómo perciben los empleadores a un ingeniero / programador con tatuajes durante la entrevista?

¿Cuál es la mejor manera de prepararse para la entrevista de Amazon, cuando todos son nuevos en la codificación?