El playbook de prompt engineering para programadores
(addyo.substack.com)1. Introducción: los prompts determinan la productividad de desarrollo
- El rendimiento de los asistentes de código con IA depende de la calidad del prompt. Una solicitud clara produce código más preciso; una pregunta ambigua genera resultados inútiles.
- Saber escribir prompts ahora es una habilidad esencial para los desarrolladores, y se parece a entrenar a un compañero de desarrollo.
- Este artículo muestra, con ejemplos prácticos y comparaciones, cómo una “buena pregunta” crea “buen código”.
2. Siete principios de un prompt efectivo
① Proporcionar contexto
- La IA no conoce el trasfondo de tu proyecto, así que debes especificar el lenguaje, framework, bibliotecas, mensajes de error, objetivo, etc.
- Ejemplo: incluir el contexto técnico como “TypeError al hacer fetch de user en un entorno Node.js + Express + Mongoose”.
② Aclarar el objetivo
- “El código no funciona” no ayuda. Es mejor preguntar con precisión: “El resultado esperado es ○○, pero en realidad ocurre △△. ¿Por qué?”.
③ Dividir tareas complejas
- Es más efectivo pedir una función por etapas que preguntar por todo de una sola vez. Ejemplo: componente > manejo de estado > integración de API.
④ Incluir ejemplos de entrada y salida
- Si muestras un ejemplo del resultado deseado, la IA entiende mejor tu intención. (e.g.
[3,1,4]→[1,3,4])
⑤ Asignar un rol
- Definir un rol como “revisa este código como si fueras un desarrollador senior de React” mejora la profundidad y la calidad de la respuesta.
⑥ Mejora iterativa conversacional
- La primera respuesta no tiene que ser perfecta. Si das retroalimentación, la IA continúa ese hilo y produce resultados cada vez más refinados.
⑦ Mantener la consistencia del código
- Si el propio código está escrito de forma consistente —nombres de funciones, formato, comentarios—, la IA también mantendrá esa línea y la calidad será mayor.
3. Estrategias de prompts para depuración
① Especificar el error y compararlo con el comportamiento esperado
- Si presentas juntos el mensaje de error, los síntomas del problema, el resultado esperado y los valores de entrada, la IA podrá hacer un diagnóstico más preciso.
② Pedir seguimiento línea por línea
- Solicitudes como “rastrea paso a paso en qué momento este valor de variable empezó a verse raro” son efectivas para bugs lógicos complejos.
③ Proporcionar un código mínimo reproducible
- Si das solo el código clave donde ocurre el problema en vez de todo el código, la IA puede analizar la causa con mayor precisión.
④ Hacer preguntas de seguimiento claras
- En vez de “¿por qué sale este resultado?”, conviene una pregunta más directa como “¿qué condición está mal en esta parte?”.
⑤ Comparación de ejemplo: mala pregunta vs. buena pregunta
- Si solo dices “el código no funciona”, obtendrás respuestas especulativas; si incluyes el mensaje de error y el código, recibirás una solución precisa.
4. Estrategias de prompts para refactorización y optimización
① Aclarar el objetivo de la refactorización
- En vez de solo decir “refactorízalo”, debes indicar metas concretas de mejora como “mejorar la legibilidad, optimizar el rendimiento, actualizar la API”.
- Si el objetivo es ambiguo, la IA puede intentar mejoras al azar o cambiar el código en una dirección no deseada.
② Dar contexto del lenguaje y del entorno
- Si informas el estilo del proyecto o las restricciones técnicas, como “migración de React basado en clases a funciones” o “entorno Node.js 14”, se puede hacer una transformación adecuada.
③ Pedir también una explicación
- Si además del código refactorizado pides una explicación de “por qué se cambió así”, obtienes tanto revisión de calidad de código como beneficio de aprendizaje.
④ Elevar el nivel con solicitudes basadas en roles
- Pedidos como “refactoriza esto como si fueras un desarrollador senior de TypeScript” llevan a mejoras más modernas y profundas.
5. Estrategias de prompts para implementar nuevas funciones
① Pedir la función dividida en etapas
- Incluso una función compleja puede dar resultados más estables si la pides en secuencia: “diseño de estructura de la función → creación de UI → conexión de la lógica”.
② Proporcionar el estilo de código existente
- Si presentas componentes similares o convenciones internas, se generará código alineado con la consistencia del proyecto. Ejemplo: “crear ProductList basándose en UserList”.
③ Transmitir la intención con comentarios/TODO
- En el IDE, si agregas un comentario en lenguaje natural como
// TODO: implementar validación de la solicitud, Copilot generará automáticamente un bloque de código acorde.
④ Presentar ejemplos de entrada y salida
- Si incluyes ejemplos de valores de entrada y resultados esperados, la IA intentará cumplirlos y aumentará la precisión.
⑤ Mejora iterativa basada en retroalimentación
- Aunque el primer resultado no cumpla lo esperado, si das retroalimentación como “usa
mapen lugar defilter”, la IA lo reflejará de inmediato y evolucionará.
6. Siete patrones de prompts que fallan (Anti-patterns)
① Solicitudes ambiguas
- Preguntas como “¿por qué no funciona este código?” solo provocan respuestas generales sin valor. Incluye el mensaje de error, el código y el resultado esperado.
② Exceso de requisitos
- Solicitudes compuestas como “crear toda la app + agregar autenticación + incluir script de despliegue” causan omisiones o confusión, así que conviene separarlas por etapas.
③ Ausencia de pregunta
- Si solo lanzas el código sin una solicitud, es fácil que la IA haga un resumen o entregue un resultado irrelevante, por lo que debes dejar claro el objetivo de la pregunta.
④ Criterios de éxito poco claros
- “Hazlo más rápido” o “mejóralo” son criterios ambiguos. Debes dar una meta medible, por ejemplo: “mejorar a complejidad temporal O(n)”.
⑤ Ignorar las preguntas de la IA
- Si la IA pregunta “¿esto es funcional o basado en clases?”, responderle es necesario para obtener una salida optimizada.
⑥ Falta de consistencia
- Si el estilo, la sintaxis y la terminología cambian constantemente, la IA también se confunde. Mantener un solo estilo mejora la calidad de la respuesta.
⑦ Referencias ambiguas como “el código de arriba”
- Cuanto más larga sea la conversación, más ambiguo se vuelve “el código de arriba”. Siempre que sea posible, vuelve a mostrar el código o menciona explícitamente el nombre de la función.
7. Conclusión: colaborar con la IA es un diálogo iterativo
- El prompt engineering ya es una habilidad clave de comunicación para desarrolladores. Proporcionar contexto, definir objetivos claros y mejorar iterativamente son la base.
- La IA no es solo un asistente de código, sino un colaborador y un compañero de aprendizaje. Si se aprovecha bien, mejora no solo la productividad, sino también la habilidad de desarrollo.
- Si usas estrategias como experimentación, retroalimentación y asignación de roles, puedes tratar a la IA como a un integrante real del equipo.
- El objetivo final es generar código más rápido y con mayor precisión, pero al mismo tiempo también debe aprovecharse activamente como herramienta de aprendizaje para convertirse en un mejor desarrollador.
Tabla comparativa: prompts buenos vs. malos
| Categoría | Depuración | Refactorización | Implementación de funciones |
|---|---|---|---|
| Buen prompt | Aquí ocurre el TypeError. El valor esperado es ○○, pero aparece NaN. Ayúdame a identificar la causa. |
Elimina la duplicación de esta función y mejora el rendimiento. Separa la parte de fetch en un helper y conserva los mensajes de error. |
Crea un componente ProductList con barra de búsqueda. Recibe JSON desde /api/products, filtra la lista e incluye también estados de error y carga. |
| Mal prompt | ¿Por qué no funciona mi función? |
Refactorízalo. |
Hazme una función de búsqueda. |
5 comentarios
No es tan diferente de cómo tratar con programadores humanos.
Playbook de ingeniería de prompts para programadores
También revisa la versión resumida por el bot de resúmenes de GN+. El comentario con el resumen de Hacker News también vale la pena leerlo.
Veo que lo publicaste primero..
Gracias.
Por más que les ruegues que no lo hagan así, 1 de cada 10 tipos igual lo hace -_-
¡Qué va a saber la gente!