Saltar al contenido
ejercicios.en · devschool

Ejercicios de inglés para programar

Lección 23 de 23 · 11 min de lectura · Actualizado el

En esta lección
  1. Nivel 1: vocabulario y errores
  2. Nivel 2: nombrar y escribir
  3. Nivel 3: comunicar
  4. Nivel 4: trabajo y empleo
  5. Errores frecuentes
  6. Resumen

Esta lección pone a prueba todo el curso con quince ejercicios graduados, de los más fáciles a los más completos. Hay errores reales para traducir, nombres de variables que corregir, commits que escribir, un fragmento de documentación que leer, falsos amigos, pronunciación y frases de equipo y de entrevista. Intenta resolver cada uno antes de abrir la solución, escribiendo la respuesta (aunque sea en un papel). Si dudas de una palabra, repasa la lección correspondiente, que se indica en cada ejercicio.

Consejo: muchas respuestas tienen más de una versión correcta. Si tu solución dice lo mismo con otras palabras, está bien.

Nivel 1: vocabulario y errores

Ejercicio 1: traducir un error de JavaScript

Esta es la salida de la consola. Explica en español qué ha pasado y qué debes revisar. (Lección: Mensajes de error).

ReferenceError: totl is not defined
Ver solución

“Error de referencia: totl no está definido”. Estás usando una variable llamada totl que no existe en ese punto del programa. Casi seguro es una errata de total (o una variable declarada en otro ámbito). Revisa cómo se escribió el nombre al declararla.

Ejercicio 2: traducir un error de Python

Traduce y explica este mensaje de Python:

TypeError: can only concatenate str (not "int") to str
Ver solución

“Error de tipo: solo se puede concatenar str (no int) con str”. Estás intentando sumar un texto y un número con +, por ejemplo "Edad: " + 25. Convierte el número con str(25) o, mejor, usa una f-string: f"Edad: {25}".

Ejercicio 3: códigos de estado

Une cada situación con su código y su texto en inglés. Hay un código que sobra.

  1. La URL que has escrito no existe.
  2. El servidor ha fallado por un error en su código.
  3. Has creado un recurso con un POST.
  4. Has iniciado sesión, pero no tienes permiso para esa página.
  5. Todo ha ido bien.

Códigos: 200 OK, 201 Created, 301 Moved Permanently, 403 Forbidden, 404 Not Found, 500 Internal Server Error.

Ver solución
  1. 404 Not Found
  2. 500 Internal Server Error
  3. 201 Created
  4. 403 Forbidden
  5. 200 OK

Sobra 301 Moved Permanently (redirección permanente). Recuerda: 4xx es un problema de la petición y 5xx es del servidor. Más en Vocabulario web.

Ejercicio 4: errores de base de datos

Lee estos tres mensajes de SQLite y di qué le pasa a cada consulta. (Lección: Vocabulario de datos).

IntegrityError: UNIQUE constraint failed: users.email
OperationalError: no such column: nombre
IntegrityError: FOREIGN KEY constraint failed
Ver solución
  1. “Falló la restricción de unicidad en users.email”: intentas insertar un correo que ya existe en la tabla users.
  2. “No existe la columna nombre”: el nombre de la columna es otro (quizá name) o falta crearla.
  3. “Falló la restricción de clave foránea”: apuntas a una fila de otra tabla que no existe (por ejemplo, un user_id sin usuario).

Nivel 2: nombrar y escribir

Ejercicio 5: nombres de variables y funciones

Estos nombres rompen las convenciones del inglés técnico. Corrígelos en JavaScript (variables y funciones en camelCase, booleanos con is/has, funciones con verbo). (Lección: Nombrar en inglés).

let usuarioNombre = "Ana";
let loggedin = true;
function user(id) { /* devuelve un usuario */ }
let list = [];       // lista de productos del carrito
function dataProcess() { /* guarda el formulario */ }
const MaxIntentos = 3;
Ver solución
let userName = "Ana";            // inglés y camelCase
let isLoggedIn = true;           // booleano: is + adjetivo
function getUser(id) { /* ... */ }   // función = verbo + nombre
let cartProducts = [];           // nombre descriptivo, en plural
function saveForm() { /* ... */ }    // verbo primero: "save form"
const MAX_ATTEMPTS = 3;          // constante en mayúsculas con guion bajo

Reglas: todo en inglés, funciones con verbo, listas en plural y booleanos que se leen como una pregunta (isLoggedIn: ¿está conectado?).

