Saltar al contenido
leer-codigo.en · devschool

Leer código en voz alta en inglés

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

En esta lección
  1. Dos formas de leer: literal y natural
  2. Asignaciones
  3. Comparaciones y condiciones
  4. Llamadas a funciones
  5. Bucles
  6. Listas y objetos
  7. Leer SQL
  8. Leer una función real, de principio a fin
  9. Errores frecuentes
  10. Resumen

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: “console dot log open 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ódigoLectura literalLectura natural
const price = 20;const price equals twenty, semicolonWe declare a constant called price and set it to twenty
let stock = 5;let stock equal fiveThe variable stock starts at five
stock = stock - 1;stock equals stock minus oneWe decrease stock by one
count += 1;count plus equals oneAdd 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:

OperadorSe leeEjemplo
>is greater thanage > 18
<is less thanage < 65
>=is greater than or equal toage >= 18
<=is less than or equal toage <= 12
== / ===equals / is equal to (strictly equal)a === b
!= / !==is not equal toa !== b
&& / andanda && b
|| / orora || b
! / notnot!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:

FraseSignificado
if it's truesi es verdadero
if it's falsesi es falso
in that caseen ese caso
otherwise / elsesi no
else ify si no, si…
unlessa 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 double with four” (llama a double con 4).
  • “double of four” (como en matemáticas: doble de 4).
function double(n) { return n * 2; }
console.log(double(4)); // 8
CódigoLectura literalLectura natural
double(4)double, open parenthesis, four, close parenthesiscall double with four
console.log(x)console dot log of xlog x to the console
user.getName()user dot get name, open close parenthesisget the user’s name
add(2, 3)add of two comma threeadd two and three
list.push(x)list dot push of xpush 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ódigoSe lee
["red", "green"]an array with two strings: red and green
colors[0]colors at index zero / the first element of colors
colors.lengththe length of colors
{ name: "Ana" }an object with a property called name, whose value is Ana
user.nameuser 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íneaSe leeSignificado
SELECT name, priceselect name and priceselecciona nombre y precio
FROM productsfrom productsde la tabla products
WHERE stock > 0where stock is greater than zerodonde el stock sea mayor que cero
ORDER BY price DESCorder by price, descendingordenado por precio, de mayor a menor
LIMIT 2limit twomá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 while como /ual/ o /güail/. Es /uail/, con u corta.
  • Leer i++ como “i más más”. En inglés se dice “i plus plus” o “increment i”.
  • Decir equals para 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 else como “otro”. Es “si no” o “en caso contrario”.

Resumen

EstructuraSe lee
x = 5x equals five / set x to five
a > ba is greater than b
a && ba and b
f(x)f of x / call f with x
return xreturn x / the function returns x
if (c) { }if c, then…
elseotherwise
for (...)for each… / for i from…
while (c)while c is true
SELECT ... FROM ... WHEREselect… 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

[Inglés] ¿Cómo se lee en lenguaje natural esta condición?
if (age >= 18 && age < 65)

[Inglés] ¿Cómo se lee este bucle de Python?
for name in names:
    print(name)

[Inglés] En SQL, ¿cómo se lee ORDER BY price DESC?

[Inglés] ¿Qué significa i++ cuando se lee en voz alta?

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