6 puntos por GN⁺ 2023-11-15 | 3 comentarios | Compartir por WhatsApp
  • El autor, un programador profesional, vio tambalear su convicción de enseñar a programar a su hijo después de experimentar con GPT-4, y cree que para cuando el niño tenga edad de teclear, el valor profesional de programar podría haber cambiado
  • Ben, un amigo con casi nada de experiencia reciente en programación, usó ChatGPT Plus y GPT-4 para crear rápidamente herramientas de línea de comandos, una app de iPhone para evaluar palabras y código para conectar un microcontrolador con Firebase
  • Durante mucho tiempo, programar exigió paciencia, depuración repetitiva y una comprensión intuitiva de los límites de la máquina, una mechanical sympathy, pero la asistencia de la IA empieza a reemplazar parte de la implementación detallada y del conocimiento difícil con conversación en lenguaje natural
  • GPT-4 todavía es inferior a un programador profesional en algunos aspectos, y tampoco es fácil para una persona común usarlo del mismo modo, pero la forma centaur, que combina programador e IA, muestra una productividad distinta a la de un humano solo o una IA sola
  • Cuanto menos importante sea programar en sí, más importantes podrían volverse la capacidad de decidir qué vale la pena crear, entender lo que les gustará a los usuarios y comunicarse tanto técnica como humanamente

GPT-4 sacude la certeza profesional sobre programar

  • El autor quería enseñar programación a su hijo, así como sus padres le enseñaron a leer y escribir
    • Programar se consideraba una nueva alfabetización y una habilidad esencial que abarca desde la producción cinematográfica hasta la física
    • Como programador profesional, sintió que para cuando su hijo pudiera teclear, el valor de programar podría haberse desvanecido
  • El punto de inflexión fue un proyecto de hobby junto con su amigo Ben para crear en computadora crucigramas al estilo de Times
    • En 2018 hicieron un crucigrama de sábado con ayuda de software, y los humanos apenas aplicaban un poco de gusto
    • Esta vez querían crear un programa para producir crucigramas sin intervención humana
  • Ben era fuerte en hardware, pero tenía poca y superficial experiencia profesional escribiendo código, y se había quedado prácticamente en el nivel de hace 20 años
    • Sin embargo, se suscribió a ChatGPT Plus y empezó a usar GPT-4 como asistente de programación
    • Comenzó a crear por su cuenta, y con una velocidad sorprendente, pequeñas herramientas necesarias para el proyecto

El desempeño de la asistencia de IA para programar visto en un proyecto de hobby

  • Cuando necesitaban un comando que imprimiera 100 líneas aleatorias desde un archivo de diccionario, el autor pensó el problema, buscó y pasó por prueba y error
    • Ben simplemente le dijo a GPT-4 lo que quería y obtuvo código funcional
    • El autor pensó que ese tipo de comando siempre había sido complicado y era algo que cualquiera consultaba, así que no era “programación de verdad”
  • Días después, Ben dijo que quería crear una app para iPhone que evaluara palabras del diccionario
    • El autor veía hacer una app para iPhone como algo pesado, porque implicaba aprender el entorno de programación de Apple, un lenguaje nuevo, componentes de UI y el proceso de empaquetado
    • Al día siguiente, Ben le envió una app que hacía exactamente lo que quería y que incluso tenía un diseño bonito
    • Ben dijo que la había hecho en unas horas y que GPT-4 se había encargado de la mayor parte del trabajo difícil
  • Ben también avanzó en un proyecto que conectaba un pequeño altavoz y un LED rojo al retrato enmarcado del rey Charles
    • Era un dispositivo en el que, al escribir un mensaje en un sitio web, el altavoz reproducía música y el LED parpadeaba en código Morse como si fueran joyas de la corona
    • El código para traer mensajes nuevos requería conocimientos de microcontroladores y Firebase, así que era difícil para Ben
    • GPT-4 sugirió la función adecuada de Firebase y código utilizable en el microcontrolador
  • Ben también hizo con GPT-4 algo parecido al juego Snake de los teléfonos Nokia
    • Tras una conversación breve, incluso añadió una función que mostraba cuánto se había desviado de la ruta óptima al perder
    • El autor no estaba seguro de si él mismo podría haber hecho esa modificación
    • GPT-4 lo resolvió en unos 10 segundos

El atractivo de programar y cómo se forma la destreza

  • El autor se sintió fascinado por las computadoras por primera vez a inicios de los años noventa, en Montreal, mientras jugaba Mortal Kombat con su hermano
    • Su hermano entró a un servidor FTP desde una terminal de MS-DOS, escribió comandos e imprimió código con todas las instrucciones de los fatality del juego
    • El autor lo vio como a un hacker y sintió atracción por encontrar lugares y conocimientos ocultos
  • La frase “mi crimen es la curiosidad” de “The Hacker’s Manifesto” y la película de 1995 “Hackers” reforzaron la sensación de que el conocimiento es poder
    • En la película, Dade Murphy reconoce libros de computación con solo ver la portada, y controla los rociadores de una escuela y el equilibrio de un petrolero con el teclado
    • Para el autor, hackear se parecía más a aprender lo que está oculto que a destruir
  • En la preparatoria, el primer libro introductorio que compró fue “Beginning Visual C++” de Ivor Horton, de 1,200 páginas
    • El comienzo era fácil, pero se atoró en la sección de “Dynamic Memory Allocation”
    • Lo comparó con el pons asinorum, o “puente de los burros”, expresión medieval para el primer punto realmente difícil
  • La experiencia de llegar a ejecutar “Hello, world” le hizo sentir que programar tenía más que ver con la paciencia y la obsesión que con el conocimiento o la habilidad
    • Pasó varios días tratando de hacer funcionar el compilador Borland C++, y cada vez que corregía un error aparecía otro
    • Cuando por fin apareció “Hello, world”, sintió como si la computadora hubiera despertado y lo saludara con su propia voz
  • En la universidad amplió el placer de programar creando pequeños programas
    • Hizo un programa que enviaba mensajes de texto cuando Tiger Woods lograba un birdie o un bogey en el Masters Tournament de 2006
    • También escribió un programa que extraía frases aleatorias de “Ulysses”, contaba sílabas y armaba haikus
    • Pasó 14 horas creando “Jimbo Jeopardy!”, que disfrutaba con sus amigos, y sintió con fuerza lo que significa que alguien se divierta con algo hecho por uno mismo

