Quien hace entrevistas en su segundo idioma rara vez falla en el código. Falla en el silencio: dos minutos escribiendo sin decir nada, o una solución al problema equivocado por no preguntar. El entrevistador solo puede puntuar lo que oye. Esta guía trata de hacer audible tu razonamiento, con un inglés sencillo.
01Qué escucha el entrevistador
En la mayoría de las entrevistas de código, la comunicación forma parte de la nota. Los consejos de Microsoft para entrevistas técnicas y los de Google piden explicar el razonamiento y hacer preguntas de aclaración. En la práctica, suelen buscar cuatro cosas:
Aclarar
Compruebas el problema antes de resolverlo.
Planificar
Explicas el enfoque antes de programar.
Compromisos
Dices por qué lo eliges y qué cuesta.
Probar
Revisas tu código con ejemplos y casos límite.
Nada de esto exige un inglés avanzado. Las frases cortas y claras funcionan mejor que las largas y perfectas.
02Aclara antes de programar
Dedica los dos o tres primeros minutos a acordar qué vas a resolver. Se espera que lo hagas, y además te da tiempo para pensar.
- Reformula el problema con tus palabras: “So we need to…”
- Pregunta por la entrada: tamaño, tipo, valores vacíos, duplicados, negativos.
- Pregunta por las restricciones: tiempo o memoria, y si vale primero una solución sencilla.
- Acordad un ejemplo pequeño y su resultado esperado.
Si no entiendes una palabra del enunciado, pregunta. “Sorry, what do you mean by a ‘stable’ sort here?” es una buena pregunta, no una debilidad.
03Piensa en voz alta sin divagar
Pensar en voz alta no es narrar cada tecla. Di tus decisiones, no lo que tecleas.
Usa señales sencillas para que te sigan: “First…”, “Next…”, “The tricky part is…”, “Now I’m handling the edge case where…”. Si necesitas silencio para pensar, dilo: “Give me thirty seconds to think about this.”
04Di el código y la complejidad en voz alta
Mucha gente domina Big-O pero nunca lo ha dicho en inglés. Practica estas formas hasta que te salgan solas:
| Escrito | Dicho |
|---|---|
| O(1) | “constant time” · “O of one” |
| O(n) | “linear time” · “O of n” |
| O(n log n) | “O of n log n” |
| O(n²) | “O of n squared” · “quadratic” |
| arr[i] | “array at index i” · “the i-th element” |
| i++ | “increment i” |
| != | “not equal to” |
| null / None | “null” · “none” · “if it’s empty” |
Justifica cada elección con “because”: “I’m using a set because I only need to know whether I’ve seen the value.” Y nombra el coste: “The trade-off is extra memory.”
05Cuando te bloqueas
Bloquearse es normal; lo que perjudica es quedarse callado o disculparse por tu inglés. A menudo quieren ver cómo te recuperas.
- Vuelve al ejemplo y recórrelo a mano, en voz alta.
- Nombra el problema: “The issue is that I’m visiting nodes twice.”
- Ofrece dos opciones y pregunta qué dirección prefieren.
- Acepta una pista con naturalidad: “That helps, thank you. So if I…”
06Diseño de sistemas en inglés
Las rondas de diseño de sistemas son sobre todo conversación, así que la estructura importa más que el vocabulario. Sigue siempre el mismo orden:
Requisitos
Funcionales y no funcionales: usuarios, escala, latencia, consistencia.
Estimaciones
Números aproximados: peticiones por segundo, almacenamiento al año.
Visión general
Los componentes principales y cómo fluyen los datos.
En detalle
Uno o dos componentes a fondo, elegidos con el entrevistador.
Compromisos
Qué cambiarías con diez veces más carga y qué podría fallar.
Di el compromiso antes de que te lo pregunten: “I’d accept eventual consistency for the feed, because a few seconds of delay is fine for users.”
07Frases para cada fase
| Fase | Frases |
|---|---|
| Reformular el problema | “Just to make sure I understand: we get a list of transactions, and we need the top three customers by total spend?” |
| Preguntas de aclaración | “Can the input be empty?” · “Are the values always positive?” · “Roughly how large can n get?” · “Should I optimise for time or memory?” |
| Explicar el plan | “Let me walk through a small example first.” · “My plan is: first…, then…, and finally….” |
| Elecciones y compromisos | “I’m choosing a hash map here because lookups are constant time.” · “The trade-off is extra memory.” |
| Probar el código | “Let me test this with the edge cases: an empty list, one element, and duplicates.” · “I think there’s an off-by-one here; let me check.” |
| Cuando te bloqueas | “Let me think about this for a moment.” · “Could I talk through two options and get your view?” · “Would a hint be okay here?” |
| Diseño de sistemas | “Before I design anything, can we agree the requirements?” · “Let me estimate the load first.” · “The bottleneck here is likely the database writes.” |
| Cuando no has entendido algo | “Sorry, could you repeat the last part?” · “Do you mean X or Y?” |
| En lugar de | Prueba |
|---|---|
| “I will do the for.” | “I’ll loop through the list.” |
| “This is more fast.” | “This is faster.” · “This scales better.” |
| “I don’t know.” | “I haven’t used that, but here’s how I’d approach it.” |
| “Wait. Wait. Wait.” | “Give me a moment to think this through.” |
| “It’s finished.” | “I think this works. Let me test it with a couple of cases.” |
08Ejemplo: los primeros diez minutos de una entrevista de código
Una transcripción inventada de un problema clásico. Lee en voz alta la parte del candidato y fíjate en el poco inglés complejo que necesita.
Two Sum, explicado en voz alta
Interviewer: Given an array of integers and a target, return the indices of two numbers that add up to the target.
Candidate: Okay. Just to check: can I assume there’s exactly one solution? And can I use the same element twice?
Interviewer: Exactly one solution, and no, not the same element.
Candidate: Got it. Let me try a small example: two, seven, eleven, fifteen, with target nine. The answer is indices zero and one.
Candidate: The obvious approach is to check every pair. That’s O of n squared. I think we can do better with a hash map: as I go through the array, I store each number and its index, and for each new number I check whether target minus that number is already in the map.
Interviewer: Sounds good. What’s the complexity?
Candidate: One pass, so linear time, and linear extra memory for the map. If memory were tight, I could sort and use two pointers, but then I’d lose the original indices unless I store them. Shall I go with the hash map?
Interviewer: Yes, go ahead.
Candidate: [after coding] Let me test it. With the example, at seven the complement is two, which is in the map at index zero, so it returns zero and one. Now an edge case: negative numbers work the same way. And if the array has two elements, it still works.
09Antes de tu ronda técnica
- Reformulo el problema y hago al menos dos preguntas de aclaración.
- Acuerdo un ejemplo pequeño antes de programar.
- Explico mi plan en tres frases antes de teclear.
- Sé decir Big-O y el código habitual en inglés.
- Doy una razón con “because” y nombro el compromiso.
- Pruebo mi código en voz alta con un caso límite.
- Tengo una frase preparada para cuando me bloquee.
