La IA y la ilusión de competencia: más allá de recordar código
Beyond Recall and the Illusion of Competence
El autor argumenta que el debate sobre si la IA reemplazará a los programadores se centra en lo incorrecto: quién escribe el código. En realidad, los programadores nunca escribieron todo el código; siempre han dependido de documentación, ejemplos y colaboración. El verdadero peligro no es que la IA escriba código, sino que deleguemos la comprensión. Al depender de la IA para depurar, podemos caer en la ilusión de competencia sin construir modelos mentales del sistema. Esto es especialmente crítico para los desarrolladores junior, que podrían perder la oportunidad de desarrollar intuición. La solución no es abandonar la IA, sino usarla para tareas mecánicas mientras mantenemos el control del diseño y la comprensión. El desarrollador del futuro será más arquitecto que codificador.
Puedes producir software funcional sin desarrollar nunca un modelo mental útil del software que estás produciendo.
- MarkusQ
> Entonces, si copiar un fragmento de código útil de Stack Overflow siempre ha sido aceptable
Esto no ha "siempre sido aceptable"; el copy-paste era un término peyorativo no hace mucho, y la gente ha sido despedida por simplemente copiar código de SO y usarlo sin entenderlo.
- kayo_20211030
> Los desarrolladores que se destacarán serán aquellos que entienden los sistemas.
Eso siempre ha sido cierto. La IA no lo cambia. Solo reorganiza algunos elementos que vienen antes de esa comprensión. El volumen y la velocidad son desafíos, pero la comprensión y el juicio son lo que separa a los buenos de los grandes.
Por cierto: "sistemas" en mi mundo incluyen no solo los componentes tecnológicos, sino también los humanos que operan, ajustan y gestionan todas las piezas, y los procesos que controlan todo.
- WillEMac
Creo que hay algunos matices sobre la redundancia requerida para el software.
Por ejemplo, he trabajado en tecnología limpia donde la programación de PLC controla turbinas; aquí se requiere una comprensión completa. Cada error y LOC asociado necesita que un humano esté en el circuito; vale la pena el tiempo.
Alternativamente, hago desarrollo de juegos, y no creo que haya valor en entender el proceso de depuración completo. Por ejemplo, accidentalmente vinculé la liberación de la barra espaciadora a dos cosas en multijugador, causando un glitch cooperativo. No necesito buscar esa aguja en un pajar para depurar; eso es un mal uso del tiempo.
>Si escribir código se vuelve barato y accesible para todos, entonces escribir código deja de ser un diferenciador. Los desarrolladores que se destacarán serán aquellos que entienden los sistemas.
Estoy de acuerdo, especialmente para límites/condiciones límite. En el juego en el que estoy trabajando, entender fundamentalmente 500 peces controlados por GPU vs. CPU en pantalla y sus limitaciones es necesario para ser un buen arquitecto, o este juego funcionará a 10 fps.
- jebarker
Me encuentro en algún punto intermedio del espectro de desarrolladores que describe el autor. Uso IA a diario para escritura de código limitada y mucha depuración. Estoy de acuerdo con el autor en que las cosas se descarrilan cuando dejas de revisar verdaderamente su salida y simplemente haces clic en aceptar por la emoción de la productividad. No creo que usar IA para depurar signifique que tengas que hacer eso; sigue siendo una elección. Como equipo IA-humano, he tenido la experiencia muchas veces de depurar un problema en un sistema complejo que simplemente no creo que podría haber hecho solo o en un tiempo razonable. No creo que esto sea un reflejo de mis bajas habilidades; es porque la IA aporta habilidades que nunca tendré, como leer y correlacionar enormes cantidades de registros a través de muchas ejecuciones del mismo sistema en diferentes nodos de cómputo en un clúster. Una vez que encuentra una aguja en un pajar, aún puedo tomarme el tiempo para entender y razonar sobre lo que encontró.
- ssivark
El autor hace un punto importante sobre la propiedad, pero eso se diluyó en comprensión de código y depuración. Lo que importa no es solo la propiedad del código que se escribió, sino también la propiedad de la identificación del problema y la elección de la solución. Escribí sobre esto recientemente desde el ángulo ligeramente diferente del tempo conversacional [1], pero el punto central compartido es que queremos que la IA actúe como un compañero cognitivo y nos ayude a entender la situación, identificar el problema y tomar decisiones, en lugar de que la IA se adelante a "resolver" el problema prematuramente y luego ponga la carga sobre el usuario para averiguar qué demonios acaba de pasar y cómo solo se correlacionaba marginalmente con la intención.
[1] https://woventhought.substack.com/p/ai-assistants-need-adapt...