¿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!
- ¿Cuáles son algunas buenas preguntas para la entrevista de C?
- ¿Cuál es la manera eficiente de encontrar la mediana de la matriz ordenada 2 de igual o diferente tamaño en Java?
- Cómo juzgar a un programador Java con solo 5 preguntas
- ¿Cómo puedo prepararme para una entrevista de codificación difícil en una semana?
- ¿Cómo debería uno comenzar a prepararse para una entrevista en Java con 3 años de experiencia?
No puedes responder esa pregunta porque:
- 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.
- 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.