Desglosando: cómo abordar cualquier problema de entrevista técnica

Una receta segura para descubrir cómo hacer que cualquier problema sea más manejable.

1. Cuando reciba la pregunta (antes de escribir una sola línea de código)

La forma más fácil de asegurarse de comprender la pregunta es recorrer los casos de prueba.

Cosas para aclarar con su entrevistador:
¿Cuál es la entrada esperada? cual es la salida esperada?
Cualquier suposición que pueda tener sobre ciertos casos de prueba

Después de recorrer los casos de prueba, tome nota de las variables de las que debe realizar un seguimiento y de qué tipo de estructuras de datos tendrían más sentido para este problema.

Siempre piense en formas en que puede resolver el problema. ¿Hay un subproblema más pequeño y fácil que pueda resolver? Y si es así, ¿cómo sería esa solución?

2. Escribir el código (y qué hacer si te quedas atascado)

Después de descubrir su algoritmo y explicar su lógica, lo siguiente que debe hacer es traducir su idea en código.

En este punto, la fuerza bruta está totalmente bien. Crear una solución de trabajo (incluso si su tiempo de ejecución y eficiencia de espacio no son perfectos) es mucho mejor que quedarse atascado en tratar de optimizar su código prematuramente.

Mientras escribe su código, recuerde:

  1. Hable claramente sobre el código en el que está trabajando actualmente y por qué lo está agregando a su solución
  2. Intente usar nombres de variables obvios y haga que su código sea fácil de leer
  3. Hable con su entrevistador a través de su proceso de pensamiento y qué pros y contras podrían venir con su solución
  4. Haga su código modular cuando sea posible (¡las funciones de ayuda son sus amigos!)

Sobre manejar ese silencio incómodo si te quedas atascado o necesitas algo de tiempo para pensar ...

Nos sucede a todos, y es perfectamente normal encontrar esto durante una entrevista. En mi experiencia, para casi todas mis entrevistas técnicas llega un momento en que necesito pensar para mí mismo y no puedo seguir hablando con el entrevistador. Cuando esto sucede, suelo decir algo como:

Necesito un segundo para pensar en mi solución y ver si tiene sentido
No estoy completamente seguro de si este es el enfoque correcto, permítanme verificar mi trabajo
Parece que tal vez (inserte parte de su solución propuesta) podría no funcionar realmente (inserte un caso extremo) ... Estoy pensando en cómo abordar eso

El entrevistador suele estar de tu lado y quiere verte triunfar; recuerda si te da una pista, ¡nunca lo ignores!

3. Revisando su solución y agregando optimizaciones

Una vez que haya terminado de escribir su código, analícelo con un caso de prueba para asegurarse de que su programa se comporte de la manera esperada.

En este punto, es bueno considerar:

  1. Posibles casos límite que puede haber pasado por alto
  2. Cualquier error por uno (especialmente al indexar o usar un bucle)
  3. ¿Hay alguna repetición en su código que pueda limpiar?

Preguntas que debe hacer al intentar optimizar:

  1. ¿Cuál es el tiempo de ejecución actual y la complejidad del espacio?
  2. ¿Hay margen de mejora si utiliza una estructura de datos diferente o modifica ligeramente su enfoque?

Cuando revise su código, recuerde que es muy posible que haya cometido un error involuntario. ¡Intente rastrear su programa como si fuera el trabajo de otra persona que está viendo por primera vez!

Envolviendo todo

¡Entrevistar es una habilidad y, como cualquier otra habilidad, se puede mejorar con la práctica! Trabajar a través de problemas técnicos, sentirse cómodo con el idioma de su elección y las estructuras de datos puede ser un trabajo que haga de antemano para aumentar sus posibilidades de un buen desempeño durante la entrevista.

Para obtener una lista de preguntas, estructuras de datos y recursos para su revisión, puede ver más aquí: Plan de 4 semanas para clavar su próxima entrevista técnica

Recuerde que cada entrevista es una experiencia de aprendizaje y, independientemente del resultado, ha obtenido información valiosa que no tenía antes. ¡Mantenerse positivo y aprender de los comentarios es una excelente manera de mejorar continuamente! ¡Buena suerte!

Si esta guía pudo ayudarlo de alguna manera, por favor envíe un aplauso o dos :) realmente significa mucho para mí, ¡gracias y buena suerte con su viaje!