Leer código en voz alta en inglés
En esta lección
Cuando explicas un programa a un compañero, haces una revisión de código (code review) o sigues un vídeo en inglés, necesitas decir el código, no solo escribirlo. Leerlo en voz alta tiene una ventaja: te obliga a entenderlo línea por línea. En esta lección aprenderás las fórmulas habituales para leer asignaciones, comparaciones, llamadas a funciones, condiciones y bucles, con ejemplos reales de cinco lenguajes.
Si te faltan los nombres de los símbolos, repasa antes Símbolos y teclado.
Dos formas de leer: literal y natural
Hay dos estilos y los dos son válidos:
- Lectura literal: nombras cada símbolo. Se usa para dictar código a alguien, que lo escriba tal cual: “
consoledotlogopen parenthesis…”. - Lectura natural (o paráfrasis): dices lo que hace en lenguaje normal. Es lo que haces en una reunión: “we log the user to the console”.
Un buen programador cambia de uno a otro según el momento. Practica los dos.
Asignaciones
Una assignment (/asáinment/) guarda un valor en una variable. En inglés se lee como “set” o “equals”.
const price = 20;
let stock = 5;
| Código | Lectura literal | Lectura natural |
|---|---|---|
const price = 20; | const price equals twenty, semicolon | We declare a constant called price and set it to twenty |
let stock = 5; | let stock equal five | The variable stock starts at five |
stock = stock - 1; | stock equals stock minus one | We decrease stock by one |
count += 1; | count plus equals one | Add one to count / increment count |
Los números se dicen como en inglés normal: 20 es twenty, 100 es one hundred, 3.14 es three point one four. Y cuando es un cero decimal, 0.5 se lee zero point five o point five.
En Python, la asignación se ve igual, pero sin const ni ;:
price = 20
stock = 5
is_open = stock > 0 and price < 50
print(is_open) # True
Se lee: “is underscore open equals stock is greater than zero and price is less than fifty”. El guion bajo es underscore y los nombres con él son snake case (/snéik keis/).
Comparaciones y condiciones
Los operadores de comparación se leen casi como en español, pero con nombres cortos:
| Operador | Se lee | Ejemplo |
|---|---|---|
> | is greater than | age > 18 |
< | is less than | age < 65 |
>= | is greater than or equal to | age >= 18 |
<= | is less than or equal to | age <= 12 |
== / === | equals / is equal to (strictly equal) | a === b |
!= / !== | is not equal to | a !== b |
&& / and | and | a && b |
|| / or | or | a || b |
! / not | not | !isOpen |
Con eso puedes leer una condición completa:
const stock = 5;
const price = 20;
const isOpen = stock > 0 && price < 50;
console.log(isOpen); // true
“isOpen is stock greater than zero and price less than fifty”. La palabra truthy (/zrúzi/, “que se evalúa como verdadero”) y falsy (/fólsi/) aparecen en JavaScript para valores como 0, "" o null.
La estructura if / else
Un if se lee: “if the condition, then do this. Otherwise (or else) do that.”
int stock = 5;
String name = "Ana";
if (stock > 0 && name.equals("Ana")) {
System.out.println("In stock");
} else {
System.out.println("Sold out");
}
// In stock
Lectura natural: “If stock is greater than zero and the name equals Ana, print ‘In stock’. Otherwise, print ‘Sold out’.”
En Java verás equals como método: name.equals("Ana") se lee “name dot equals Ana”. Es la manera de comparar textos.
Frases útiles al comentar un if:
| Frase | Significado |
|---|---|
if it's true | si es verdadero |
if it's false | si es falso |
in that case | en ese caso |
otherwise / else | si no |
else if | y si no, si… |
unless | a menos que (no existe como palabra del lenguaje en JS, pero se dice) |
Llamadas a funciones
Una function call (/fánkshon col/) se lee con el nombre y los argumentos. Hay dos fórmulas:
- “call
doublewith four” (llama adoublecon 4). - “
doubleof four” (como en matemáticas: doble de 4).
function double(n) { return n * 2; }
console.log(double(4)); // 8
| Código | Lectura literal | Lectura natural |
|---|---|---|
double(4) | double, open parenthesis, four, close parenthesis | call double with four |
console.log(x) | console dot log of x | log x to the console |
user.getName() | user dot get name, open close parenthesis | get the user’s name |
add(2, 3) | add of two comma three | add two and three |
list.push(x) | list dot push of x | push x onto the list |
Cuando una función devuelve algo, se dice que returns (/ritérns/): “the function returns the double of n”. Y las cosas que le pasas se llaman arguments, como ya sabes de Vocabulario básico.
En Python, una definición se lee así:
def double(n):
return n * 2
print(double(4)) # 8
“Define a function called double, which takes n. It returns n times two. Then print double of four.” Observa la palabra times (/táims/) para la multiplicación: “n times two”. Para la división se dice divided by (/diváidid bai/).
Y en PHP, una función similar:
function double_it(int $n): int {
return $n * 2;
}
echo double_it(4); // 8
“Function double_it takes an integer n and returns an integer. Return n times two.” El signo $ se lee dollar sign (o simplemente “dollar”).
Bucles
Un loop (/lup/) repite código. Los verbos clave son repeat, iterate y loop over. Hay dos formas típicas:
for
for (let i = 0; i < 3; i++) {
console.log(i);
}
// 0
// 1
// 2
Lectura natural: “For i starting at zero, while i is less than three, increasing i by one each time, log i.” En literal: “for, open parenthesis, let i equals zero, semicolon, i is less than three, semicolon, i plus plus, close parenthesis”.
La variable i se llama index o counter (/káunter/).
for…of / for…in
const names = ["Ana", "Luis"];
for (const n of names) {
console.log(n);
}
// Ana
// Luis
“For each name of the names array, log the name.” La fórmula for each (/for ich/) es la forma más natural de expresarlo.
En Python:
for i in range(3):
print(i) # 0, 1, 2
names = ["Ana", "Luis"]
for name in names:
print(name) # Ana, Luis
“For i in range three, print i. For name in names, print name.” Aquí in significa “dentro de”.
while
count = 0
while count < 2:
count += 1
print(count) # 2
“While count is less than two, increase count by one. Then print count.” While (/uail/) significa “mientras”.
Para decir que un bucle se detiene usan break (/bréik/, “romper” o “salir”) y para saltar a la siguiente vuelta continue (/kontíniu/).
Listas y objetos
Los literals (/lítrals/, valores escritos directamente) de listas y objetos tienen sus propias fórmulas:
const colors = ["red", "green"];
const user = { name: "Ana", age: 30 };
| Código | Se lee |
|---|---|
["red", "green"] | an array with two strings: red and green |
colors[0] | colors at index zero / the first element of colors |
colors.length | the length of colors |
{ name: "Ana" } | an object with a property called name, whose value is Ana |
user.name | user dot name / the name of the user |
user["name"] | user at the key name |
En PHP, un array asociativo usa =>: ['name' => 'Ana'] se lee “an array where name maps to Ana”, y maps to (/maps tu/) significa “se asocia con”. Mira el ejemplo:
$user = ['name' => 'Ana'];
echo $user['name']; // Ana
“user is an array. Echo user at the key name.”
Leer SQL
SQL se lee casi como una frase en inglés, y por eso es el lenguaje más fácil de pronunciar:
SELECT name, price
FROM products
WHERE stock > 0
ORDER BY price DESC
LIMIT 2;
| Línea | Se lee | Significado |
|---|---|---|
SELECT name, price | select name and price | selecciona nombre y precio |
FROM products | from products | de la tabla products |
WHERE stock > 0 | where stock is greater than zero | donde el stock sea mayor que cero |
ORDER BY price DESC | order by price, descending | ordenado por precio, de mayor a menor |
LIMIT 2 | limit two | máximo dos filas |
Frase completa: “Select the name and price from products where stock is greater than zero, ordered by price descending, limit two.” Con los datos de ejemplo de una tienda, devuelve [('Tent', 89.5), ('Boots', 60.0)].
Otras palabras de SQL que debes saber leer: INSERT INTO (insert into), VALUES (values), UPDATE ... SET (update… set), DELETE FROM (delete from), JOIN (join), GROUP BY (group by), COUNT(*) (count of star, o “count all”).
Leer una función real, de principio a fin
Ahora todo junto. Lee esta función de JavaScript:
function getAdults(people) {
return people.filter(person => person.age >= 18);
}
const people = [{ name: "Ana", age: 20 }, { name: "Leo", age: 15 }];
console.log(getAdults(people)); // [ { name: 'Ana', age: 20 } ]
Lectura natural: “We define a function called getAdults. It takes a list called people. It returns the people filtered so that only those whose age is greater than or equal to eighteen stay. Then we create a list of two people, Ana, twenty, and Leo, fifteen. We log the result of calling getAdults with people. The output is one object: Ana.”
Si consigues decir algo así de forma fluida, estás en el nivel adecuado para participar en cualquier revisión de código.
Errores frecuentes
- Leer
=como “es igual”. Una asignación es “set” o “equals”; una comparación===es “is strictly equal to”. Distinguirlas ayuda a entender el código y a detectar errores. - Decir “foreach” como una palabra. Se separa: “for each” (/for ich/).
- Pronunciar
whilecomo /ual/ o /güail/. Es /uail/, conucorta. - Leer
i++como “i más más”. En inglés se dice “i plus plus” o “increment i”. - Decir
equalspara todo. Para==y===se puede decir equals, pero en una conversación técnica conviene diferenciar: “double equals” y “triple equals” o “strictly equal”. - Traducir
elsecomo “otro”. Es “si no” o “en caso contrario”.
Resumen
| Estructura | Se lee |
|---|---|
x = 5 | x equals five / set x to five |
a > b | a is greater than b |
a && b | a and b |
f(x) | f of x / call f with x |
return x | return x / the function returns x |
if (c) { } | if c, then… |
else | otherwise |
for (...) | for each… / for i from… |
while (c) | while c is true |
SELECT ... FROM ... WHERE | select… from… where… |
Siguiente paso: aprender a elegir buenos nombres para variables y funciones en Nombrar en inglés.
Pon a prueba lo que has aprendido
¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.