Por qué copiar el código de IA está acabando con tu carrera

El uso inadecuado de la IA en el desarrollo de software

Walter Gandarella • 10 de enero de 2025

Ya debes haber escuchado esa frase trillada: "Si no estás usando inteligencia artificial hoy, te estás quedando atrás". Pues bien, sería una frase que me encantaría usar... si creyera en ella. Pero no lo hago. De hecho, he observado algo bastante diferente: la mayoría de las personas está utilizando la IA de una manera que, además de no ayudar, está perjudicando activamente su desarrollo profesional.

El curioso caso del desarrollador que no programa

Vamos a profundizar en este tema, especialmente enfocándonos en el uso de ChatGPT y herramientas similares en el desarrollo de software. Y te diré por qué este enfoque actual puede estar perjudicándote más de lo que te ayuda.

Primero, hablemos de algo curioso en el mundo del desarrollo. Cuando le preguntas a un desarrollador qué parte del trabajo le gusta más, la respuesta suele ser "programar, escribir código". Y cuando le preguntas qué es lo que menos le gusta, la respuesta es: "Ah, las reuniones y hacer code review". ¿Tiene gracia, no? La única parte del trabajo que dicen amar es precisamente la que están externalizando a la IA. Hay algo raro ahí, ¿no crees?

El mito del amor por el código: El caso de LeftPad

En realidad, tengo mis dudas sobre si los desarrolladores realmente aman tanto escribir código. Déjame mostrarte algo interesante: ¿conoces el famoso caso de leftpad? Mira estas 11 líneas de código que literalmente rompieron millones de aplicaciones JavaScript:

module.exports = leftpad;
function leftpad (str, len, ch) {
    str = String(str);
    var i = -1;
    if (!ch && ch !== 0) ch = ' ';
    len = len - str.length;
    while (++i < len) {
        str = ch + str;
    }
    return str;
}

¡Sí, solo eso! Una función simple que agrega caracteres a la izquierda de una cadena hasta alcanzar una longitud determinada. ¿Y por qué esto rompió tantas cosas? Porque los desarrolladores "amaban" tanto escribir código que, en lugar de implementar esta simple función, prefirieron importar una biblioteca externa. Y cuando esa biblioteca fue eliminada de npm... bueno, fue el caos.

Y no se detiene ahí. En el mundo de JavaScript, también tenemos la biblioteca "is-odd"—¡sí, una biblioteca entera solo para verificar si un número es impar, lo que implica que los desarrolladores no saben trabajar con el módulo! Si esto no es prueba suficiente de que estos tipos no están tan apasionados por escribir código, no sé qué lo sería.

Pero aquí está el punto crucial que mucha gente no entiende: nuestro trabajo no es ser "mecanógrafos de código". No somos escritores de código, somos programadores de software. Y desarrollar software va mucho más allá de simplemente generar líneas de código. Si fuera solo eso, bastaría con abrir GitHub y comenzar a copiar y pegar—después de todo, ya hay suficiente código en el mundo, ¿no?

ChatGPT y Quick Sort: Una historia de dos códigos

Hablemos de la forma incorrecta de usar ChatGPT, que lamentablemente se ha vuelto muy común. Es esa historia: la persona va allí, pide "por favor, hazme una función de quick sort en Python" (sí, siempre digo por favor a la IA, por si acaso dominan el mundo algún día), y recibe algo como esto:

def quicksort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) //2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quicksort(left) + middle + quicksort(right)

A primera vista, parece un código bonito, ¿no? Pero hay un problema grave aquí. Esta implementación, aunque funcione, es terriblemente ineficiente en términos de memoria. En cada llamada recursiva, se crean tres nuevos arrays (left, middle y right). En un array grande, esto significa una cantidad significativa de memoria que se asigna innecesariamente.

Cuando señalé este problema a ChatGPT, me proporcionó una versión mejorada:

def quicksort(arr, low, high):
    if low < high:
        pivot_index = partition(arr, low, high)
        quicksort(arr, low, pivot_index - 1)
        quicksort(arr, pivot_index + 1, high)