Ejercicio 6: escribir un commit

Has cambiado price.js para que el descuento no pueda ser negativo, y has añadido una prueba. Escribe un mensaje de commit en inglés, en imperativo, de menos de 50 caracteres, con prefijo fix:. (Lección: Git y commits).

Ver solución
fix: prevent negative discount in price calculation

Es imperativo (prevent, no prevented), cabe en 50 caracteres y dice qué hace el commit. También valdría fix: reject negative discounts o fix: validate discount value. Evita fixed stuff o changes.

Ejercicio 7: leer documentación

Lee este fragmento (inventado, con el estilo de una documentación real) y contesta en español: ¿qué devuelve la función si el texto no se puede convertir? ¿Qué pasa con los espacios? (Lección: Leer documentación).

toNumber(text, [defaultValue])

Converts a string to a number.

Parameters
  text         string   The string to convert. Leading and trailing
                        whitespace is ignored.
  defaultValue number   Optional. The value returned if the string
                        cannot be converted. Defaults to NaN.

Returns
  number  The converted number, or defaultValue if the conversion fails.

Throws
  TypeError if text is not a string.

Example
  toNumber(" 42 ");        // 42
  toNumber("abc", 0);      // 0
  toNumber(7);             // throws TypeError
Ver solución
  • Si el texto no se puede convertir, devuelve defaultValue; si no se indica, ese valor es NaN (“Defaults to NaN”).
  • Los espacios al principio y al final se ignoran (" 42 " da 42).
  • Si le pasas algo que no es un string, lanza un TypeError.

Pistas de lectura: [defaultValue] entre corchetes y Optional indican parámetro opcional; Returns dice lo que devuelve y Throws, qué errores lanza.

Nivel 3: comunicar

Ejercicio 8: falsos amigos

Elige la palabra correcta en cada frase. (Lección: Falsos amigos).

  1. The server is (actually / currently) running version 4. (actualmente)
  2. Never log (sensible / sensitive) data like passwords.
  3. Did you (assist / attend) the meeting? (¿asististe?)
  4. I (realized / did) the migration yesterday. (realicé)
  5. Use a (library / bookstore) to format dates.
Ver solución
  1. currently: actually significa “en realidad”.
  2. sensitive: datos delicados. Sensible es “sensato”.
  3. attend: assist es “ayudar”.
  4. did: realized es “me di cuenta”.
  5. library: es la biblioteca de código.

Ejercicio 9: mejorar una búsqueda

Quieres resolver este error. Escribe la mejor búsqueda posible para Google: (Lección: Buscar soluciones).

Traceback (most recent call last):
  File "C:\Users\ana\proyecto\main.py", line 8, in <module>
    print(data["x"])
KeyError: 'x'
Ver solución
python KeyError dictionary key not found

Mejor aún, con comillas si tu variable es genérica: "KeyError" python dictionary get default value. Quitamos la ruta (C:\Users\ana...), el nombre del archivo, el número de línea y el nombre data["x"], y mantenemos el lenguaje y el tipo de error. Un resultado probable explica dict.get("x") o "x" in data.

Ejercicio 10: título de una pregunta

Tu página muestra una pantalla en blanco cuando la API devuelve un 500 y no sabes por qué. Reescribe este título malo: Help my page doesn't work. (Lección: Preguntar en foros).

Ver solución
[JavaScript] Page stays blank when fetch receives a 500 response

Incluye lenguaje, síntoma y cuándo ocurre. Otras opciones válidas: fetch returns 500 and my page shows nothing: how do I handle the error?. El título debe ser concreto y buscable.

Ejercicio 11: siglas y jerga

Traduce esta conversación de un PR a español natural. (Lección: Siglas y jerga).

A: WIP: refactor the legacy login. TL;DR: removes duplicated code.
B: nit: rename `tmp` to `token`. Otherwise LGTM.
A: Thanks! KISS, as always. Merging after QA.
Ver solución
  • A: “En curso: refactorizar el login antiguo. Resumen: elimina código duplicado.”
  • B: “Detalle menor: cambia tmp por token. Por lo demás, me parece bien.”
  • A: “¡Gracias! Hazlo simple, como siempre. Lo fusiono tras las pruebas de calidad.”

(WIP = work in progress; legacy = código antiguo heredado; LGTM = looks good to me; QA = control de calidad.)

Ejercicio 12: pronunciación y deletreo

