3 puntos por GN⁺ 8 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Incluso en la era de los LLM y del vibe coding, programar sigue siendo más que una habilidad laboral: es un medio para aprender matemáticas, métodos de aprendizaje y expresión creativa
  • El ambiente en el que “learn to code” se usaba casi como un lema de movilidad social rápida se debilitó, y unas pocas líneas de JavaScript no garantizan un salario de seis cifras
  • Como muestran los casos de LOGO y Mathland, programar permite entender las matemáticas mediante la exploración en lugar de memorizar instrucciones, y también entrena la depuración, la composición y la lógica
  • La programación combina la imaginación de la escritura, la precisión de las matemáticas y la retroalimentación inmediata de los juegos, obligando a refinar el resultado deseado en un lenguaje que la computadora pueda ejecutar
  • Así como el valor de las humanidades no desaparece aunque los LLM manejen bien el inglés y el código, la necesidad de una alfabetización universal en código también sigue vigente

El valor de programar más allá de garantizar empleo

  • Steve Krouse, fundador de Val Town, dirige una “startup de Silicon Valley” para escribir y desplegar código, pero aun así afirma que todo el mundo debería aprender a programar
  • En Making Sense with Sam Harris #481, se comenta que en Silicon Valley hacía meses que no se escuchaba la frase “learn to code”
  • En algún momento, “learn to code” se repetía como si fuera una vía rápida para salir de la pobreza, pero poder escribir dos líneas seguidas de JavaScript no trae consigo un salario de seis cifras
  • Vale la pena aprender a programar no solo por su utilidad profesional, sino también por razones educativas, al igual que las matemáticas, la literatura, la ciencia y las humanidades

Un medio para aprender matemáticas y entrenar el pensamiento

  • Programar puede ser un medio poderoso para aprender matemáticas
    • Steve Krouse llegó a disfrutar las matemáticas gracias a un programa de programación extracurricular, y terminó siendo mejor en matemáticas de lo que esperaba
    • Seymour Papert quería que los niños aprendieran matemáticas como aprenden a hablar: no mediante instrucciones, sino mediante la exploración
    • El “Mathland” de Papert era el lenguaje de programación LOGO, que consistía en darle órdenes a una tortuga en la pantalla para que dibujara
    • Steve Krouse también creó una versión de LOGO que se puede probar en línea
  • En el proceso de aprender programación, también se desarrollan metahabilidades como la depuración, la composición y la lógica, además de la sensación de que no hay nada que no se pueda aprender

La programación como actividad creativa

  • Programar es una actividad donde se encuentran la creatividad de la escritura, la precisión de las matemáticas y un ciclo de retroalimentación inmediata parecido al de los videojuegos
    • Obliga a refinar lo que uno quiere en un lenguaje preciso que la computadora pueda ejecutar
    • Se compara con recitar hechizos, en el sentido de que, tras aprender una sintaxis desconocida, uno logra que la computadora cree realmente aquello que imaginó
  • Los LLM pueden escribir bien tanto en inglés como en código, pero así como eso no elimina la relevancia de las humanidades, el código también sigue siendo importante
  • Como los documentos legales, el código puede parecer un conjunto de detalles difíciles y aburridos, pero es la base sobre la que funciona el mundo, y una línea de código elegante puede cambiarlo
  • Programar es una actividad placentera y, incluso en la era de los LLM, sigue vivo el sueño de una alfabetización universal en código o de una “verdadera revolución informática”

