- Es cierto que las herramientas basadas en LLM aumentan la productividad de los desarrolladores
- Pero, a largo plazo, depender de estas herramientas reduce la capacidad de resolver problemas por cuenta propia
- Desaparece la sensación de logro que se obtiene durante el proceso de escribir código, y en vez de resolver problemas uno termina esperando la respuesta de la IA
Debilitamiento de la pasión por desarrollar y del espíritu de desafío
- Hay personas que ni siquiera disfrutan programar → en ese caso, puede que el desarrollo de software no sea lo suyo
- Los mejores ingenieros que he conocido crean herramientas o software por iniciativa propia incluso los fines de semana y buscan innovar
- Mejorar el rendimiento de un sistema solo es posible si existe una comprensión profunda de sus fundamentos; de lo contrario, no pasa de ser probar cosas al azar
El fenómeno de "Copilot Lag"
- "Copilot Lag" se refiere al estado de esperar la siguiente indicación de la IA
- Es parecido a cuando un desarrollador junior espera instrucciones de un senior
- Al usar GitHub Copilot, uno puede terminar olvidando incluso elementos básicos del lenguaje y la sintaxis
- La mejora de velocidad a corto plazo hace que el conocimiento a largo plazo se deteriore
Los LLM pueden interferir con el proceso de aprendizaje
- Al estudiar "Writing An Interpreter In Go" de Thorsten Ball, Copilot generó el código, pero eso no me dio la capacidad de volver a escribirlo por mi cuenta
- Se pueden pasar por alto conceptos importantes como la gestión de memoria o el diseño orientado a datos
- El código generado por la IA puede parecer correcto a simple vista, pero si no se entienden los principios fundamentales, no tiene sentido
Cómo usar los LLM de forma efectiva
- Los LLM pueden usarse de forma útil como si fueran un motor de búsqueda
- Igual que al buscar en Stack Overflow, se pueden tomar como referencia las respuestas de un LLM
- Pero los LLM no reflejan tal cual el conocimiento de expertos reales, sino que generan respuestas a partir de patrones aprendidos y secuencias de tokens → cometen muchos errores
- No hay que aceptar sin más las respuestas del LLM; hay que analizar por qué recomienda ese enfoque
- Cuando algo no se sabe, hay que investigarlo y aprenderlo por cuenta propia
- Al aprender un lenguaje nuevo (como Zig), puede ser útil tomar notas de lo aprendido
- Las notas pueden servir como material de referencia para el aprendizaje y también ayudar al compartirlas con otras personas
Conclusión
- Las herramientas de IA son útiles, pero depender ciegamente de ellas puede producir el efecto contrario
- Es importante entender los principios detrás de las soluciones que propone la IA y mantener una actitud de aprendizaje autónomo
- Al final, lo importante es mantener la capacidad fundamental de resolver problemas sin depender de las herramientas
29 comentarios
Hmm... creo que desde el principio es una diferencia de perspectiva sobre si se ve a la IA como una herramienta o como una inteligencia... Yo no puedo estar de acuerdo con este artículo porque, como dije en los comentarios de abajo, ya de por sí es una idea equivocada ver al desarrollador solo a nivel de código. Incluso cuando ocurrió la Revolución Industrial en Inglaterra en el pasado, los agricultores clamaban que se iban a morir de hambre, pero al final eso creó más empleos y trajo muchos beneficios para la humanidad. Además, cuando aparecieron las computadoras en el pasado, también se decía que por culpa de las computadoras la gente se volvería cada vez más tonta, pero al final se pudieron resolver más tareas en menos tiempo y las personas se volvieron más inteligentes.
Los LLM, incluida la investigación profunda, todavía no son útiles para la resolución de problemas de alto nivel. (por ejemplo, el desarrollo de algoritmos a nivel de paper)
La optimización extrema y la programación que requiere entender diversas características de sistemas y problemas técnicos también siguen necesitando la mano humana. Un desarrollador no es solo un programador simple, sino alguien que resuelve problemas. Algún día quizá también sea posible la resolución de problemas de extremo a extremo, pero por ahora parece algo positivo en términos de productividad, porque permite ahorrar tiempo en tipeo y programación simple e invertirlo en enfoques para problemas más difíciles.
Desde hace un tiempo, siento que muchas veces lo uso con una idea parecida a la de una revisión de código. Recibo propuestas de código, converso sobre la dirección que debería tomar, pienso y sugiero mejores maneras, y cuando sale un resultado con el que quedo satisfecho, lo cito.
La lógica de toda la aplicación y la lógica de negocio deben ser pensadas por las personas.
Esta preocupación surge si se limita a los desarrolladores solo a programar. En realidad, los desarrolladores hacen muchas más cosas, y aunque depender de la IA para la parte de codificación podría verse como volverse tonto, también puede considerarse como algo que les permite enfocarse más en otras áreas.
Ttiudyai... yo, desarrollador tonto...
También se decía que Unity vuelve tontos a los desarrolladores de videojuegos, pero al final nadie se volvió tonto; más bien terminaron aprendiendo muchas otras cosas y con más trabajo nomás jaja
Solo hay más trabajo... no puede ser...
Me cuesta estar de acuerdo con eso de que está volviendo tontos a los desarrolladores...
Desde que se adoptó la IA, la productividad realmente ha aumentado de forma espectacular.
Aquí hay un tonto.
Hoy en día, vivimos en una época en la que si no estás de acuerdo con la idea de que la IA puede hacerlo todo, te caen insultos, ni modo.
Si se trata de funciones de librerías que no conocías o de algo como scripts de shell que no se te vienen a la cabeza al instante, está bien, pero como se mezclan funciones ya deprecated o incluso
functionque ni existen, uno termina perdiendo todo el tiempo depurando.> No hay que aceptar tal cual las respuestas del LLM, sino analizar por qué recomienda ese enfoque.
Creo que esa es la clave.
Creo que las herramientas siempre traen tanto una expansión del pensamiento como una destrucción del pensamiento. Deberíamos poder avanzar, a través de esa destrucción, hacia una expansión del pensamiento de un nivel más alto, pero cuando no estamos preparados para eso, parece que este tipo de problemas siempre nos acompañan.
Por eso, al final, siento que este tipo de preocupaciones siempre van de la mano con el uso de herramientas. Creo que son procesos necesariamente. Más que rechazarlas sin más o usarlas ciegamente, me parece deseable enfocarse en cómo conviene usar esta herramienta y en cómo aprovecharla para dedicar recursos, de forma fundamental, a las partes realmente más importantes.
(ya superando las 1,000 veces de uso mensual de Cursor...)
Señor Kim. Hay algo que me atrevo a aconsejarle. No es otra cosa que esto: no use demasiado las funciones de Excel. Si hay comodidad, el riesgo también aumenta. Para atrapar una vaca hay una hoja adecuada; pero para atrapar un pollo, ¿hace falta un cuchillo? Lo sencillo puede ser la respuesta correcta.
El texto de arriba es como la versión GPT de las funciones de Excel, jajaja
En mi opinión, uno puede ser rápido para calcular mentalmente, y una calculadora puede ser útil. Solo quería dar mi opinión de que la computadora no es como un cuchillo para matar vacas.
No volveré a usar ChatGPT
Yo también escribí un texto parecido.
Sin duda hay un efecto de aumento de la productividad, pero creo que debemos evitar el acto mismo de delegarle el cerebro.
Sigo siendo un ferviente creyente de Cursor y Anthropic, pero en algún momento me di cuenta de que dejé de usar poco a poco el tan emocionante modo agente y empecé a preguntarle primero en modo ask sobre la arquitectura y la forma de implementación; solo cuando lo entiendo y me convence por completo, voy aceptando una por una las propuestas de cambio de la IA.
Ese cambio me llegó después de ver de primera mano cómo, mientras dos ingenieros refactorizaban y agregaban configuración a un módulo no tan grande (pero bastante importante para nuestro proyecto de trabajo), cada uno usando el modo agente, el código que supuestamente buscaba ordenar la arquitectura terminó en realidad dejando tanto la legibilidad como la estructura en un estado todavía más desastroso.
Yo también lo uso así. Si es un lenguaje que de verdad estoy tocando por primera vez, uso el modo agente, pero si es un lenguaje que conozco, termino revisando primero si el código tiene sentido.
Más que la IA esté volviendo tontos a los desarrolladores…
los desarrolladores tontos siguen siendo tontos aunque usen IA…
Garbage in, garbage out
Tiene toda la razón jajaja
Estoy de acuerdo. No es algo que sea incondicionalmente malo ni incondicionalmente bueno; parece que simplemente tenemos otra herramienta de productividad útil.
Estoy de acuerdo.
Desde antes he dicho muchas veces que no todos los desarrolladores son iguales.
Parece que esto es cierto...
Es una forma brusca de decirlo, pero no está del todo equivocada. Va en la misma línea de que de una buena pregunta sale una buena respuesta...
Parece que el autor se refería a usar las herramientas de IA dependiendo de ellas ciegamente.
Mi opinión personal es que, si al aprovechar la IA ha aumentado la eficiencia del trabajo,
sería conveniente usarla activamente para reducir las tareas repetitivas
y dedicar el tiempo ganado a áreas más amplias (por ejemplo, que un desarrollador backend se expanda también al frontend o al desarrollo de apps)
o a direcciones más constructivas, como el diseño de arquitectura.
Viendo el contenido en general, creo que el autor también estaría de acuerdo con esta opinión,
pero como a veces también hay desarrolladores que rechazan la IA en sí, dejo unas líneas como respuesta.. jaja
.
Yo también estoy de acuerdo. Me hizo recordar un texto que decía que no había que usar las funciones de Excel.
Creo que aprovechar bien las funciones que ya existen para aumentar aún más la utilidad es una ventaja.
Estoy de acuerdo. ^^
Opinión de Hacker News