La edad dorada del ingeniero de software y la paradoja de la automatización

  • Se graduó con promedio de 2.9 en plena crisis financiera de 2009, pero consiguió fácilmente su primer empleo de tiempo completo gracias a su experiencia práctica programando
    • En ese momento, las empresas competían por buenos programadores y contactaban agresivamente a quienes tenían experiencia
    • La popularidad de estudiar ciencias de la computación empezó a dispararse, y los bootcamps de programación prometían convertir principiantes en programadores con salarios altos en un año
  • Con las tasas bajas y el crecimiento del sector tecnológico, mejoró mucho el trato hacia los ingenieros de software
    • Empresas como Google difundieron prácticas como espresso gratis, comidas con catering, buena cobertura médica, licencia parental, gimnasio en la oficina, estacionamiento para bicicletas, ropa casual y el 20% time
    • Se pensaba que estimar tiempos para programar era una tontería, porque un bug podía aparecer en cualquier momento, y los plazos se trataban casi como un tabú
    • Incluso había un ambiente en el que, si la presión era fuerte, bastaba decir “burnout” para ganar unos meses
  • También crecieron las dudas sobre si ese trato podía durar para siempre
    • En el pasado, incluso el diseño web tenía tanta demanda que permitía ganar miles de dólares en trabajos de fin de semana
    • Con la llegada de herramientas como Squarespace, dueños de pizzerías o artistas freelance podían hacer un sitio web con solo dar clics
    • Para los codificadores profesionales, desapareció parte del trabajo de altos ingresos y poco esfuerzo
  • La respuesta de la comunidad de programadores fue más bien seguir aprendiendo tecnologías cada vez más difíciles
    • A los ingenieros de software les encanta automatizar, y los mejores crean herramientas que vuelven inútiles otros tipos de trabajo
    • El apalancamiento de que una sola pieza de código pueda afectar el trabajo de millones era la base del trato privilegiado de los programadores
    • Ese mismo instinto de automatización también reemplaza parte del trabajo de los propios programadores

El programador en la era de la IA, el centaur y las capacidades que permanecen

  • Cuando en su empresa permitieron usar chatbots de IA como asistentes de programación, al principio el autor los evitó conscientemente
    • Pronto empezó a ver con frecuencia en las pantallas de sus colegas el patrón de preguntas y respuestas de los chats con IA
    • Sus colegas decían que esas herramientas elevaban la productividad y que, en algunos casos, permitían resolver problemas 10 veces más rápido
  • Al autor le preocupaba que la IA le quitara el placer de resolver acertijos y la satisfacción de haberlo logrado por sí mismo
    • Los resultados habituales de la programación suelen ser poco interesantes, y a veces hasta ridículamente ordinarios
    • Por ejemplo, añadir a la tabla de un documento importante un encabezado que cruce varias columnas parecía simple si solo se miraba el resultado
    • Pero lo divertido estaba en decidir cómo construir la API para el usuario y qué hacer cuando faltaran columnas sin datos
  • Al final usó GPT-4 mientras hacía una pequeña herramienta para resaltar, dentro de los resultados de búsqueda del trabajo, las partes que coincidían con la consulta del usuario
    • En 1978, Edsger W. Dijkstra escribió en “On the Foolishness of ‘Natural Language Programming’” que el lenguaje natural era una forma de renunciar a la precisión que ofrecen las computadoras
    • En la práctica, usar GPT-4 no era simplemente decir “resuélveme el problema”, sino especificar con cuidado lo que quería, como si se lo explicara a un principiante
    • Al ver los fallos, tuvo que volver sus prompts menos ambiciosos y dividir el problema en subproblemas concretos, abstractos y no ambiguos
  • Después, empezó a notar huecos del tamaño adecuado para GPT-4 en muchas partes de su trabajo
    • También conversó con GPT-4 para transformar la salida del crucigrama en una página web agradable de ver
    • Había detalles como conectar cada letra con palabras horizontales y verticales, pero ya no simulaba en su cabeza números, patrones y loops como antes
    • Como escribió Geoffrey Litt tras una experiencia parecida, quedó la sensación de no haber usado el “cerebro detallista de programador”
  • Los casos de Lee Sedol en Go y del ajedrez muestran que, incluso después de la IA, la cultura de una habilidad no desaparece necesariamente
    • Lee Sedol perdió ante AlphaGo en 2016, se sintió orgulloso de haber ganado una partida tras varios días de enfrentamiento y se retiró tres años después
    • El ajedrez se volvió todavía más popular después de que la IA lo conquistara, y quienes aprenden pueden recibir de un coach de IA problemas apenas por encima de su nivel y explicaciones de por qué perdieron
    • Los grandes maestros de élite estudian las jugadas sugeridas por la computadora como si fueran tablas divinas
  • GPT-4 hoy es peor programador que el autor, y a una persona común también le cuesta usarlo como lo haría un programador, pero el modelo centaur ya existe
    • Ben por sí solo es un programador muy inferior al autor, y GPT-4 por sí solo también lo es todavía, pero la combinación de Ben y GPT-4 muestra una productividad inquietante
    • Si hacer software se vuelve más fácil, se difundirá más, y los programadores podrían encargarse del diseño, la configuración y el mantenimiento
    • Si programar en sí pierde importancia, podría volverse más importante decidir qué vale la pena construir, qué les gusta a los usuarios y cómo comunicarse tanto técnica como humanamente
  • Lo que habría que enseñar a los hijos quizá no sea una habilidad específica, sino el espíritu del hacking
    • En el futuro, programar escribiendo directamente C++ o Python podría parecer tan pintoresco como dar instrucciones binarias con tarjetas perforadas
    • Hacer que una computadora haga exactamente lo que uno quiere podría convertirse en pedirlo con cortesía
    • En la era agrícola, los codificadores habrían manipulado molinos de agua y variedades de cultivo, y en la época de Newton tal vez se habrían obsesionado con el vidrio, los tintes y la medición del tiempo
    • La próxima generación podría pasar noches enteras explorando el interior de la IA que sus padres trataban como una caja negra, y aunque la era de programar se apague, el hacking seguirá