1 comentarios

 
GN⁺ 8 시간 전
Opiniones de Hacker News
  • Incluso entre quienes ya sabían programar antes de los LLM, las habilidades de programación ya se están atrofiando, y parece que seguirá así durante otros 10 o 20 años
    Aprender a programar durante ese mismo período quizá tampoco tenga una gran recompensa
    Al final, el único código con el que se entrenarán los LLM del futuro será código generado por LLM, y la calidad de las bases de código en producción probablemente caerá hasta un nivel en el que a los humanos les resulte difícil entenderlas y a los LLM les cueste mantenerlas, dejando ver las grietas
    Para entonces, programar volverá a ser una habilidad valiosa, pero desde el punto de vista de planear una carrera, ese momento es incierto, y el mercado puede seguir siendo irracional más tiempo del que una persona puede aguantar

    • Es parecido a Profession, de Isaac Asimov
      Seguirá haciendo falta gente que escriba código directamente y recupere la artesanía
      Si todo el mundo depende de código generado, solo se podrá repetir lo que ya se conoce, y únicamente quienes hayan aprendido el camino difícil mediante estudio real tendrán la creatividad y la inteligencia para crear conocimiento nuevo y nuevas cintas educativas
    • Es una perspectiva bastante optimista
      Los puntos 1 y 2, que las bases de código en producción se vuelvan incomprensibles para los humanos y difíciles de mantener para los LLM, sí ocurrirán, pero no creo que ocurra el punto 3, que luego programar vuelva a ser valioso
      En particular, la gerencia bajará sus expectativas, o será obligada a hacerlo
      Basta pensar en lo común que es que una “versión nueva y mejorada” elimine funciones importantes que uno usaba, sin un reemplazo adecuado
      Cuando una base de código se vuelva inmantenible, lo más probable es que simplemente generen de nuevo otro montón de basura y llamen mejoras a cambios aleatorios por todos lados
    • Tengo una de las últimas laptops Fujitsu dignas de mención y soy un gran fan
      Cuando Fujitsu intentó reanudar la producción de laptops hace unos 5 años, la única forma práctica era volver a reunir a trabajadores japoneses jubilados
      Parece que las generaciones más jóvenes no tenían la habilidad o no tenían muchas ganas de hacerlo, y tras unas cuantas tandas de producción, al parecer se terminó
      Panasonic todavía fabrica laptops empresariales, pero son muy caras, y esta historia está directamente relacionada con este tema
    • Para ser un programador productivo con Claude, todavía hay que entender qué se está haciendo
      Aprender a programar es indispensable, y hay que saber qué es posible y qué es fácil para saber cuánto se puede pedir
      Lo que se vuelve menos importante es mantener el filo siempre bien afilado
      Si uno escribe menos código durante un tiempo, aumentan los errores puntuales o los errores de copiar y pegar, pero gracias a los LLM, la importancia de mantener caliente el instinto de programador disminuye
      Aun así, si no hubiera sabido hacerlo yo mismo, no creo que pudiera hacer mi trabajo aunque existiera Fable
    • Se parece más a “los desarrolladores mayores seguirán quejándose de la caída en la calidad del código y añorando los viejos tiempos de la programación”
      Mientras tanto, más gente que nunca creará y usará software, y es probable que las peroratas de “todo se está yendo al demonio” parezcan absurdamente exageradas
  • Decir que “el código es una forma de expresión creativa hermosa y tan rica como la literatura o la música” parece una exageración, y me pregunto qué tan familiarizado está el autor con la literatura y la música
    La mayor parte de la programación se parece más a trabajos de plomería
    Llegas, te quejas del trabajador anterior y resuelves un rompecabezas con restricciones particulares
    La razón por la que los LLM programan bien es que en programación se quiere código aburrido y común

    • La mayor parte de la programación se parece más a basura desechable, y si la plomería fuera tratada así, literalmente estaríamos viviendo entre porquería grave
      Nunca tuve un plomero que llegara a insultar al anterior; cambiaba algo o arreglaba algo que yo había roto
      El resultado funcionaba perfectamente durante años o décadas, aunque yo no lo tratara con cuidado
      Hacer algo aburrido y común también puede llamarse arte, a falta de una palabra mejor
      No puedes nombrar una función como si fuera código abreviado, ni tampoco como ThisIsTheEntryPointOfTheProgram(), y qué es mejor se vuelve objeto de reflexión y debate interminables
      Damos por sentadas estas cosas “pequeñas” porque asumimos como normales los reemplazos frecuentes y la hinchazón, pero un plomero jamás haría eso
      Ellos no introducen un nuevo material de cañerías cada semana para luego cambiarlo por la siguiente moda, y como en general construyen cosas que duran más que las personas, parecen ejercer un oficio de un planeta completamente distinto
    • Parecen estar en lados opuestos de la misma cerca
      La demoscene es programación para diversión y expresión creativa, y también existe el IOCCC
      Eso equivale a una novela escrita de forma creativa
      En cambio, también está la escritura hecha simplemente como trabajo, como redactar una base de conocimiento, y eso es programación de plomería como CRUD y la nube
    • Puede que sea cierto para la mayor parte de la programación, pero probablemente la mayor parte de la música y la literatura también sea un revoltijo sin inspiración
      Aun así, hay muchos algoritmos hermosos, como los que aparecen en los libros de Knuth, y personalmente me parecen más hermosos que cualquier música
    • No me parece una exageración en absoluto
      De hecho, se podría argumentar que el código tiene mayor expresividad que la literatura o la música, porque es más general
      Si uno piensa en el espacio de todos los videojuegos posibles, demos/intros, imágenes generativas y música generativa, nada de eso sería posible sin código
      Creo que se está confundiendo el uso común de un medio con su expresividad
      Muchos usos del lenguaje cotidiano tampoco son interesantes, pero hay que mirar el espacio completo de posibilidades
    • El propósito de artes como la música o la literatura es el arte en sí mismo
      El código es artesanía y un medio para un fin
      Aun así, puede ser hermoso, impresionante y creativo, pero es de otro tipo
      No es un juicio de valor
      El arte también puede ser malo o insípido, y el código puede ser una obra genial
      Pero la razón por la que un módulo lunar o un reloj artesanal son hermosos es que realmente funcionan, y eso es difícil de comparar con la música
  • Como programador profesional que está entrando en el último tercio de una carrera que fue disfrutable, ahora pongo aprender a programar en la misma categoría que “ganarse la vida como poeta”
    Es un arte realmente disfrutable y algunos le reconocen valor, pero conviene planear otra forma de ganarse la vida
    Los seniors que ya saben programar por ahora parecen estar más o menos bien, pero el trabajo se está convirtiendo cada vez más en cuidar modelos como si fueran colaboradores junior

    • Si en realidad no sabes programar, tampoco puedes hacer ese trabajo de cuidado
    • No es falso, probablemente
      Me viene a la mente un viejo amigo
      Estudió música antigua en Harvard, obtuvo un MFA y era muy brillante
      Leía y escribía latín y griego, podía componer e interpretar música en notación medieval, y también publicó un libro sobre bordado antiguo
      Pero no consiguió un puesto académico ni encontró empleos que necesitaran esas habilidades
      Murió solo hace unos años
      Ese podría ser también el destino de muchos programadores
    • Lo vengo diciendo desde hace un tiempo y al final cambié por completo de área
      La gente se aferró a la idea de que los LLM no pueden reemplazar verdaderamente a los desarrolladores, y eso es cierto, pero no importa
      Para que el mercado laboral se sacuda fuerte, basta con que se reduzca la cantidad de personas necesarias para encargarse de las partes que los LLM no pueden hacer
      Aunque la eficiencia de los desarrolladores existentes aumente apenas un 30%, la demanda de desarrolladores podría caer un 20%, y eso tendría un impacto enorme en la demanda y los salarios
    • Parece depender mucho de la región
      Fuera de Occidente, donde la IA no es aceptada, según https://hai.stanford.edu/ai-index/2026-ai-index-report, la IA impulsó la demanda de software
    • Me da curiosidad qué datos estás mirando
  • Lo que intento hacer ahora es construir algo, pero sin escribir código con un LLM
    Lo sigo usando para consultas
    Estoy haciendo en Elixir un agregador de partidas de torneos de Dota2: recibe streams de torneos y los ordena cronológicamente para reducir la incomodidad de ver en YouTube una serie continua de videos
    Lo hago porque me gusta programar y me gusta construir cosas
    Los LLM me vuelven intelectualmente perezoso, y construir con ellos me resulta menos satisfactorio
    Quiero crear, y querer crear es humano

    • Todo lo que sienten los humanos, quieran crear o no, es humano
      Algunas personas prefieren una forma de crear y otras prefieren otra, y está bien
      Al final, creo que mucha gente olvida que programar es una actividad bastante creativa
      Dicho de forma un poco polémica, creo que hacer un programa, para bien o para mal, se parece más a pintar un cuadro que a construir un puente
    • Últimamente estoy leyendo a Séneca, y en una de sus cartas había una frase como esta
      “La concentración misma al enfocarse en el trabajo es profundamente placentera. El placer que se obtiene del producto terminado después de acabar el trabajo no es igual. El artista disfruta el resultado, pero mientras pinta disfruta el arte en sí”
      El problema de los LLM es justamente ese
      Me quitaron el momento de disfrutar el arte mismo de programar
    • He hecho bastante agregación de partidas de Dota2 con stratz / opendota
      Hay tantos datos que es muy divertido, y definitivamente me ayudó a ser mejor programador
  • Personalmente, conocidos que antes de los LLM no eran desarrolladores muy buenos siguen produciendo mal código usando los modelos más recientes
    Un conocimiento y una comprensión sólidos de la buena arquitectura y de las prácticas habituales siguen siendo clave
    Es fácil olvidar que los conocimientos básicos y el criterio que hoy damos por sentados requirieron mucho tiempo y esfuerzo para aprenderse cuando teníamos menos experiencia

    • Totalmente de acuerdo
      Es algo que observo constantemente
      Un LLM puede ser una herramienta que amplifica la fuerza, pero quien no sabe hacer las preguntas correctas o no entiende los matices termina creando mal código, y eso malo simplemente se amplifica
      No creo que los modelos actuales puedan evitarlo, especialmente porque los datos de entrenamiento históricamente fueron creados por humanos
  • ¿Alguien conoce a un matemático que no sepa hacer división larga o álgebra básica?
    Probablemente no
    Porque la matemática básica es necesaria para aprender matemática avanzada, así que una persona así no existe
    Que una calculadora haga los cálculos básicos es irrelevante si quieres ser matemático
    Del mismo modo, creo que “si dentro de 5 años el desarrollador promedio escribirá código a mano” no tiene relación con si debes aprender a programar cuando quieres dominar el diseño y la construcción de software complejo, sin importar qué método uses

    • Ahora no, pero antes fui matemático investigador
      No recuerdo en absoluto cómo hacer división larga, aunque en algún momento sin duda la dominaba
      Hoy también soy pésimo con el cálculo mental
      Aun así, esas cosas fueron indispensables en el camino para convertirme en matemático; simplemente dejaron de ser relevantes a medida que subió el nivel de abstracción
    • Tengo la perspectiva opuesta, pero llego a la misma conclusión
      Escuché muchas veces a matemáticos bromear diciendo que “cuanto más avanzado te vuelves, peor eres en matemáticas”
      La mayoría de los matemáticos tendría que pensarlo bastante para resolver un problema de división larga, porque dejaron atrás esa habilidad hace mucho tiempo
      Aun así, aunque existan calculadoras y notebooks de Python, la gente aprende y hace matemáticas a mano en todos los niveles para hacer avanzar el campo
      La gente está demasiado metida en los LLM como si fueran todo el futuro, pero los LLM en sí son por completo un producto del pasado
      Los LLM son más bien un JPEG con compresión con pérdida del lenguaje y del conocimiento expresado en lenguaje que una máquina pensante
      Por lo tanto, para expandir el campo y avanzar hacia el futuro, no podemos depender únicamente de algoritmos que regresan a la media
  • ¿No será que el código que reemplazan principalmente los agentes de IA es la capa externa del desarrollo?
    Cosas como aplicaciones para usuarios finales, apps, dashboards, aplicaciones empresariales, etc.
    En esta “cáscara”, la gente puede tolerar hasta cierto punto un 99% de precisión o código inflado, y las apps hechas con vibe coding pueden afirmar que son “lo suficientemente buenas”.
    Aun así, basta ver en qué desastre se convirtieron las apps de Microsoft después de adoptar IA.
    Pero en los compiladores, frameworks, herramientas y librerías centrales de las que la gente realmente tiene que depender, todavía se evita usar LLM.
    Nadie quiere construir sobre código 99% correcto o inflado, y nadie quiere usar un navegador web programado por IA.
    Para crear materiales de construcción realmente buenos, hay que programar uno mismo y saber qué está haciendo.
    ¿Dónde hay algún caso que se haya acercado a eliminar gradualmente la programación en esas áreas centrales?

    • Hay una forma correcta de hacerlo.
      Pero terminas pasando mucho tiempo conceptualizando y puliendo abstracciones.
      El problema es que conceptualizar requiere cierto estado mental.
      Antes de los LLM, era 10% pensamiento difícil y 90% implementación.
      La implementación era una especie de recompensa, y se sentía muy bien concretar ideas en estado de flow.
      Después de los LLM, bastante seguido me encuentro caminando de un lado a otro solo pensando.
      Ahora se parece más a 40% pensamiento y 60% planificación/revisión de código.
      Desde entonces no he vuelto a experimentar el estado de flow.
      Pensar es divertido pero agotador, y revisar es simplemente molesto.
      Sobre todo cuando el LLM cae en patrones de falla raros.
      Antes, cuando veía mal código, podía entender de inmediato qué estaba pensando quien lo escribió y por qué no funcionaba.
      Ahora hay menos code smells, pero muchas abstracciones mal elegidas, así que hay que tener mucho más cuidado.
      De verdad, instrucciones
    • Este tipo de comentario atribuye retrospectivamente al código escrito por humanos una calidad que originalmente no tenía.
      Dijiste que “nadie quiere construir sobre código 99% correcto o inflado”, pero, amigo, ¿alguna vez usaste Windows?
    • No sé qué gente tolera eso.
      Si les pregunto a amigos y familiares cercanos, todos odian el software lento e inflado.
      Ni siquiera se dan cuenta de cuánto tiempo y productividad les consume.
      Desde la aparición de los LLM, lejos de mejorar, empeoró.
    • ¿Las cosas del segundo párrafo no son apenas una pequeña proporción de los empleos de programación?
      Si para ganarse la vida como programador uno tuviera que conseguir solo esos trabajos, la programación podría volverse muy parecida a un deporte.
      Puedes disfrutar el básquet como amateur y tomártelo más en serio en la secundaria o la universidad, pero si quieres vivir del básquet tienes que ser lo bastante bueno como para entrar a la NBA.
    • ¿La reciente controversia de Bun no muestra una historia distinta?
  • Creo que los argumentos presentados son muy débiles.
    Más que esperanzado, me dejó deprimido; si la lógica restante es esta, siento que la situación se está volviendo realmente desesperada.
    Desarrollándolo un poco más: si programar es arte, entonces es el peor arte.
    Más bien se parece mucho más a algo como Lego, a la satisfacción de completar un ensamblaje significativo.
    Quizás ese sea precisamente el punto del autor.
    Como hobby puro, todavía tiene valor, eso sí.
    La afirmación de que “programar ayuda con las matemáticas” es igual de débil.
    Sin duda ayuda con el álgebra, pero en general creo que las matemáticas de estilo programación ayudan sobre todo a las matemáticas de estilo programación.
    Es un tipo raro de matemáticas con bucles, reglas y condicionales, y si el software no se hubiera vuelto tan dominante en primer lugar, no se habría vuelto mainstream.
    Si le quitas la cáscara, esa lógica suena más circular que una afirmación con sustancia.

  • Aprender a programar significa entender un problema, dividirlo en partes pequeñas y manejables, y volver a ensamblarlas.
    También incluye depurar e iterar hacia mejores métricas.
    Son habilidades y formas de pensar enormemente valiosas que también pueden trasladarse a otros ámbitos de resolución de problemas.

    • Exacto.
      Incluso antes de los LLM, era bien sabido que no se podía decir que realmente entendías un programa si no intentabas escribirlo tú mismo.
      No hay atajos para eso.
    • Si no sabes programar y solo sabes escribir prompts, no tienes forma de distinguir una buena solución de una mala.
      Lo mejor que puedes hacer es lograr que el modelo lo averigüe por ti.
      Tampoco sabes cómo diseñar una buena API ni cómo dividir un sistema en módulos.
      El problema es que muchos gerentes no distinguen bien la diferencia entre un buen programador y un vibe coder.
      El vibe coder sube muchos PR.
      Tal vez incluso el propio gerente pueda subir PR hechos con vibe coding.
      Les molesta la idea de que los programadores puedan saber más que ellos.
    • Steve Jobs solía decir que todos deberían aprender a programar.
      Porque te enseña a pensar.
      https://youtu.be/BRTOlPdyPYU
  • No es un argumento convincente
    Si la mejor razón para convencer a la gente de aprender a programar es que se parece a la notación matemática, es decir, a una de las partes de las matemáticas que más detestan los principiantes, o que es hermosa como el violín, es decir, inútil para un recién llegado, entonces la programación está en serios problemas.
    Creo que un mejor argumento es que ayuda a pensar como una computadora.
    Pero si quieres aprender eso, hay muchos videojuegos que recomendaría dominar antes que programar.
    Para la mayoría de la gente, “aprende a programar” es parecido a decirle a un programador “aprende ensamblador”.
    Llevo unos 30 años programando.

    • La razón más convincente para aprender a programar es exactamente la misma que la razón para leer muchos libros:
      porque ejercita el cerebro.
      Un cerebro que puede ordenar, interpretar y entender con facilidad la lógica básica y el flujo de control resiste mejor la propaganda y la influencia.
      Es el mismo beneficio que leer mucho, pero actúa sobre otros caminos del pensamiento.
      Te expones a más visiones del mundo, piensas de forma más crítica sobre cada una y aumenta el pensamiento crítico en general.
    • Me gusta mucho la frase “para la mayoría de la gente, aprender a programar es como decirle a un programador que aprenda ensamblador”.
      En una clase universitaria quizá aprendas ensamblador, pero fuera de eso no hay motivación.
      Nadie quería leer ensamblador, y ahora nadie quiere leer código.
    • Una vez le dije a un amigo al que le gustan las matemáticas que a veces me pregunto si habría podido crecer sin la idea de que “soy malo para las matemáticas”, y creo que la razón es esa.
      Resolver problemas en sí no es difícil.
      He visto a gente reinventar en código, sin darse cuenta, bloques de matemáticas “difíciles”.
      Por eso empecé a pensar que quizá las matemáticas fueron hechas deliberadamente horribles.
    • Creo que los videojuegos son demasiado abstractos como para conectarlos con aprender a pensar como una computadora.
      Lo más útil que aprendí sobre computadoras fue construir compuertas lógicas a mano.
      Nada me dio una comprensión más profunda de cómo funciona una computadora.
      La programación es el siguiente paso.
      Todas las capas intermedias se pueden suplir con inferencia, así que se pueden saltar.
      No hace falta aprender ensamblador, pero vale la pena leerlo para agarrarle la onda.
      Entender las capas que van de las compuertas lógicas al ensamblador, la programación, los juegos y ahora la IA es parecido a leer el modelo OSI para entender redes.
      Es una estructura de capas de abstracción apiladas una sobre otra.
      Vale la pena aprender programación porque es la capa de abstracción más alta que comparten todas las que están por encima.
      Aunque haya cientos de lenguajes de programación, los conceptos son en gran medida los mismos, y si aprendes un lenguaje y entiendes la programación, puedes aplicarlo a casi cualquier otro.
      En cambio, hay decenas de miles de juegos divididos en cientos de tipos, y si además incluyes otras aplicaciones, el árbol de variaciones a ese nivel explota.