(a) Escribe, con letras españolas, cómo se dicen en inglés: cache, Git, height, Linux, query. (b) Deletrea en inglés ana.dev@example.com. (Lección: Pronunciación).

Ver solución

(a) cache /cásh/, Git /guit/, height /jáit/, Linux /línuks/, query /cuíri/.

(b)

A - N - A, dot, D - E - V, at, E - X - A - M - P - L - E, dot, com.

Se pronuncian: /éi-en-éi dot di-í-vi at ig-sám-pol dot com/. Recuerda: E se dice /i/ y A se dice /éi/.

Nivel 4: trabajo y empleo

Ejercicio 13: el daily standup

Prepara tu intervención en inglés con estos datos: ayer terminaste la página de inicio y abriste un PR; hoy empezarás el formulario de contacto; estás esperando la revisión del PR, así que tienes un bloqueo leve. (Lección: Trabajo en equipo).

Ver solución
Yesterday I finished the home page and opened a PR.
Today I'm going to start the contact form.
I'm a little blocked: I'm waiting for a review of my PR, so if anyone
has time, I'd really appreciate it.

Pasado simple para lo hecho (finished, opened), going to para el plan y I'm waiting for para el bloqueo. Evita I have a doubt (se dice I have a question).

Ejercicio 14: una línea de CV

Convierte esta frase en una línea de CV en inglés, sin “I”, con verbo de acción y un dato: “Hice una web de un gimnasio con horarios; la hice adaptable a móvil y la publiqué en GitHub Pages”. (Lección: Ofertas y CV).

Ver solución
Built a responsive gym timetable website with HTML, CSS and JavaScript;
deployed it on GitHub Pages.

Empieza por un verbo en pasado (Built, Deployed) y nombra tecnologías. Una variante con dato: Improved mobile usability, with the layout working from 360px width.

Ejercicio 15: pensar en voz alta

Te piden en una entrevista: “write a function that counts how many times the letter a appears in a text”. Escribe qué dirías en inglés antes de programar (entender, ejemplo y plan) y el código en JavaScript. (Lección: Entrevistas técnicas).

Ver solución
So I need a function that takes a text and returns how many times "a" appears.
Let me ask: should it count uppercase "A" too?
For example, with "banana" the answer is 3.
My plan is to go through each character and add one to a counter
when the character is "a". At the end, I return the counter.
function countA(text) {
  let count = 0;
  for (const char of text.toLowerCase()) {  // handle uppercase too
    if (char === "a") count++;
  }
  return count;
}

console.log(countA("banana")); // 3
console.log(countA("Alba"));   // 2

Después puedes decir: Let me test it with "banana": it returns 3. With an empty string, it returns 0. The time complexity is O(n). Lo importante es preguntar, dar un ejemplo, explicar el plan y probar.

Errores frecuentes

  • Traducir palabra por palabra. Primero entiende la idea y luego busca las palabras.
  • Copiar la solución sin intentarlo. El aprendizaje está en equivocarte.
  • Ignorar la pronunciación. Di las respuestas en voz alta, no solo las escribas.
  • Fiarte de un traductor automático con el código. Puede traducir nombres de funciones.
  • Quedarte con una sola forma de decir algo. Practica dos variantes.
  • Abandonar tras el primer fallo. Vuelve a la lección y repite el ejercicio dos días después.

Resumen

EjercicioHabilidadLección
1-2Leer errores de JavaScript y PythonMensajes de error
3Códigos de estadoVocabulario web
4Errores de SQLVocabulario de datos
5-6Nombrar y escribir commitsNombrar / Git y commits
7Leer documentaciónLeer documentación
8Falsos amigosFalsos amigos
9-10Buscar y preguntarBuscar soluciones / Preguntar
11Siglas y jergaSiglas y jerga
12Pronunciación y deletreoPronunciación
13-15Equipo, CV y entrevistaTrabajo en equipo / Ofertas y CV / Entrevistas

Con esto terminas el curso. Vuelve a Inglés para programar cuando quieras repasar, y sigue practicando con documentación y proyectos reales.

Pon a prueba lo que has aprendido

[Inglés] ¿Qué te dice este error?
ReferenceError: totl is not defined

[Inglés] ¿Qué nombre sigue las convenciones del inglés técnico para un booleano que dice si el usuario está conectado?

[Inglés] ¿Qué mensaje de commit es mejor?

[Inglés] Un error dice: IntegrityError: FOREIGN KEY constraint failed. ¿Qué puede ser?

¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.