Buscar soluciones a errores en inglés
En esta lección
Un programador no sabe todas las respuestas: sabe buscarlas. Y casi todas las respuestas están en inglés: Stack Overflow, GitHub issues, la documentación oficial, blogs. Esta lección te enseña a convertir un error en una búsqueda eficaz, a leer una respuesta aunque no entiendas cada palabra y a pedir ayuda a una IA con el contexto adecuado, tanto en inglés como en español.
Antes conviene dominar la lectura del error en sí: mira Mensajes de error y el método de depurar JavaScript.
Paso 1: copia el mensaje, no lo traduzcas
El error de partida es el mensaje original en inglés. No lo traduzcas al español y lo busques: nadie lo escribió así. Copia y pega el texto exacto.
Supón que ves esto en la consola:
Uncaught TypeError: Cannot read properties of undefined (reading 'name')
at showUser (app.js:12:24)
Del mensaje completo, lo que importa es la parte que no cambia de un programa a otro:
Cannot read properties of undefined (reading 'name')
Paso 2: quita lo que es solo tuyo
El mensaje contiene cosas de tu proyecto que nadie más tiene. Quítalas, porque hacen que la búsqueda no encuentre nada.
| Quita | Por qué | Ejemplo |
|---|---|---|
| Rutas de archivos | solo existen en tu equipo | C:\Users\ana\proyecto\app.js |
| Nombres de tus variables | son tuyos | showUser, miLista |
| Números de línea y columna | cambian en cada código | app.js:12:24 |
| Nombres de usuario, contraseñas, tokens | privados, nunca los pegues | sk_live_... |
| Identificadores de objetos | únicos | 0x7ffee3b2 |
Y conserva:
| Mantén | Por qué |
|---|---|
| El tipo de error | TypeError, SyntaxError, KeyError… |
| La frase fija del mensaje | es lo que todos ven |
| El lenguaje o la herramienta | javascript, python, react, mysql |
| La versión, si importa | node 22, php 8.4 |
Una búsqueda buena sería:
javascript TypeError Cannot read properties of undefined (reading 'name')
Mejor aún si añades el contexto en el que aparece: react, fetch, array.map.
Cuidado: nunca pegues claves de API, contraseñas ni datos personales en un buscador, un foro o una IA. Sustitúyelos por
YOUR_API_KEYo***.
Paso 3: comillas y operadores de búsqueda
Google tiene trucos que ahorran mucho tiempo:
| Truco | Qué hace | Ejemplo |
|---|---|---|
"comillas" | busca la frase exacta | "is not a function" |
-palabra | excluye una palabra | python list -tutorial |
site: | busca solo en una web | site:stackoverflow.com |
OR | cualquiera de las dos | fetch OR axios |
* | comodín | "cannot find module *" |
after:2024 | resultados posteriores a una fecha | react hooks after:2024 |
Ejemplos reales:
"UNIQUE constraint failed" sqlite python
"Failed to fetch" fetch cors site:stackoverflow.com
"no such table" sqlite -django
Con comillas se obtienen resultados muy cercanos a tu error; sin ellas, Google reordena y mezcla palabras. Empieza con comillas, y si no sale nada, quítalas.
Consejo: si la primera búsqueda no da buenos resultados, cambia una cosa cada vez: quita una palabra, añade el nombre del framework, prueba sin comillas. Cambiarlo todo a la vez no te enseña qué funcionó.
Palabras útiles para buscar
Para buscar un problema que no es un error literal, necesitas las palabras que se usan en inglés:
| Quieres decir | Busca |
|---|---|
| cómo hacer algo | how to <do something> in JavaScript |
| diferencia entre A y B | difference between let and const |
| qué significa | what does <x> mean in Python |
| mejor manera de | best way to <do something> |
| no funciona | not working, doesn't work, fails |
| se queda en blanco | blank page, empty, nothing happens |
| no se actualiza | not updating, doesn't refresh |
| ejemplo | example, sample |
| tutorial para principiantes | tutorial for beginners |
| alternativa a | alternative to <tool> |
| cómo instalar | how to install <tool> on Ubuntu |
Cuando no sabes cómo se llama algo, descríbelo: "button stays blue after click css". Con el nombre que te devuelvan (:focus, :active), afinas la siguiente búsqueda.
Paso 4: leer una respuesta de Stack Overflow
Stack Overflow es un sitio de preguntas y respuestas. Las páginas tienen siempre la misma estructura:
| Elemento | Inglés | Qué significa |
|---|---|---|
| Título | question | la pregunta |
| Número arriba a la izquierda | votes | votos: cuánta gente la valora |
| Marca verde | accepted answer | la respuesta que el autor dio por buena |
| Texto bajo la respuesta | comments | comentarios, a menudo con avisos importantes |
| Etiquetas | tags | temas (javascript, arrays) |
| Fecha | asked / modified | cuándo se preguntó / editó |
Cómo trabajar una respuesta:
- Comprueba que la pregunta se parece a la tuya: mismo lenguaje, mismo error.
- Mira la fecha. Una respuesta de 2012 sobre jQuery o
varpuede estar anticuada. Mejor las recientes o con muchos votos. - No te quedes solo con la aceptada. A veces hay otra con más votos y más moderna.
- Lee el código antes que el texto. Si lo entiendes, probablemente entiendes la solución.
- Lee los comentarios. Dicen cosas como
This no longer works in version 5(“esto ya no funciona en la versión 5”). - No copies sin entender. Pruébalo en un archivo aparte.
Frases típicas de las respuestas y su traducción:
| Frase | Traducción |
|---|---|
The problem is that... | El problema es que… |
You need to... / You should... | Necesitas… / Deberías… |
Try this: | Prueba esto: |
As of version 5, ... | A partir de la versión 5… |
This is deprecated. | Esto está obsoleto. |
Instead, use ... | En su lugar, usa… |
Note that ... | Ten en cuenta que… |
It depends on ... | Depende de… |
Make sure that ... | Asegúrate de que… |
This works for me. | A mí me funciona. |
Edit: ... | Actualización: … |
Duplicate of ... | Duplicada de… |
As a workaround, ... | Como solución temporal, … |
The accepted answer is outdated. | La respuesta aceptada está anticuada. |
Un ejemplo de respuesta corta, escrita por mí, como las que verás:
The error means that `user` is undefined when you access `user.name`.
Make sure the data has loaded first. You can use optional chaining:
console.log(user?.name);
Note that this only hides the error. You should still find out
why `user` is undefined.
Traducción: el error significa que user está sin definir cuando accedes a user.name. Asegúrate de que los datos se han cargado antes. Puedes usar encadenamiento opcional… Ten en cuenta que esto solo oculta el error. Aun así deberías averiguar por qué user no está definido.
Nota: traducir con el navegador está bien para entender el texto, pero no traduzcas el código. A veces los traductores automáticos cambian nombres de funciones dentro de bloques de código.
Otras fuentes
| Fuente | Cuándo usarla |
|---|---|
| Documentación oficial (MDN, docs.python.org…) | para saber cómo funciona algo de verdad |
| GitHub issues | si el error viene de una librería concreta |
| Release notes / changelog | tras actualizar y que algo se rompa |
| Reddit, Discord, comunidades | para consejos o discusión |
| Blogs y vídeos | para explicaciones largas |
En GitHub, busca en la pestaña Issues con el error entre comillas. Si ves un issue con el mismo mensaje, léelo y mira si hay workaround o si está closed (cerrado, resuelto) u open (abierto, sin resolver). Aprenderás más sobre cómo escribir uno en Preguntar en foros.
Pedir ayuda a una IA
Un asistente de IA puede explicarte un error, proponer una solución o traducirte la documentación. Funciona mucho mejor si le das contexto. Puedes escribir en español: los modelos lo entienden bien. Pero si vas a copiar el resultado en un foro, o quieres practicar, escribe en inglés. Lo importante es la información, no el idioma.
Un buen mensaje tiene cinco partes:
| Parte | Qué incluir |
|---|---|
| Goal (objetivo) | qué quieres conseguir |
| Context (contexto) | lenguaje, versión, framework, qué haces |
| Code (código) | el trozo mínimo relevante |
| Error | el mensaje exacto, completo |
| Tried (qué probaste) | lo que ya has intentado |
Ejemplo en inglés:
I'm learning JavaScript. I want to show the user's name on the page.
I'm using fetch with a public API in the browser (Chrome).
Code:
const res = await fetch("/api/user");
const user = await res.json();
nameEl.textContent = user.name;
Error:
Uncaught TypeError: Cannot set properties of null (setting 'textContent')
I already checked that the API returns data. Can you explain why
nameEl is null and how to fix it? Please explain it simply.
Y el mismo mensaje en español, igualmente bueno:
Estoy aprendiendo JavaScript. Quiero mostrar el nombre del usuario en la página.
Uso fetch en el navegador (Chrome). Este es el código y este el error: ...
Ya comprobé que la API devuelve datos. ¿Por qué nameEl es null? Explícamelo con sencillez.
Consejos para sacarle partido:
- Pide que te explique, no solo que te arregle:
Explain why this happens(“explica por qué ocurre”). - Pide un ejemplo mínimo:
Show me a minimal example. - Verifica la respuesta. Una IA puede inventar funciones que no existen; comprueba en la documentación.
- Dile tu nivel:
I'm a beginnerevita respuestas demasiado avanzadas. - No pegues secretos. Claves, contraseñas, datos de clientes.
- Si no funciona, dile qué pasó:
That gave me a different error: ....
Frases útiles para pedir ayuda:
| Inglés | Traducción |
|---|---|
Can you explain this error? | ¿Puedes explicarme este error? |
What does this mean? | ¿Qué significa esto? |
Why is this happening? | ¿Por qué ocurre esto? |
How can I fix it? | ¿Cómo lo arreglo? |
Is there a simpler way? | ¿Hay una forma más simple? |
Can you give me an example? | ¿Puedes darme un ejemplo? |
Explain it like I'm a beginner. | Explícamelo como si fuera principiante. |
Show me step by step. | Muéstramelo paso a paso. |
Un ejemplo completo
Imagina que ves en Python:
Traceback (most recent call last):
File "notes.py", line 3, in <module>
print(1 / 0)
ZeroDivisionError: division by zero
- Elige la línea final:
ZeroDivisionError: division by zero. - No hay rutas ni variables tuyas que quitar.
- Búscala:
python ZeroDivisionError division by zero. - Entras en la documentación o en Stack Overflow; ves que intentas dividir entre cero; compruebas con
printqué vale el divisor y añades unif divisor != 0.
Tardaste dos minutos, y mucho más sencillo que preguntar en un foro.
Errores frecuentes
- Traducir el error al español antes de buscarlo. Busca siempre el texto original en inglés.
- Pegar la traza entera con rutas personales. Quita rutas, nombres y números de línea.
- Escribir “no funciona” y nada más. Di qué esperabas y qué ocurre; mira Preguntar en foros.
- Copiar la primera respuesta sin mirar la fecha. Podría ser de otra versión.
- Confiar ciegamente en la IA. Comprueba en la documentación oficial.
- Cambiar muchas cosas a la vez entre búsquedas. Cambia una cada vez.
- Compartir secretos (tokens, contraseñas) en una pregunta pública.
Resumen
| Paso | Qué hacer |
|---|---|
| 1 | Copiar el mensaje original en inglés |
| 2 | Quitar rutas, variables propias, líneas y secretos |
| 3 | Añadir lenguaje o framework; usar "comillas" para la frase exacta |
| 4 | Mirar la fecha, los votos y los comentarios de la respuesta |
| 5 | Probar en un archivo aparte antes de copiar |
| IA | Objetivo, contexto, código, error y lo que ya probaste |
Siguiente lección: Preguntar en foros.
Pon a prueba lo que has aprendido
¿Te ha quedado claro? Márcala y verás tu progreso en el explorador.