3 comentarios

 
xguru 2023-11-15

La parte final del texto quedó un poco recortada y resumida, pero la última oración es importante.

"I shouldn’t worry that the era of coding is winding down. Hacking is forever."
"No hay que preocuparse por que la era de la programación esté llegando a su fin. El hacking es eterno."

 
kuroneko 2023-11-15

Viendo que apenas se ofrece una función de integración en Bard ya es posible filtrar información con prompt injection y cosas así,
parece que el hacking es eterno.

 
GN⁺ 2023-11-15
Opiniones de Hacker News
  • GPT-4 es realmente impresionante, pero para mí la esencia del desarrollo de software nunca fue programar en sí
    GPT-4 falla con frecuencia, no siempre queda claro cómo falla, y se desploma aún más en áreas donde hay poco material de entrenamiento
    Incluso si mejorara 20 veces, si permite crear buen software de forma más barata y fácil, me parece algo positivo para el mundo
    Si alguien disfruta de verdad programar como hobby, la IA no va a impedirlo, y aunque programar desapareciera, siento que la esencia de la ingeniería de software nunca estuvo ahí

    • Creo que todavía falta bastante para que una herramienta llegue a inventar por sí sola soluciones para problemas complejos y de alto nivel sin precedentes en línea
      Los LLM son rápidos y bastante decentes, pero se parecen más a un reemplazo de Stack Overflow con muchos errores; como herramienta para complementar la capacidad de los programadores, en el corto y mediano plazo su efecto neto parece grande
    • GPT-4 nunca me ha dado una solución útil en mi área especializada de ingeniería
      Los problemas donde uno se atasca suelen ser tan amplios y complejos que ni siquiera caben bien en la cabeza de una persona, y GPT casi siempre propone soluciones prácticamente inutilizables
      Con respecto al código, es como un todólogo que sabe un poco de todo pero sin profundidad; para desarrolladores junior o de nivel intermedio podría ser distinto
    • GPT-4 es bastante malo para depurar durante horas código que oculta varios bugs de forma sutil
      Probablemente casi nadie considera que la parte más divertida de programar sea depurar código que a simple vista parece obviamente correcto
      Aun así, creo que se pueden encontrar mejores formas de usar los LLM, como ponerlos en un loop hasta que pasen una suite de pruebas, o hacer que generen código acompañado de una prueba de corrección verificada por un asistente de pruebas
    • Yo también estoy en gran parte de acuerdo. He disfrutado muchos proyectos que programé durante toda mi vida, y hasta en proyectos que me caían en el escritorio sin pedirlos, solía encontrar alguna manera de disfrutarlos
      Dicho eso, mis gustos iban más hacia proyectos con cierto grado de criterio artístico que hacia código más académico, cuyo valor se mide con métricas cuantitativas como ciclos o latencia
      El tipo de programación que disfrutaba al principio de mi carrera ya venía disminuyendo desde antes de ChatGPT, y haber empezado en la época en que los ingenieros cuidaban la tienda parece, viéndolo ahora, haber sido un privilegio
    • Llevo 20 años haciéndolo como profesión y más de 10 adicionales como hobby, pero programar es la peor parte de todo el proceso
      El código no me interesa mucho; lo único que quiero es construir algo
  • ¿Soy el único al que con el tiempo los LLM impresionan menos?
    Cuando salió Copilot por primera vez en 2021, yo también tuve ese momento de “pronto me voy a volver inútil”
    Pero por mi experiencia usándolo y por lo que muestran las investigaciones, creo que los LLM modernos tienen fallas fundamentales y no están en el camino hacia una inteligencia general
    GPT-4 es mejor que 3.5, pero no es algo fundamentalmente distinto, y sospecho que 5 será parecido. Cuando de verdad aparezca una IA poderosa, probablemente nos reiremos de toda la atención que le dimos a esta tecnología

    • Para nada eres el único
      Al principio fue muy impresionante, pero ahora no puedo confiar en él más allá de esquemas muy generales
      Por ejemplo, cuando intenté implementar un sintetizador de sonido desde cero para generar muestras de audio y guardarlas como archivo wave, el resumen ayudó a entender el concepto, pero el código estaba sutilmente mal
      Fallaba especialmente en detalles como qué cosas se incluyen al calcular la longitud de una estructura, y siendo principiante ni siquiera podía estar seguro de si estaba bien o no
      Si le pedía que lo verificara, se disculpaba y cambiaba la respuesta hacia lo que yo quería escuchar, así que no era confiable
      Aun así, como herramienta para sentirse menos solo al programar, es bastante buena, y solo lanzar ideas y ver qué responde ya ayuda
    • Jaron Lanier tiene una idea parecida sobre el espacio entre la prueba de Turing y Blade Runner
      Los primeros espectadores del cine encontraban inquietantes incluso las simples películas en blanco y negro, y se agachaban al ver un tren venir hacia la pantalla
      Quienes oyeron un fonógrafo por primera vez también decían que no podían distinguirlo de una orquesta en vivo
      Cuando te familiarizas con una tecnología, también aprendes a reconocerla y desarrollas intuición sobre sus límites y fortalezas. Por eso con el tiempo parece menos impresionante
      Es fácil maravillarse cuando hace algo que creías que no podía hacer, pero que luego no logre algo que esperabas que sí pudiera hacer no significa que haya que descartarlo de inmediato
    • Es difícil afirmar tajantemente que GPT-4 no sea fundamentalmente mejor que GPT-3.5. Para mí la diferencia es como de la noche al día
      Si GPT-5 diera un salto similar, sería difícil competir sin usarlo
      Ambos son modelos GPT y fueron entrenados como simples modelos autorregresivos de lenguaje, pero GPT-4 me ha dado una sensación de cambio dramático incluso a nivel personal en momentos donde sintetiza bien la información según lo pedido en distintos contextos
      Los LLM al final son inferencia probabilística sobre grandes volúmenes de texto, pero con suficiente cómputo y datos, creo que un modelo grande puede llegar a crear durante el entrenamiento estructuras para entender los datos de manera óptima
      Si los datos se vuelven multimodales, cada modalidad puede corregir y aclarar representaciones erróneas del mundo, así que el efecto podría crecer no como una suma sino como una multiplicación
      Seguro nos reiremos al ver qué tan bueno será un GPT-10 entrenado con texto, imágenes, video, audio y sensores de gusto, pero aun así creo que GPT-4 ya fue un avance mayor que cualquier otra etapa que haya dado la humanidad
    • A mí me pasa algo parecido
      Veo gente que seriamente escribe un prompt como “escribe una expresión que sume 2 y 2”, obtiene el 2+2 que necesitaba y luego afirma que eso es eficiencia mágica
      Sinceramente, no me gusta mucho escribir largo, y para mí el código siempre es más corto y más rápido que explicarlo en lenguaje normal. De hecho, para eso existe el código
    • La primera impresión estaba sobrevalorada, y la impresión actual suena como una corrección después de bajar de ahí
      Desde expectativas muy altas, uno puede decir que “tiene fallas fundamentales”, pero si el punto de referencia es “no sirve para nada”, como piensa mucha gente, entonces también puede verse como una herramienta sorprendente
  • Cada pocos meses también pongo a ChatGPT a resolver una prueba sencilla de testing de frontend que les doy a desarrolladores junior, y todavía no la ha pasado. Ni cerca.
    Responde con seguridad, pero con pequeñas inexactitudes, y el código que genera se parece al tipo de código absurdo que entregaría un recién egresado de bootcamp que en un CV de 8 páginas dice haber “dominado” 50 tecnologías.
    Si ha mejorado, yo no lo he notado.
    Hace 10 años también decían que los camiones autónomos iban a revolucionar la industria del transporte en 10 años, y la cobertura mediática sobre los LLM es igual.
    Se ve impresionante, pero ¿hasta cuándo vamos a seguir con algo que, cada vez que le pides girar a la izquierda, acelera a 100 millas por hora y se estrella contra una pared?
    Quiero usar la IA para conectar constelaciones de puntos que un ser humano jamás podría unir, y luego que un experto valide el resultado antes de seguir. No sé cuándo llegará el día en que recibamos una nueva herramienta CLI o app con gpt install, pero no será pronto.

    • Hace unos años, en un equipo que estaba construyendo un sistema crítico de seguridad pública con plazos muy ajustados, tuve que pasar a CSS unos wireframes del backend administrativo.
      Quedó más o menos bien, pero no coincidía al píxel y el líder del equipo me dijo que lo hiciera de nuevo. No aportaba ningún valor de negocio, pero nuestro equipo estaba orgulloso de hacer las cosas pixel perfect.
      Ese trabajo fue una de las razones por las que dejé el desarrollo frontend.
      Hace poco, por práctica, le pedí a ChatGPT que generara un CSS parecido y lo hizo perfectamente.
      Yo tengo un nivel intermedio con CSS, pero con ChatGPT puedo producir resultados más cercanos a la calidad de quienes son expertos en CSS. Como dice el texto, ahora un generalista de nivel medio puede competir con especialistas.
    • Me da curiosidad qué tipo de prueba les pones. Siento que ahora sí podría pasarla.
      Mi experiencia ha sido bastante distinta. Yo soy un desarrollador backend exigente que incluso necesita validación formal si hace falta, y me desespera cuando algo no funciona de forma lógica.
      Como trabajo con computadoras, todo debería ser lógico, pero gran parte del frontend no me resulta lógica en absoluto.
      Le preguntas a alguien de frontend “¿cómo centro el texto?” y te dice text-align, pero claro que eso fue lo primero que intenté, y no funcionó.
      Incluso la gente de frontend a veces no puede responder preguntas simples al instante y tiene que probar cosas y fallar primero.
      Ahora, si Copilot no me da la respuesta de inmediato, ChatGPT-4 o mi GPT personalizado “front-end hacker”, que conoce nuestro codebase, lo arregla. Funciona bien todos los días, todo el día.
    • He tenido una experiencia parecida tanto con la implementación de Tesla AP/FSD como con los LLM.
      La primera vez parece un truco impresionante, como una tecnología alienígena traída del futuro.
      Pero con el tiempo empiezas a verle los huecos, y te das cuenta de que, incluso tras usarlo durante meses o años, esos huecos no se cierran fácilmente.
      La velocidad de mejora es moderada en relación con la brecha que aún falta cerrar, sobre todo comparada con el marketing y la retórica, y al final usarlo puede sentirse más como trabajo que no usarlo.
      Puede que un enfoque de aprendizaje automático puramente guiado por datos no sirva para problemas que requieren una precisión muy por encima del 80%.
      Está bien para algoritmos de trading que ganan dinero aunque acierten solo el 55%, motores de recomendación que te muestran listas de películas o canciones para scrollear, resultados de búsqueda que solo vas a revisar por encima, o filtros de spam que reducen el ruido en la bandeja de entrada.
      Pero problemas como “esta es la respuesta correcta” o “maneja un auto sin matar gente” son mucho más difíciles.
    • Pasé 2 horas intentando que ChatGPT escribiera en Python una función de interpolación suave que funcionara.
      La mayoría ni siquiera pasaba por los dos puntos que debía interpolar, y cuando se lo señalé, entonces me devolvía una función que sí pasaba por los puntos pero ya no era suave.
      De verdad lo intenté, empezando desde cero varias veces.
      Si algo así escribiera código para controlar máquinas, sería un caos total, así que creo que hay que elegir entre un mundo con aprendizaje automático y un mundo con drones de reparto robóticos.
      Eso sí, para cosas pequeñas, como convertir variables en parámetros de función, lo hizo bastante bien.
    • Hace poco, los LLM más avanzados mostraron un rendimiento pésimo en benchmarks de codificación real: https://www.swebench.com/
      Aun así, parece que al final también superarán esta prueba, y entonces la pregunta que quedará será si se trata de capacidad real o de filtración de datos.
  • No entiendo que la gente realmente vea este momento como el ocaso de esta habilidad
    Desde mi perspectiva, parece que pronto entraremos en la era de la productividad cuántica de la programación
    Me entusiasma muchísimo porque la asistencia de IA no solo mejora lo que escribo, sino que también me ayuda a aprender mientras trabajo. No recuerdo otra época en la que escribir software haya sido tan disfrutable como en este último año
    Llevo décadas escribiendo software, pero ahora casi siempre tengo a mi lado un coach que me ayuda a superar los puntos donde me atasco y a entender las decisiones
    No es solo el equivalente de ir al escritorio de un colega a preguntarle por un problema; realmente te da soluciones productivas que inspiran el resultado
    Es realmente asombroso
    No entiendo por qué lo ven como el fin de la programación. No veo evidencia de que los asistentes de programación con IA vayan a reemplazar a un desarrollador decente. Salvo que seas realmente pésimo para crear algo
    Se siente como si alguien dijera: “ahora los cimientos son gratis, pero aún puedes construir la casa”
    Yo igual tengo que construir la casa, planearla, diseñarla, hacerla, darla a conocer, darle soporte, defenderla y explicarla. Solo que ahora es más fácil porque no tengo que hacer los cimientos yo mismo

    • Estoy de acuerdo en que es realmente asombroso, pero falta la pregunta económica que va a determinar cuánta gente podrá disfrutar esta nueva experiencia de desarrollo
      Si la IA vuelve a los desarrolladores el doble de productivos, ¿la capacidad adicional de desarrollo será absorbida por la demanda existente y nueva? ¿El número de desarrolladores se reducirá a la mitad? ¿O habrá la misma cantidad de desarrolladores, pero con salarios mucho más bajos?
      Estas preguntas existen incluso si ni un solo puesto actual de desarrollador es reemplazado por completo por la IA
      También importa qué tipo de trabajo encaja bien con la automatización por IA. Pienso en tareas como CSS, donde necesitas conocer muchos pequeños detalles técnicos dentro de un contexto limitado para producir pequeños cambios en el resultado
      Si haces este tipo de programación, creo que ya es momento de ampliar tu rango de habilidades para incluir responsabilidades más amplias
    • Se puede ver como que la habilidad está entrando en decadencia porque “los cimientos se volvieron gratis, pero nadie va a saber cómo funcionan esos cimientos”
      Los recién llegados ya no entienden varias de las capas que los programadores del pasado tenían que comprender, y esas capas todavía pueden influir sutilmente en el comportamiento
      Si eres alguien que lleva más de 13 años programando en el ámbito de las tecnologías web más extendidas de las últimas décadas, puedes sentir que la habilidad se apaga al ver que cada año se vuelve más difícil entender todo el stack del que depende la web
      En frontend, cada vez es más difícil aprender lo que hizo otra persona solo mirando el código. Ver el código de un sitio ya no ayuda mucho por las tecnologías modernas de build, y esta queja ya existía incluso hace 13 años
      Si tienes hijos o responsabilidades fuera del trabajo, cada vez es más difícil para quienes están fuera de la escuela pulir sus habilidades con práctica intencional, en una situación donde el software sigue devorando más y más áreas
      Que aumente la productividad no significa que también aumente la artesanía. Se parece a cómo la industrialización elevó la productividad y masificó muchos productos, pero no benefició a las habilidades artesanales
    • Creo que lo que pasó en hardware también va a pasar en software
      Antes era común ver gente que podía soldar componentes en una placa y conectar varios circuitos integrados; yo mismo lo hice en la universidad
      Ahora esa capa artesanal desapareció, y la gente se divide entre expertos que entienden extremadamente bien cómo funciona el hardware de computadora y personas que simplemente compran hardware y lo tratan como si fuera magia
      Tradicionalmente, uno mostraba interés, se entrenaba y se convertía en experto pasando por una etapa intermedia, y un hobby podía convertirse en profesión
      Hoy, si trabajas en una fábrica de chips, no es porque hayas sido “el niño que agarraba un cautín”, sino porque pasaste por un largo proceso académico. Terminas aprendiendo cosas tan avanzadas que soldar parece de la Edad de Piedra
      En software todavía existe esta capa artesanal intermedia, pero está desapareciendo rápido, y no solo por los LLM
      Hay mucha gente que conecta sitios web más o menos como puede para que funcionen, o que resuelve el trabajo cotidiano con Excel o scripting en Python, pero sin conocer conceptos avanzados
      Cuando aparecen herramientas tipo GPT, los expertos necesitan menos ayuda de los junior. En vez de que un arquitecto de sistemas trace la estructura y reparta tareas pequeñas a los junior, puede obtener de un LLM lo que necesita
      Como resultado, habrá menos personas que lleguen a entrenarse al máximo nivel, y aunque esa minoría será mucho más productiva, mucha gente va a quedar aislada en el medio
    • Últimamente siento que los pesimistas del software son o gente sin experiencia y sin perspectiva sobre los cambios de la industria, o personas que desde el principio no podían construir mucho más que apps básicas de CRUD y paso de datos
    • El autor no es un programador profesional. Tiene algunos proyectos paralelos y no parece que programe especialmente bien
  • No niego que la IA pueda escribir buen código y mejorar con el tiempo, pero no sé cómo funcionaría un flujo de trabajo en el que la IA reemplace a la mayoría de los desarrolladores
    Si tomamos como ejemplo tareas como escribir endpoints CRUD de un programador junior, puede que me tome más tiempo describir requisitos que coincidan exactamente con lo que quiero que codificarlo yo mismo con ayuda de herramientas como Copilot
    ¿De verdad se puede imaginar a un usuario no técnico desarrollando de la A a la Z con IA? Si el código generado tiene bugs, ¿podemos asumir que en ningún momento hará falta intervención humana?
    Incluso si un técnico interviene cuando aparece un bug, si toma tiempo investigar lo que escribió la IA y entender después qué pasó, el ahorro en el costo de escribir código desaparece rápido
    Al final, escribir código es una parte pequeña del trabajo, y los LLM son buenos para generar código, pero en esencia no son solucionadores de problemas
    Esta tecnología es increíble, pero parece que será otra herramienta más en la caja de herramientas del desarrollador. También es un gran tutor, y en problemas aislados como scripts para extraer contenido de páginas web, puede evitar que haga falta llamar a un desarrollador

    • Estoy de acuerdo en que en su estado actual no puede reemplazar por completo a los desarrolladores
      Pero sí puede hacer mucho más sencillo el flujo de trabajo de muchos desarrolladores, permitiendo hacer lo mismo con menos gente o más cosas con el mismo equipo
      También lo escribí en otra parte de este hilo: https://news.ycombinator.com/item?id=38259425
      Básicamente, me pareció un asistente general muy potente y un compañero de lluvia de ideas para tareas que normalmente consumen mucho tiempo
      No se limita al código; también lo he usado para documentación, dándole información en bruto para que la organice en un documento coherente o para recibir retroalimentación
      También ayuda al incorporarse a un proyecto nuevo, metiéndole fragmentos de documentación difíciles de entender para que los explique
      Incluso en tareas administrativas relacionadas con la gerencia, puse las solicitudes y mi punto de vista para que generara respuestas ajustadas a cierta perspectiva, y así gasté menos energía mental
      Claro, eso también se puede hacer con otras personas del equipo, pero no siempre están al lado y ellas también tienen trabajo. Herramientas como ChatGPT no se cansan, así que puedo soltar sin culpa a mi niño interior que sigue preguntando “¿por qué?” hasta quedar satisfecho
      Incluso cuando sí puedo preguntarle a otra persona, ChatGPT ayuda a pulir las preguntas
    • En esta etapa, se parece a un junior
      Es bastante útil para boilerplate, tareas aburridas y para pasar a código un algoritmo explicado por una persona
      También hace bien la traducción entre lenguajes de programación y, si se le instruye correctamente, saca el trabajo
      Va a tener un gran impacto en las perspectivas de empleo. Aún no puede reemplazar a los ingenieros, pero quienes se especializan como expertos en implementación de ciertas tecnologías están en riesgo. Solo el aumento de productividad ya reducirá la demanda
    • He trabajado mucho tiempo en la digitalización del sector público en Dinamarca, y las herramientas no-code/low-code que afirmaban que ya no hacían falta programadores fracasaron una y otra vez, pero GPT sí está funcionando
      Por mi experiencia anecdótica en 98 municipios, esas herramientas nunca funcionaron bien por mucho tiempo
      En cambio, ahora empleados con cierta intuición digital están creando cosas y automatizando con ayuda de ChatGPT
      Desde la perspectiva del mantenimiento a largo plazo, muchas siguen siendo terribles, como las antiguas herramientas de RPA o de workflows, pero esta vez la gente quizá sí pueda mantenerlas por su cuenta
      Aun así, no son desarrolladores de software, así que no resuelven cosas como escalabilidad, uso de recursos, documentación o manejo de errores
      De todos modos, en la mayoría de los casos solo “ahorran” unas cuantas horas al mes, así que no son lo bastante importantes como para asignarles un desarrollador real, y un 90% puede ser suficiente
      Combinado con mejoras en herramientas como SharePoint Online, se puede resolver internamente trabajo que antes requería desarrolladores internos o consultores externos
      Esto no significa la muerte de la ingeniería de software. No va a escalar, y a largo plazo surgirán problemas cuando arquitecturas amateur tengan que encajar unas con otras
      Pero si tienes que buscar en Google cómo sacar unas cuantas líneas arbitrarias de texto de un diccionario, es difícil decir que no estás en riesgo
      GPT resuelve con bastante facilidad, y suficientemente bien, los “programas que se pueden escribir googleando”, así que esto va a pasar cada vez más en la industria
      Si revisan mi historial, verán que me impresiona y también me decepciona LLM, o más exactamente GPT. Los otros modelos, sinceramente, no dan la talla
      En el trabajo diario no me ha ayudado mucho con desarrollo real, pero sí me escribe casi toda la documentación, y lo hace alarmantemente bien
      También genero mucho código creando tipos, clases, etc. a partir de hojas de mapeo de datos en Excel, y funciones CRUD. Antes lo hacía con scripts cortos de CLI, pero ahora GPT se encarga de casi todo
      Pero para manejar lógica de negocio que requiere eficiencia con código bien diseñado, es pésimo, y hasta ahora no ha mejorado nada
      En las grandes empresas europeas no técnicas y en la enorme industria de TI y consultoría que las apoya, hay muchos desarrolladores haciendo justo el tipo de trabajo en el que GPT es bueno, y conforme la herramienta mejore, en general se necesitarán muchos menos desarrolladores de software
      Lo que me preocupa en particular es que todavía les enseñamos a los estudiantes de CS muchas cosas en las que GPT ya es bueno
      Soy examinador externo de estudiantes de CS a nivel universitario, y GPT podría sacar casi la nota perfecta en el currículo, porque se enfoca mucho en producir código empresarial “fácil”
      Me preocupa que muchos estudiantes la pasen mal cuando los LLM se establezcan de verdad, y que el currículo no cambie a tiempo. La educación superior en Dinamarca ya llevaba algo de retraso desde hace 10 años en adaptarse a la realidad.
  • «Programar se parece más a la perseverancia, o quizá a la obsesión, que al conocimiento o la habilidad. Los programadores son personas capaces de soportar una interminable fila de obstáculos aburridos» resume muy bien por qué hay optimismo con la programación asistida por IA
    La curva de entrada a la programación es terriblemente empinada, no porque sea difícil, sino porque es desesperante
    Hay que aguantar 6 meses entre mensajes de error extraños y puntos y coma faltantes antes de sentir que realmente estás construyendo algo y avanzando
    La mayoría se rinde y cree que «no es lo suficientemente inteligente», pero en realidad lo que pasaba es que no tenía la paciencia para atravesar ese lodazal
    Creo que los LLM sí influyen mucho en esa curva de aprendizaje inicial. Es bueno que más gente pueda aprender programación básica y automatizar con computadoras las tareas repetitivas y aburridas de su vida

    • Las computadoras son groseras y honestas, y los humanos prefieren mentiras bonitas antes que verdades feas
      Los programadores tienen que aceptar verdades feas en su día a día más que casi cualquier otra profesión. Los ingenieros físicos, obreros de construcción y técnicos de reparación también necesitan esa virtud, pero se les exige con menos frecuencia porque su ciclo de retroalimentación es más lento
    • Sinceramente, lo veo como un paso hacia atrás
      Es parecido a decir que Google Translate volvió a todo el mundo fluido en español
      Al final, para usar ChatGPT de forma efectiva, igual hay que revisar el código y entender cómo funciona
      Escribir el código en sí nunca fue la parte difícil del desarrollo de software
      Si esta herramienta apenas adelanta 6 meses a los desarrolladores, sería mejor dar clases de ciencias de la computación en la escuela en términos de recursos de cómputo, y además produciría una generación de ingenieros mucho más sólida
    • Sí. Los LLM también tienen muchas otras formas de mejorar la calidad de vida
      Los proyectos de software complejos con muchos usuarios tienen en la práctica un backlog interminable de tickets de bugs abandonados
      Creo que hace unos meses se corrigió en Firefox un bug de 25 años
      La mayoría de los compiladores y frameworks acumulan tickets como «mejorar el mensaje de error cuando ocurre X», pero el tiempo de los programadores es demasiado caro como para que eso suba en prioridad
      Con el tiempo, la diferencia entre un senior y un junior muchas veces termina siendo menos la inteligencia o la experiencia real, y más las cicatrices acumuladas al abrirse paso entre bugs y problemas de usabilidad que nunca se resolvieron antes del fin de vida del producto
      Harían falta varios avances grandes más para que la IA reemplace por completo a los programadores, pero soltarla en un rastreador de bugs para que produzca pequeños arreglos todo el día ya está bastante al alcance
      Entonces la programación humana sería más divertida y más fácil de aprender
    • Esto de verdad suena muy bien
      Me hace pensar en la gente común que vive atada a las limitaciones de las apps que usa, y en la popularidad de libros del estilo «automatiza con Python»
      Si gracias a esta nueva tecnología la gente deja de estar atada a esas limitaciones, sería algo bastante genial
    • Incluso usando LLM, el trabajo sucio y aburrido sigue ahí
      El código sigue siendo un artefacto complejo y frágil
      Que un LLM escriba código es apenas el comienzo, y para la mayoría de la gente lo ideal sería más bien low-code/no-code con asistencia de LLM
  • Estoy teniendo esta discusión con un amigo que trabaja en IA y redes neuronales
    Él dice que programar pronto será algo anticuado y que todo será reemplazado por generación de código estilo ChatGPT
    Yo, como «ingeniero senior», veo que la abrumadora mayor parte de mi trabajo consiste en comunicación, liderazgo dentro de la organización, entender de verdad los requisitos del producto y cómo encajan con nuestros sistemas
    Sí escribo código, pero incluso si gran parte de eso se reforzara con generación de código, casi nada de lo que hago cambiaría demasiado

    • La cosa cambia si metes a los ingenieros junior aquí
      El trabajo de un junior no es ese, sino tomar issues registrados e implementarlos. No se les asignan problemas difíciles, sino tareas con criterios de aceptación ya definidos
      Si algo como un futuro CodeGPT reemplaza por completo sus habilidades de programación, ¿cómo sería su camino para volverse seniors dentro de 10 años?
      Los seniors de hoy se jubilarán dentro de 10 o 20 años, y si son reemplazados por personas que sí recibieron de lleno los beneficios de la generación automática de código, «programar» podría volverse algo que hacían los viejos antes de que las máquinas lo hicieran por ellos
    • Comunicación, liderazgo organizacional y entender los requisitos del producto suenan como problemas que existen porque se trabaja con personas
      Si gracias a la IA se vuelven posibles equipos más pequeños pero más capaces, habrá menos necesidad de líderes y reuniones, y todo será mucho más eficiente
      También puede que haya que despedirse del tiempo que se dedicaba a mentorizar ingenieros junior. Pronto ya no habrá juniors
    • También estoy de acuerdo. Mi experiencia como desarrollador profesional también ha sido en gran parte así
      Navegar la organización, conectar con otros equipos y tratar de entender qué hay que hacer
      El código que escribo se siente como un subproducto de lo que realmente hago
    • Si es así, el cambio será brutal
      Primero, habrá menos gente involucrada, así que la coordinación se simplificará
      Segundo, más personas podrán acceder a ese rol de coordinación, y es muy probable que lo asuman profesiones o tipos de personalidad que por lo general no eran «buenos programando»
      Si la máquina puede, por ejemplo, explicar el funcionamiento general de lo que se está construyendo, entonces ya no necesitarán una gran habilidad para programar
      Por eso espero una gran sacudida en el mercado laboral y una fuerte caída de los salarios
    • Si cambias «programar» por «martillar», esta historia se parece mucho: https://www.buzzmaven.com/old-engineer-hammer-2/
  • No parece que este artículo lo haya escrito un programador, y algunas respuestas en los comentarios tampoco parecen de ingenieros profesionales.
    ¿Qué partes del trabajo de un programador podría reemplazar la IA de forma realista en un futuro cercano?
    Para fines de la discusión, supongamos que la parte de programar sí se puede reemplazar de manera costo-efectiva. Entonces, ¿podría hacer también las demás partes?
    Cosas como recibir requisitos ambiguos y aclararlos con los equipos de diseño y producto, darle a la IA instrucciones suficientemente buenas como para construir funciones complejas, hacer code review, resolver fallas arbitrarias de compilación, documentar funciones para que otros programadores y stakeholders las entiendan, y depurar y corregir problemas en producción.
    En la práctica, probablemente habrá una larga etapa en la que los programadores se volverán más eficientes usando IA antes de que exista una posibilidad real de que la IA reemplace de forma efectiva a un programador decente.
    Esto favorecerá a los ingenieros que piensan de forma más abstracta, y las tareas de programación de bajo nivel serán las primeras en ser absorbidas.

    • La revisión automática de código y la documentación automática de alta calidad parecen estar a punto de entrar por completo dentro del alcance de los LLM.
      Arreglar fallas arbitrarias de compilación probablemente venga después.
      Entonces la pregunta pasa a ser qué porcentaje del trabajo del programador pueden absorber, y si lo que queda exige otra combinación de habilidades.
      Hay programadores que codifican bien, pero si el negocio les da requisitos algo ambiguos, se quejan a viva voz. Eso pasa porque ven su trabajo solo como programar, no como aclarar reglas de negocio.
      Este grupo va a verse más afectado que los programadores que sí están dispuestos a trabajar en situaciones ambiguas para entender los requisitos del negocio.
    • Ese artículo claramente parece escrito por un programador; no entiendo por qué dicen que no.
    • La característica de GPT es que tiene conocimiento aproximado sobre casi todo.
      Comete errores, pero esos errores parecen tener poca correlación con los errores humanos.
      Sobre todo ahora que Google cada vez sirve menos, a veces sabe cosas que a mí me tomaría horas encontrar buscando.
      En lo personal, lo uso para scripting y asistencia con funciones de ejecución.
    • Todavía no he visto una herramienta de IA que tome un mockup de Figma y requisitos ambiguos, y los convierta en código real dentro de una base de código existente sin ayuda humana.
      Viendo las herramientas actuales, eso todavía parece bastante lejano.
  • Siento que el título no encaja muy bien con el artículo.
    El título habla como si la programación, como habilidad, fuera a ser reemplazada, pero el artículo en realidad sostiene que va a cambiar mucho, y mi intuición también va más por ahí.
    Al final, la barrera de entrada se está reduciendo. ¿Eso es algo malo? Desde una perspectiva egoísta, sí; desde una perspectiva social, no.
    Creo que uno de los problemas que enfrentan Canadá y, hasta cierto punto, Estados Unidos es la desigualdad.
    La gente que trabaja en empleos de servicios más “promedio” gana mucho menos que los ingenieros, y eso ha sido bastante incómodo en los últimos años.
    El valor social de la IA generativa está en hacer que trabajos de conocimiento como derecho, medicina e ingeniería de software sean mucho más accesibles para la gente “promedio”.
    Habrá desventajas, pero repartir el poder de manera más uniforme parece un camino más cercano a la utopía que un elitismo mal orientado. Lo segundo suena más bien como el camino a la autocracia.

    • No creo que derecho, medicina e ingeniería de software sean las causas principales de la desigualdad salarial.
      Si el salario mínimo fuera el más bajo y el salario de los programadores el más alto, América sería una economía muy igualitaria.
      Si automatizas las rutas que quedan hacia la clase media en Estados Unidos, solo vas a ampliar más la brecha entre los capitalistas dueños de la infraestructura de automatización y la gente empujada hacia las áreas no automatizadas, cada vez más reducidas.
    • Si el desarrollo de software se vuelve tan simple que la gente de esas profesiones puede hacerlo, entonces los salarios también se desplomarían.
      Eso no mejoraría su situación.
    • Creo que lo que temen los desarrolladores de software es terminar uniéndose al grupo de bajos salarios.
  • Desde la perspectiva de alguien de pelo canoso que no programa todos los días, ChatGPT me ha parecido impresionante como asistente de programación.
    Se siente como tener un desarrollador junior de guardia por 20 dólares al mes.
    El mes pasado necesitaba una utilidad rápida y sucia, así que descompuse el problema yo mismo en 4 o 5 pasos, luego hice que ChatGPT escribiera la función de cada paso y después yo las uní.
    En su mayor parte salió bien, pero hubo una parte que requirió demasiada guía y ajustes antes de dar el resultado que quería.