La pregunta que respondí: ¿Qué dicen las soluciones subóptimas sobre usted en una entrevista de software técnico?
Esta pregunta es un poco demasiado amplia, creo. La mayoría de las preguntas técnicas en entrevistas de ingeniería de software tienen al menos una solución “óptima”, así como muchas estrategias válidas diferentes que no son las más óptimas. Pero hay más que eso:
Si le hago una pregunta técnica, no solo le pido que escriba la solución. Le pido que me demuestre su proceso de pensamiento mientras busca la solución. Voy a estar observando tus habilidades para resolver problemas: ¿qué tan bien entiendes el problema? ¿Qué tan bien puedes visualizarlo? ¿Qué tan bien piensas acerca de los casos límite? ¿Qué tan dispuesto (y capaz) eres a hacer preguntas aclaratorias cuando dejo algo? ¿Qué tan rápido puede llegar a CUALQUIER solución satisfactoria?
- ¿Por qué la mayoría de las personas que acaban de obtener su BS en Informática no pueden pasar las entrevistas de codificación?
- ¿Cuál fue la mejor experiencia de entrevista que has tenido?
- ¿Qué sitios web son buenos para prepararse para las entrevistas de Software QA?
- Dada una cadena, ¿cómo la dividimos en el menor número posible de palíndromos de manera eficiente?
- ¿Qué es una pregunta de entrevista Java?
Los mejores candidatos que he entrevistado suelen encontrar una solución de “fuerza bruta” bastante rápido, una que demuestre que entendieron el problema y pudieron codificar una solución que realmente resuelve el problema, incluso si no funciona. así que de la manera más eficiente posible. Eso nos da mucho tiempo, entonces, para comenzar a pensar en mejores formas de hacerlo. Si no se limitan a sus armas e insisten en que su solución O (n ^ 2) es la mejor manera posible, y encontramos una solución O (n log n) que da los mismos resultados, entonces sé que esta persona puede no solo piensa en un problema sino que es lo suficientemente flexible como para pensar en múltiples soluciones.
En algunos casos, puede haber una oscura solución de O (n) o incluso O (1) para el problema, pero generalmente no espero que los candidatos lo encuentren inmediatamente en la mayoría de los casos. De hecho, en dos casos diferentes, sospeché que el candidato solo recordaba una solución de memoria cuando lo primero que pusieron en la pizarra fue la solución óptima. Los atrapé a ambos cuando seguí con otra pregunta en un dominio de problema diferente con el que realmente lucharon, a pesar de que la pregunta era sobre el mismo nivel de dificultad.
Entonces, personalmente, no me preocuparía demasiado si no se te ocurren los mejores algoritmos posibles en el acto. Es mucho más importante poder demostrar sus habilidades para resolver problemas, la organización del pensamiento y su capacidad para trabajar junto con las personas para resolver problemas. Siempre puedes optimizar.
Y digo esto sabiendo muy bien que hay muchas personas que lo rechazarían si no lograra encontrar la solución más óptima en una entrevista. Para esas personas, les digo que probablemente se están perdiendo de algunas personas realmente buenas.
(EDITAR) Notó que los detalles se actualizaron mientras escribía mi respuesta. En su mayor parte, mi respuesta sigue siendo válida, pero ha reducido el alcance solo un poco, por lo que quería reconocer eso.
El candidato A, que encuentra una solución menos óptima y trabaja hacia una solución más óptima, muy probablemente obtendría mejores calificaciones de mí que el candidato B, que acaba de encontrar la mejor solución de inmediato. Y la razón de esto es que sospecharía un poco más de que el Candidato B acaba de memorizar una solución, especialmente si llegó a esa solución sin mostrar su trabajo. Por lo tanto, le haría al Candidato B al menos una pregunta más para ver si se está abriendo camino, o si realmente es tan bueno, realmente hay algunas personas que pueden y piensan muy rápido y son realmente buenas. para llegar a soluciones óptimas en sus pies. Sin embargo, son relativamente raros, y mi experiencia ha sido que la mayoría de las veces, están engañando de alguna manera. Por lo general, no es demasiado difícil descubrir qué está sucediendo.