Blog

Cómo uso LLMs para escribir código (multiplicando mi productividad sin morir en el intento)

miércoles, 19 de marzo de 2025

Isaac Bordons Crea experiencias digitales corporativas que fusionan diseño, tecnología y arte. Socio en +MoreThanLaw y fundador de Topo Comunicación, ha llevado proyectos reconocidos internacionalmente.

La inteligencia artificial ha llegado para quedarse y, entre otras cosas, para ayudarme a escribir código. He probado varios modelos para esto: ChatGPT, Gemini, Perplexity, DeepSeek, Qwen y Claude. Cada uno tiene sus puntos fuertes y sus momentos de '¿pero qué demonios ha hecho ahora?'. Pero en general, son un recurso poderoso si se usan bien. No, no para reemplazarme (todavía), pero sí para hacerme la vida más fácil. ¿Cómo? Bueno, sigue leyendo y te cuento mi proceso, con sus luces y sombras.

1. LLMs como copiloto (pero yo sigo al volante)

Si algo he aprendido es que LLMs es una herramienta de pensamiento, no una varita mágica. No es un sustituto de mi cerebro, sino un amplificador. Lo uso para generar ideas, explorar soluciones y, sobre todo, escribir código más rápido sin atascarme en detalles absurdos.

No le pido que haga todo el trabajo, pero sí que me eche una mano con:

  • Generar código base: "Hazme un script en PHP que lea un CSV y lo convierta en JSON". Y voilà, ya tengo algo con lo que empezar.
  • Explicaciones rápidas: "¿Por qué esta consulta SQL está funcionando a la velocidad de un caracol con reuma?".
  • Refactorización: "Haz que este código sea menos feo y más eficiente".

Pero nunca, NUNCA, confío ciegamente en lo que me da. Siempre reviso, porque aunque estos chats son listos —también a veces— son un caos con patas.

2. Haciendo preguntas inteligentes (o al menos intentándolo)

Pedirle código a estos Chats es un arte. Si le preguntas mal, te devuelve cualquier cosa. Así que he aprendido a ¯\_(⊙︿⊙)_/¯:

  • Ser específico: "Quiero un script en PHP(usando un GPT específico para GetKirby) que haga scraping de una web usando Goutte" (y especificar tags, atributos…).
  • Proporcionar contexto: "Este código es parte de una API Flask que recibe datos en JSON y los almacena en PostgreSQL".
  • Pedir explicaciones: "Desglósame lo que hace este código línea por línea" (para cuando quiero aprender algo nuevo o descifrar código ajeno).

Y lo más importante: si me devuelve un código que parece sacado de una pesadilla, reformulo la pregunta hasta que lo entienda bien.

3. Depuración con LLMs (a veces me sorprende, otras me vuelvo loco)

Cuando algo no funciona (es decir, siempre), recurro a LLMs para depurar el código. Pero aquí está el truco: en lugar de decirle "Arregla esto", le muestro el error específico. Por ejemplo:

  • "Estoy obteniendo un KeyError en esta línea, ¿qué puede estar pasando?"
  • "Esta consulta SQL tarda una eternidad, ¿cómo la optimizarías?"
  • "Este código en JavaScript parece correcto pero el botón no hace nada. ¿Ideas?"

A veces la respuesta es brillante, otras veces da vueltas y no dice nada útil. Pero incluso cuando no acierta, el proceso me ayuda a pensar mejor el problema. Σ(-᷅_-᷄ ๑)

¿Pretende ser una cabeza envuelta en código binario? muy original (ᇂ_ᇂ |||)

4. LLMs para aprender nuevas tecnologías y conectar con APIs

Me ha sorprendido lo bien que puede desglosar los pasos para integraciones complejas, como si fuera un tutorial hecho a medida.

No siempre lo uso solo para escribir código, también me sirve para aprender y conectar con APIs de forma más eficiente. Me ha sorprendido lo bien que puede desglosar los pasos para integraciones complejas, como si fuera un tutorial hecho a medida. ¿Necesito consumir una API de OpenAI, Google o SerpAPI? Me da cada paso detallado, desde la autenticación hasta las peticiones específicas. Es como tener un manual técnico sin tener que pelearme con documentación mal explicada. ¿Necesito entender cómo funciona FastAPI? Le pido un resumen. ¿Quiero un ejemplo rápido de cómo usar Apps Script? Me lo genera al instante.

Es como tener a un profe de programación al lado, pero sin miedo a hacer preguntas "tontas". (Y sin que me cobre por hora). d[o_0]b

5. Limitaciones y errores de los LLMs (porque no todo es perfecto)

No todo es color de rosa. A veces:

  • Me devuelve código que "parece" correcto pero no funciona. Siempre testeo antes de usarlo.
  • Se inventa cosas. Como cuando me explicó una función que no existe en GetKirby con la seguridad de un vendedor de humo. O cuando le pedí que pasara unas fórmulas de Excel a JavaScript y me sacó un código sacado de su propia dimensión paralela (porque no podía acceder a la fórmula del Excel, pero en lugar de decirlo, decidió improvisar como si estuviera en un concurso de stand-up para máquinas).
  • Olvida el contexto. Si la conversación es larga, a veces olvida cosas que le mencioné antes.
  • No tiene sentido común. Si le pido "Hazme un script para eliminar archivos de mi PC de forma segura", probablemente lo haga, pero no me advertirá de que podría ser una mala idea (porque es un robot, no mi madre).

Conclusión: los LLMs son mi herramienta favorita, no mi jefe

Me ahorra tiempo, me ayuda a pensar, me da ideas y me enseña cosas nuevas. Pero no es infalible.

Al final del día, usar LLMs para programar es como tener un asistente muy listo, pero un poco atolondrado. Me ahorra tiempo, me ayuda a pensar, me da ideas y me enseña cosas nuevas. Pero no es infalible. Si le doy órdenes vagas, me da respuestas vagas. Si no reviso su código, me arriesgo a meter la pata. Y si no entiendo lo que me da, es mi responsabilidad investigar más.

Así que sí, los LLMs son un gran aliado en mi trabajo como programador. Pero el que sigue escribiendo, depurando y pensando (a medias) soy yo. Y así seguirá siendo... hasta que un día la IA no solo me sugiera código, sino que se anticipe a mi en los proyectos, diseñe mejor que yo, me mande recordatorios, me haga café y me dé ánimos cuando el debugger me escupa errores incomprensibles. Cuando llegue ese momento, ya veremos quién trabaja para quién.