def partition(arr, low, high):
    pivot = arr[high]
    i = low - 1
    for j in range(low, high):
        if arr[j] < pivot:
            i += 1
            arr[i], arr[j] = arr[j], arr[i]
    arr[i + 1], arr[high] = arr[high], arr[i + 1]
    return i + 1

Esta versión es mucho más eficiente porque hace la ordenación "in-place", es decir, modifica el array original en lugar de crear nuevos arrays en cada paso. Pero aquí está el problema: si no comprendes el algoritmo quick sort, ¿cómo sabrías que la primera implementación era mala? ¿Cómo sugerirías mejoras? ¿Cómo entenderías las implicaciones de rendimiento en tu sistema?

Los cuatro jinetes del apocalipsis del código generado

Y esto nos lleva a los cuatro grandes problemas de este enfoque de "copiar y pegar" código de la IA:

  • En primer lugar, estás potencialmente introduciendo código de baja calidad en tu base de código. Si no entiendes lo que estás copiando, ¿cómo sabrás si es bueno o malo?

  • En segundo lugar, el código generado por la IA rara vez se ajusta perfectamente a los estándares y convenciones de tu proyecto. Cada base de código tiene sus particularidades, sus patrones de diseño, sus reglas. ChatGPT no conoce tu proyecto, no conoce estas convenciones.

  • Tercero, el código que no entiendes es difícil de mantener. Puede parecer que estás ahorrando tiempo ahora, pero espera hasta que necesites hacer modificaciones o corregir errores en este código más tarde. ¿Has visto esos archivos PHP con 100 mil líneas? Sí, normalmente comienzan así.

  • Y el cuarto problema, que considero el más grave: no estás aprendiendo. Estás creando una dependencia de la IA sin desarrollar tus propias capacidades. Y eso te perjudicará mucho cuando enfrentes problemas más complejos, aquellos que la IA no puede resolver por sí sola.

La trampa de la velocidad: Rápido hoy, bloqueado mañana

Imagina que estás intentando clonar una aplicación compleja como Uber Eats usando solo ChatGPT. En algún momento, te encontrarás con problemas que la IA no puede resolver. ¿Y entonces? Si no has desarrollado una comprensión profunda de lo que estás haciendo, te quedarás completamente atascado.

Es como usar una muleta cuando no estás realmente herido—parece una ayuda, pero en realidad te está impidiendo desarrollar tu propia fuerza. Sí, usar ChatGPT para generar código puede parecer más rápido a corto plazo. Puedes obtener esa implementación de quick sort en segundos, en lugar de pasar algún tiempo estudiando e implementando por tu cuenta. Pero es una victoria falsa—ganas la batalla del momento, pero estás perdiendo la guerra de tu desarrollo profesional.

El verdadero costo de la dependencia de la IA

El verdadero desarrollo de software no se trata de escribir código rápidamente—se trata de comprender problemas, diseñar soluciones, mantener sistemas escalables y crear código que otros desarrolladores puedan entender y mantener. Se trata de crecer como profesional y ser capaz de enfrentar desafíos cada vez más complejos.

Usar la IA como muleta para generar código te está impidiendo desarrollar estas habilidades fundamentales. Cada vez que copias y pegas sin comprender, estás perdiendo una oportunidad de aprendizaje, de crecimiento. Te estás condenando a ser un eterno júnior, dependiente de herramientas externas para realizar tu trabajo.

El código que no entiendes es como una deuda técnica que tendrás que pagar con intereses en el futuro. Cada fragmento de código copiado sin comprensión es un pequeño compromiso con la mediocridad, una pequeña renuncia a tu potencial de crecimiento.

La inteligencia artificial es una herramienta increíble, pero como cualquier herramienta, su valor depende de cómo la usamos. En lugar de usarla como muleta, debemos aprender a usarla como apoyo a nuestro desarrollo profesional, manteniendo siempre el enfoque en la comprensión profunda y el crecimiento continuo.

Al final del día, lo que determinará tu éxito como desarrollador no es tu capacidad para generar código rápidamente, sino tu capacidad para comprender, diseñar y mantener sistemas complejos. Y eso, amigo mío, ninguna IA puede hacerlo por ti.


Últimos artículos relacionados