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
  1. Qué puedes construir
  2. El método en seis pasos
  3. Seguridad: lo que nunca debes hacer
  4. ¿Cuándo llamar a un programador?
  5. Resumen
Lo que lograrás 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

HerramientaEjemplosDónde se ejecuta
Fórmulas avanzadasUna fórmula que clasifica clientes según tres condicionesExcel o Google Sheets
Macros VBADar formato a un reporte, dividir un libro en varios archivosExcel de escritorio
Apps ScriptEnviar un correo cuando una fila cambia de estado, generar documentos desde una hojaGoogle Sheets, Docs y Gmail
Scripts de PythonRenombrar cientos de archivos, unir reportes, detectar facturas vencidasTu computadora
Páginas sencillasUna calculadora de cotizaciones, un formulario internoEl 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?

  • Preguntarle a la IA si el código está bien.
  • Ejecutarlo con un archivo pequeño cuya respuesta correcta ya conoces, incluidos casos límite.
  • Ejecutarlo directamente con todos los datos reales de la empresa.

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?

  • "No funciona, arréglalo."
  • El mensaje de error completo, la línea de comando que usaste y un ejemplo de los datos que lo provocan.
  • "Escribe otro script desde cero."

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?

  • Lo instalo, porque la IA lo recomendó.
  • Verifico en el repositorio oficial que exista, que sea el paquete conocido y tenga buen historial, o pido una alternativa con la biblioteca estándar.
  • Lo instalo con permisos de administrador para evitar errores.

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

  1. Elige una tarea repetitiva de tu trabajo que tome al menos 30 minutos a la semana.
  2. Escribe el prompt con entrada de ejemplo, reglas, salida esperada y contexto.
  3. Pide el plan, luego el código, y pruébalo con un archivo de ejemplo cuya respuesta conozcas.
  4. Escribe 3 casos límite, pruébalos y pide las correcciones necesarias.
  5. 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.

🎓 Guarda tu avance y obtén tu certificado gratis

Crea tu cuenta en 30 segundos, marca tus lecciones y descarga el certificado al terminar.

Inscribirme gratis