Lección 15 de 16 · Nivel 4: Experto
Programar con IA sin ser programador: método, pruebas y seguridad
- ⏱ 11 min de lectura
- ❓ 3 preguntas de repaso
- ✍️ Ejercicio con solución
En esta lección
- Saber qué herramientas puedes crear con ayuda de la IA aunque no seas programador.
- Aplicar un método de seis pasos para pasar de una idea a un programa que funciona.
- Probar y corregir el código que genera la IA con casos límite.
- Evitar los riesgos de seguridad y de datos al ejecutar código generado.
Los asistentes de IA escriben código sorprendentemente bien. Eso abrió una posibilidad nueva para cualquier profesional: crear pequeñas herramientas a la medida de su trabajo (una fórmula compleja, una macro, un script que ordena archivos, un reporte automático) sin depender del área de sistemas. Pero "pedirle código a la IA" y "tener una herramienta confiable" no son lo mismo. La diferencia es el método, y eso es lo que aprenderás hoy.
Qué puedes construir
| Herramienta | Ejemplos | Dónde se ejecuta |
|---|---|---|
| Fórmulas avanzadas | Una fórmula que clasifica clientes según tres condiciones | Excel o Google Sheets |
| Macros VBA | Dar formato a un reporte, dividir un libro en varios archivos | Excel de escritorio |
| Apps Script | Enviar un correo cuando una fila cambia de estado, generar documentos desde una hoja | Google Sheets, Docs y Gmail |
| Scripts de Python | Renombrar cientos de archivos, unir reportes, detectar facturas vencidas | Tu computadora |
| Páginas sencillas | Una calculadora de cotizaciones, un formulario interno | El navegador |
Puedes usar el chat de cualquier asistente, los asistentes de programación integrados en editores de código o agentes que trabajan directamente sobre los archivos de un proyecto (lección 9). Para empezar, el chat es suficiente.
El método en seis pasos
1. Describe el problema con datos de ejemplo
Lo que más mejora el código es mostrar la entrada exacta y la salida que esperas. Un prompt completo:
Necesito un script de Python para detectar facturas vencidas.
ENTRADA: un CSV así (las columnas siempre son estas):
numero,cliente,fecha_emision,dias_credito,monto,pagada
F-102,Oficinas Andes,2026-08-20,30,850.50,no
F-103,Hotel Sol,2026-09-05,15,640.00,no
REGLAS: una factura vence en fecha_emision + dias_credito. Está vencida si
no está pagada y esa fecha ya pasó.
SALIDA: lista de vencidas ordenada por días de atraso (número, cliente,
fecha de vencimiento, días de atraso y monto) y, al final, el total vencido
por cliente.
CONTEXTO: no soy programador. Uso Windows y Python 3.12. Solo puedo usar
la biblioteca estándar. Quiero ejecutarlo así: python vencidas.py facturas.csv
y poder pasar opcionalmente una fecha para probar.
2. Pide el plan antes del código
"Antes de escribir el código, explícame en 5 pasos cómo lo vas a resolver y qué supuestos haces." Así detectas malentendidos cuando corregirlos es barato: por ejemplo, si la IA supone que los días de crédito son hábiles y no calendario.
3. Pide código legible y las instrucciones para ejecutarlo
Pide nombres en español, comentarios breves, funciones pequeñas y los pasos exactos para ejecutarlo. Un resultado típico, ya probado:
"""Lista las facturas vencidas y el total adeudado por cliente.
Uso: python vencidas.py facturas.csv [AAAA-MM-DD]
Si no indicas la fecha, usa la de hoy.
"""
import csv
import sys
from collections import defaultdict
from datetime import date, datetime, timedelta
def leer_facturas(ruta):
with open(ruta, encoding="utf-8") as f:
return list(csv.DictReader(f))
def facturas_vencidas(facturas, hoy):
vencidas = []
for f in facturas:
if f["pagada"].strip().lower() == "si":
continue
emision = datetime.strptime(f["fecha_emision"], "%Y-%m-%d").date()
vence = emision + timedelta(days=int(f["dias_credito"]))
if vence < hoy:
vencidas.append({**f, "vence": vence, "dias_atraso": (hoy - vence).days})
return sorted(vencidas, key=lambda x: x["dias_atraso"], reverse=True)
def main():
if len(sys.argv) < 2:
print(__doc__)
sys.exit(1)
hoy = (datetime.strptime(sys.argv[2], "%Y-%m-%d").date()
if len(sys.argv) > 2 else date.today())
vencidas = facturas_vencidas(leer_facturas(sys.argv[1]), hoy)
por_cliente = defaultdict(float)
for v in vencidas:
print(f"{v['numero']} {v['cliente']:<16} venció {v['vence']} "
f"{v['dias_atraso']:>3} días {float(v['monto']):>9,.2f}")
por_cliente[v["cliente"]] += float(v["monto"])
print("\nTotal vencido por cliente:")
for cliente, total in sorted(por_cliente.items(), key=lambda x: -x[1]):
print(f" {cliente:<16}{total:>10,.2f}")
if __name__ == "__main__":
main()
4. Prueba con datos que conoces
Prepara un archivo pequeño en el que tú sepas la respuesta correcta. Con cinco facturas, de las cuales sabes que solo F-102 y F-103 están vencidas al 31 de octubre de 2026:
python vencidas.py facturas.csv 2026-10-31
F-102 Oficinas Andes venció 2026-09-19 42 días 850.50
F-103 Hotel Sol venció 2026-09-20 41 días 640.00
Total vencido por cliente:
Oficinas Andes 850.50
Hotel Sol 640.00
Coincide. Ahora, los casos límite: ¿qué pasa si alguien escribió "Sí" con tilde en la columna pagada? El script compara con "si" sin tilde, así que trataría esa factura como impaga y la reportaría como vencida. Es el tipo de error que la IA no puede adivinar, porque no conoce tus datos reales. Prueba siempre con: celdas vacías, mayúsculas y tildes, fechas en otro formato, montos con coma decimal y un archivo sin filas.
1. ¿Cuál es la mejor forma de comprobar que un script generado por IA funciona?
La IA puede decir que su código es correcto aunque no lo sea. Solo una prueba con resultados conocidos lo demuestra.
5. Corrige con el error exacto
Cuando algo falle, pega en el chat el mensaje de error completo y lo que estabas haciendo. "No funciona" no ayuda; esto sí:
Al ejecutar con el archivo real aparece este error:
ValueError: time data '15/09/2026' does not match format '%Y-%m-%d'
En el archivo real algunas fechas vienen como 15/09/2026 y otras como 2026-09-15.
Además, en la columna pagada hay "si", "Sí" y "SI". Corrige ambas cosas
y dime qué cambiaste.
6. Pide una explicación y una revisión
Antes de usarlo en serio: "Explícame qué hace cada función como si yo no supiera programar" y "Revisa este código como un programador experto: ¿qué podría fallar con datos reales? ¿Hay algún riesgo de seguridad?". Entender lo esencial de tu herramienta te permite mantenerla cuando cambien tus necesidades.
2. Tu script falla. ¿Qué mensaje a la IA dará mejores resultados?
El error exacto y los datos que lo causan le dan a la IA lo que necesita para encontrar la causa. Empezar de cero suele repetir el problema.
Seguridad: lo que nunca debes hacer
- Ejecutar código sobre tus únicos datos. Trabaja siempre con una copia o ten un respaldo: un script que mueve o borra archivos puede equivocarse de carpeta.
- Pegar claves y contraseñas en el código o en el chat. Usa variables de entorno (como en la lección 10) y no compartas tus credenciales con ningún asistente.
- Pegar datos confidenciales para "que la IA vea el problema". Usa datos de ejemplo inventados con la misma estructura (lección 12).
- Instalar paquetes que no conoces. La IA a veces inventa nombres de bibliotecas, y hay atacantes que publican paquetes falsos con esos nombres. Verifica que el paquete exista, sea popular y sea el oficial antes de instalarlo.
- Dar a un agente permisos amplios sin supervisión. Revisa los cambios que propone antes de aceptarlos, sobre todo si borra archivos o envía mensajes.
¿Cuándo llamar a un programador?
Programar con IA es ideal para herramientas personales o de un equipo pequeño. Busca ayuda profesional cuando la herramienta maneje dinero o datos personales de clientes, cuando muchas personas dependan de ella, cuando necesite conectarse a sistemas críticos de la empresa o cuando debas cumplir normas de seguridad. Un prototipo hecho por ti con IA es, además, la mejor forma de explicarle a un desarrollador lo que necesitas.
3. La IA te sugiere instalar un paquete de Python con un nombre que nunca habías visto. ¿Qué haces?
Los nombres de paquetes inventados por la IA pueden coincidir con paquetes maliciosos publicados a propósito. Verificar antes de instalar es una práctica básica de seguridad.
Ejercicio práctico: tu primera herramienta
- Elige una tarea repetitiva de tu trabajo que tome al menos 30 minutos a la semana.
- Escribe el prompt con entrada de ejemplo, reglas, salida esperada y contexto.
- Pide el plan, luego el código, y pruébalo con un archivo de ejemplo cuya respuesta conozcas.
- Escribe 3 casos límite, pruébalos y pide las correcciones necesarias.
- Calcula cuántas horas al año te ahorrará.
Ver la corrección del caso de las facturas
def es_pagada(valor):
return valor.strip().lower() in ("si", "sí", "pagada", "yes")
def leer_fecha(texto):
for formato in ("%Y-%m-%d", "%d/%m/%Y"):
try:
return datetime.strptime(texto.strip(), formato).date()
except ValueError:
pass
raise ValueError(f"Fecha con formato desconocido: {texto!r}")
# En facturas_vencidas:
# if es_pagada(f["pagada"]): continue
# emision = leer_fecha(f["fecha_emision"])
Fíjate en que la función de fechas avisa con un error claro si encuentra un formato nuevo, en lugar de adivinar. Es preferible que un script se detenga a que entregue un resultado equivocado sin decir nada. Ahorro estimado: si revisar las facturas a mano tomaba 45 minutos por semana, son unas 39 horas al año.
Resumen
- Con IA puedes crear fórmulas, macros, Apps Script, scripts de Python y páginas sencillas sin ser programador.
- Método: datos de ejemplo, plan primero, código legible, pruebas con respuesta conocida, errores exactos y revisión.
- Los casos límite (tildes, vacíos, formatos) son donde falla el código generado.
- Respaldo de los datos, nada de claves ni datos confidenciales en el chat y verificar los paquetes antes de instalarlos.
- Para herramientas críticas, tu prototipo es el punto de partida para un programador.
En la próxima lección, la última del curso, verás cómo convertir todo lo aprendido en ingresos: servicios con IA que las empresas pagan, cómo poner precio y cómo conseguir tus primeros clientes.
Crea tu cuenta en 30 segundos, marca tus lecciones y descarga el certificado al terminar.