Cómo preparar una entrevista técnica de programación
En una entrevista técnica necesitas hacer visible tu razonamiento, además de escribir código o dibujar una arquitectura. Prepara una forma de aclarar el problema, comparar alternativas y comprobar tu solución. Estos pasos sirven para ensayar tanto programación como diseño de sistemas.
1. Aclara el problema antes de resolverlo
Repite con tus palabras qué debe hacer la solución. Identifica entradas, salidas y restricciones. Pregunta por el volumen de datos, si el orden importa y qué ocurre con entradas vacías o inválidas. Distingue los requisitos que te dieron de los supuestos que estás proponiendo.
En diseño de sistemas, pregunta qué funciones son necesarias y qué importa más: latencia, disponibilidad, consistencia o costo. No elijas una base de datos o una cola antes de entender qué problema resuelve.
«Para confirmar: necesitamos devolver el primer valor repetido según el orden de entrada. ¿Qué devolvemos si no hay repetidos? ¿Podemos usar memoria adicional?»
2. Explica una solución sencilla y sus límites
Empieza por un enfoque que puedas defender. Después explica qué cambiarías si una restricción lo exige. Para encontrar un duplicado, comparar cada elemento con los anteriores suele requerir tiempo cuadrático; usar un conjunto permite consultar los valores vistos en tiempo constante promedio, a cambio de memoria adicional.
Especifica tus supuestos: ese tiempo promedio depende de la implementación del conjunto y no describe todos los casos posibles. Si debes conservar posiciones, quizá necesites un mapa en lugar de un conjunto. Si la entrada ya está ordenada, comparar elementos vecinos ofrece otra alternativa.
En una arquitectura, dibuja primero el recorrido de una petición. Añade caché, colas o réplicas cuando puedas explicar qué necesidad atienden y qué problema nuevo introducen.
3. Comprueba casos concretos antes de terminar
Recorre a mano una entrada pequeña y di qué estado cambia en cada paso. Para el ejemplo del duplicado, ensaya una lista vacía, un único elemento, una lista sin repetidos y otra donde el repetido aparece al final. Pregunta si se permiten valores nulos antes de decidir cómo tratarlos.
- ¿La salida coincide con el requisito que confirmaste?
- ¿Cambiaste accidentalmente el orden o los datos de entrada?
- ¿Puedes justificar el tiempo y la memoria que usa tu solución?
- ¿Qué ocurre si falla una dependencia o llega la misma petición dos veces?
La última pregunta resulta especialmente útil en diseño de sistemas. Explica cómo detectarías un fallo y qué puede recuperarse; no des por hecho que reintentar siempre es seguro.
4. Ensaya cómo comunicar una decisión
Elige un ejercicio y explica en voz alta requisitos, enfoque, comprobación y alternativas. Si te bloqueas, vuelve al último paso que entendías y describe lo que falta. Es más útil plantear una duda concreta que cambiar de solución sin explicar por qué.
Para preguntas sobre proyectos, prepara una historia real: qué restricción tenías, qué decisión tomaste tú, qué alternativa descartaste y qué aprendiste. No uses una cifra si no puedes sostenerla.
Si la entrevista será en inglés, practica expresiones como “The trade-off is…” y “This assumes that…”. La guía para entrevistas de trabajo en inglés incluye una presentación y frases para pedir aclaraciones.
5. Usa la asistencia de IA con criterio
PasaRonda ofrece ayuda para entrevistas técnicas: puedes adjuntar una captura del enunciado y recibir un enfoque, alternativas y diagramas después de las claves breves. La captura se envía solo cuando eliges hacerlo; revisa que no incluya información ajena al ejercicio.
Comprueba cada supuesto y cada paso antes de usar una sugerencia. La IA no certifica que el código sea correcto ni reemplaza tus conocimientos. Confirma qué herramientas permite la entrevista y usa la guía también para practicar sin asistencia.