1 puntos por GN⁺ 6 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Aunque se complete un proyecto con IA generativa, si quien lo pidió y quien realmente lo produjo son distintos, es difícil obtener la satisfacción de “lo hice yo”
  • Los prompts requieren visión, criterio, comunicación y técnica, pero se parecen más a la habilidad de encargarle la producción a otra entidad que a la de crear directamente
  • Un sistema de flashcards de español de 177 líneas escrito a mano tomó unas 50 veces más que con Claude, pero generó más orgullo que cualquier código creado por IA
  • Mientras que compiladores, ensambladores y martillos se sienten como herramientas del creador, una IA que responde al lenguaje humano parece una persona que recibe instrucciones, lo que difumina la frontera entre herramienta y productor delegado
  • La generación mediante IA también puede ser un acto creativo, pero terminar un resultado y hacerlo directamente no son lo mismo en términos de satisfacción personal, y esa frontera tampoco es fácil de definir con claridad

Cómo el desarrollo con IA cambia la sensación de logro

  • Los desarrolladores que usan IA generativa y LLM experimentan cambios contrapuestos al mismo tiempo
    • Pueden perder el espíritu artesanal de programar a mano, la resolución de problemas de bajo nivel y la diversión
    • También pueden resolver más problemas de alto nivel, terminar proyectos postergados y encontrar una nueva forma de diversión
  • Más allá de esas ganancias y pérdidas, la preocupación central es si uno puede sentir que hizo por sí mismo un resultado que la IA completó en su lugar
  • La reflexión parte de la experiencia de un desarrollador que programa desde la era de las microcomputadoras de los años 80, trabajó 20 años en la industria y actualmente enseña ciencias de la computación
    • En la escala entre utopía de la IA y catástrofe, se ubica a sí mismo 65% del lado de la catástrofe
    • Usa Claude Code, pero también sigue programando directamente

Una “versatilidad” adornada con resultados de IA

  • En la introducción aparecen varios resultados que parecen hechos directamente por la misma persona
    • La novela de ciencia ficción The Vorrkai Interval, con una escena de batalla
    • El grabado en madera de colores pastel Mirrors of the Machine
    • Un nuevo deck de entrada hecho de cedro
    • Código en Rust para un roguelike de aventura con TUI
  • En realidad, la novela, la imagen y el código fueron generados por IA, y el deck fue construido por trabajadores calificados remunerados
  • Como su rol fue iniciar la producción y comunicar los requisitos, le resulta incómodo decir que él hizo esos resultados

Por qué cuesta decir “lo hice yo”

  • En el caso del deck construido por otra persona, considera más preciso distinguir entre “lo instalé” y “hice que lo instalaran”
  • Con el código generado por Claude, también lo expresa no como “lo hice yo”, sino como “hice que lo hiciera para mí
    • Como tampoco se trata de una relación laboral, le incomoda poner una licencia MIT a su nombre sobre una creación de IA, así que usa Unlicense
  • Cuando trabajaba como gerente, tampoco decía “yo hice el producto”, sino “lo hizo nuestro equipo”; si hubiera gestionado LLM, diría “lo hicieron mis agentes”
  • Terminar un proyecto en sí es algo positivo, pero cuando otro completa un proyecto que uno inició, la satisfacción es mucho menor que al producirlo directamente
  • Lo que se pierde no es solo la habilidad de programar o la diversión de resolver problemas, sino la experiencia de hacer algo con las propias manos

Flashcards de 177 líneas hechas a mano

  • Su esposa le pidió un sistema simple para aprender español, en el que pudiera poner las palabras deseadas en una hoja de cálculo y verlas como flashcards
  • Decidió implementarlo él mismo y le indicó a Claude que no generara código; solo le hizo preguntas de información básica, como cuál era la forma más sencilla de traer datos desde Google Sheets
    • Usó el endpoint CSV de Google Sheets
    • Escribió 4 archivos y 177 líneas en total: 112 de JavaScript, 33 de CSS y 32 de HTML
  • Le tomó unas 50 veces más que si lo hubiera hecho Claude, pero puede ponerle su nombre y decir que lo hizo él mismo
  • Aunque no sea un código grande ni revolucionario, siente mucho más orgullo por él que por cualquier código escrito por Claude
  • Así como su esposa, que inició el pedido, no dice que ella escribió el sistema de flashcards, quien solicita algo no es necesariamente quien lo produce

La habilidad específica de escribir prompts

  • Un prompt efectivo claramente requiere un aporte humano
    • Hay que aplicar visión
    • Hay que evaluar el resultado
    • Hay que tener capacidades de comunicación y de redacción de prompts
  • No todos los prompts ni todos los usuarios de IA tienen la misma eficacia, así que en el prompting también existe una habilidad importante
  • Sin embargo, esto se parece más a la capacidad de pedir eficazmente que se cree lo que uno quiere que a la capacidad de producirlo directamente
  • El prompting para software también se siente más como encargarle la producción a otra entidad que como crear software directamente

La zona gris entre compiladores e IA

  • Al escribir un programa en C o Rust, uno no escribe directamente el código máquina que se ejecuta, pero aun así siente que escribió el programa
  • La conversión de código C a código máquina se parece a un proceso matemáticamente preciso, pero quedan algunas preguntas
    • Clang y GCC generan instrucciones distintas, así que el resultado no queda determinado de forma estrictamente única
    • Aunque el código máquina varíe según la plataforma, el código C es portable
    • Incluso si solo se compiló en Linux, puede considerarse que uno escribió un programa que se ejecuta en Windows
  • Al pedirle a Claude que convirtiera un programa recursivo de Fibonacci en C a ensamblador x86_64 para Linux, generó código que se podía compilar y ejecutar
    • La salida muestra correctamente la secuencia de Fibonacci desde 0: 0 hasta 9: 34
    • También usa XOR para establecer el estado de salida en 0
  • Como el código C original lo escribió él mismo, siente que ese programa lo escribió él, aunque el ensamblador lo haya generado Claude
  • La conversión de ensamblador a código máquina es un proceso estricto y no inteligente, por lo que se percibe como usar una herramienta que no le quita al creador el acto de producir, igual que usar un martillo para clavar un clavo

El criterio que separa una herramienta de un productor delegado

  • Las acciones directas incluyen escribir código C y ejecutarlo, clavar un clavo con un martillo, y convertir ensamblador a código máquina con un ensamblador
  • Las acciones que consisten en dar instrucciones y delegar en otra persona incluyen escribir software, construir un deck y producir una imagen
  • No siente que haya dibujado una imagen generada por ChatGPT, pero con un martillo o un compilador no existe la sensación de pedirle a algo que haga una tarea en su lugar
  • El caso de pedirle a Claude que compile código C queda entre ambas categorías
    • Puede verse como ejecutar código C escrito directamente por él
    • También puede verse como pedirle a la IA que escriba software
    • El mismo resultado podría generarse solo con requisitos en inglés
  • Como la IA entiende lenguaje humano impreciso y responde como un humano, puede sentirse más como una relación entre gerente y subordinado que como un compilador o un martillo
  • Si le pidiera a un martillo con IA integrada que clavara un clavo, aunque participara en el proceso creativo, sería difícil decir que él mismo martilló directamente
  • Cuanto más se examina la zona gris, más fuerte se vuelve la idea de que encargar producción a una IA también puede ser un acto creativo, pero la frontera de lo que puede llamarse hecho directamente por uno sigue siendo difusa

La contribución realmente aportada a los resultados

  • Para la escena de ciencia ficción, usó un prompt que pedía generar tres párrafos y un título de novela, con un héroe y dos refugiados atrapados por el ataque láser de un enemigo hasta encontrar una salida
  • Para la imagen, pidió crear dos hackers con estilo de magos, enfrentados y concentrados en computadoras, en grabado en madera y colores pastel, usando colores opuestos pero complementarios en ambos lados
  • Para el juego, pidió un juego de fantasía con TUI similar a Ultima I
    • Solicitó 3×3 caracteres por celda del mapa, 7×7 celdas de mapa por pantalla y animación del agua
    • Incluyó un mundo procedural basado en Perlin noise, monstruos predefinidos que se mueven al azar y atributos al estilo D&D
    • Pidió usar un jugador común sin clase, implementarlo en Rust y Ratatui, y separar la UI de la lógica del juego
  • Para el trabajo de carpintería pidió “reemplazar el deck de entrada”, pero sí clavó personalmente uno de los clavos de las piezas de madera necesarias para la foto de la introducción
  • El em dash usado en el texto fue una elección intencional, y el digraph de Vim es ^K-M

1 comentarios

 
GN⁺ 6 시간 전
Comentarios de Hacker News
  • Aunque no haya escrito ni una sola línea de código directamente con un LLM, puedo sentir orgullo por el resultado que hice
    No pretendo presumir de ser un gran programador, pero programar desde el principio era un medio para crear un producto terminado
    Es como sentir satisfacción por un jardín que imaginé aunque no lo haya construido yo mismo y haya contratado a una empresa de paisajismo
    El editor de tablaturas de guitarra hecho con vibe coding resuelve un problema real con funciones que no existen en otro software, y nunca lo habría podido crear sin IA mientras compaginaba trabajo, familia y hobbies

    • También me pregunto si puedo decir que “hice” la hamburguesa con queso que pedí la semana pasada en un restaurante quitándole la lechuga y agregándole cebolla, ya que sin mi pedido no habría existido
      También decimos que hicimos algo en casos sin creatividad, como un sándwich de mantequilla de maní con mermelada, y lo mismo aplica aunque uses herramientas como una sierra circular en vez de hacerlo a mano
      Pero no es lo mismo descargar Articulated dragon.stl de la web y solo presionar imprimir que diseñarlo tú mismo e imprimirlo
      Operar una CNC y una impresora 3D también requiere conocimientos y habilidades distintos del trabajo manual, pero mientras más fáciles se vuelven las herramientas, más borrosa se vuelve la línea
      Aunque no haya una línea clara, está en algún punto entre “decir que las herramientas nuevas son trampa y hacer todo a mano” y “pedir un sándwich y esperar”
    • La lógica de “si yo no hubiera existido, esto no existiría” difícilmente se sostiene
      Si delegaste un proyecto a otra persona, puedes decir que lo gestionaste o que diseñaste una parte, pero es difícil atribuirte el mérito de haberlo ejecutado tú mismo
      Aunque no hayas hecho la fabricación real, sí puedes sentir suficiente orgullo por haber marcado la dirección y la visión para resolver el problema
    • La expresión “yo lo hice” es un concepto reservado para el acto de meter directamente las manos en el barro, y tiene una diferencia propia frente a otros enfoques que solo buscan el resultado
    • making tiene una connotación fuerte de hacer algo directamente y de forma activa, mientras que producing tiene más el sentido de supervisar y coordinar
      Esa diferencia se volvió más clara cuando empecé a trabajar con productores en desarrollo de juegos
    • Está hecho con un LLM, no hecho directamente por uno mismo
  • Últimamente, aunque unos side projects cuyas partes principales escribí con Claude sí hacían lo que quería, sentía una desconexión extraña con el resultado, y eso me hizo pensar cómo debería usar la IA en mi tiempo libre
    Un compilador da resultados deterministas y consistentes a instrucciones precisas, pero Claude infiere indicaciones menos precisas que el código, produce resultados distintos cada vez e incluso agrega comportamientos no pedidos, tomando decisiones por el usuario
    Se le puede dar instrucciones estrictas con grandes especificaciones en Markdown o pruebas detalladas, pero si voy a invertir tiempo escribiendo eso, quizá ya no haya tanta diferencia con programarlo yo mismo
    La IA es excelente para destrabar problemas o explicar conceptos de forma personalizada, pero en el momento en que le delegas decisiones, el resultado pasa a importar más que la creación
    Los side projects que uno hace por amor al acto de crear están más cerca del arte que del producto, así que la IA puede encajar en el producto pero no en el arte

  • En tecnología hay gente a la que le gustan los detalles y gente a la que le gustan los sistemas, y quienes tienen una orientación hacia sistemas pueden sentir los LLM como algo divertido y satisfactorio, mientras que quienes se orientan a los detalles pueden sentir exactamente lo contrario
    Un conocido famoso por visión por computadora anterior a las redes neuronales dijo que antes resolvía muchísimas cosas por primera vez, pero que ahora la mayor parte del desarrollo de software consiste en ensamblar cosas ya conocidas, y eso le parece aburrido
    Los LLM parecen acelerar aún más esa tendencia

    • Me gustan más las matemáticas que la tecnología, y disfruto especialmente reducir un problema a ecuaciones simples o diseñar algoritmos sin siquiera tocar el teclado
      Hacer que un LLM escupa scripts se siente un poco como meter números al azar en un sudoku hasta que la app diga que está bien
    • Andrej Karpathy también lo expresó diciendo que “programar con LLM probablemente separará a los ingenieros a quienes les gustaba programar de los ingenieros a quienes principalmente les gustaba construir cosas”
    • Como alguien orientado a sistemas, me cuesta transmitir a quienes se orientan a los detalles cómo una combinación de componentes que aparece casi como magia y a veces es difícil de entender puede llevar a resultados interesantes y disfrutable
    • Si eres alguien que valora la calidad, quizá te decepcione ver que en algunos contextos los LLM sacrifican incluso el último compromiso con la calidad en favor de cantidad y velocidad
  • No quiero ver envíos generados por LLM en Hacker News
    Aunque no fueran productos exitosos, disfrutaba ver cómo la originalidad humana se aplicaba de verdad
    Igual que no veo ajedrez jugado entre computadoras, hace falta una manera simple de distinguir y evitar el software y el arte hechos por IA

  • La diferencia está en hasta qué punto puedes razonar cómo los cambios en la entrada afectan el comportamiento observable de la salida
    Si el ejecutable que produjo un compilador no funciona como yo pretendía, el 99.99% de las veces es mi responsabilidad, y puedo predecir el resultado a partir del código fuente y analizar también los fallos
    Entre un programa hecho con vibe coding y el prompt generativo no existe una relación comparable

    • Incluso si hubiera un LLM con 99.99% de confiabilidad, eso no haría que yo volviera a estar en un estado de construirlo directamente por mi cuenta
      Si un robot cortacésped totalmente autónomo hizo el trabajo con precisión, entonces fue el robot el que cortó el césped; pero si yo iba montado en él o lo controlaba con un joystick, entonces fui yo quien lo cortó
      Quién decide qué parte cortar es lo que determina la sensación de propiedad
    • Cuando haces algo directamente, entiendes de forma concreta por qué el resultado terminó con esa forma y también desarrollas un criterio propio
      Incluso en proyectos de vibe coding se siente un nivel distinto de propiedad según la profundidad de atención y comprensión que les hayas dedicado
    • La clave parece estar en la diferencia entre llevar la iniciativa sobre el proceso y llevar la iniciativa sobre el resultado
      Hay personas que solo deciden cuándo empezar el proceso y si el resultado es bueno o malo, pero como no tienen la capacidad de juzgar realmente, confían en que quien lo fabrica se habrá encargado bien de todos los elementos inferiores
      Un compilador casi siempre convierte un programa en el binario correcto y, si falla, lo informa con claridad, así que el límite de responsabilidad es claro porque la corrección del algoritmo recae en el usuario
      En cambio, el límite de responsabilidad de un LLM es difuso, y no puede manejar de forma estable todos los elementos que no se hayan especificado explícitamente en el prompt
      También es distinto de una colaboración humana donde, si le pides a un pintor profesional que dibuje a Batman, no hace falta revisar incluso cuántos dedos del pie o cuántos brazos tiene
  • Por usar LLM porque es más rápido, dejé de sentir la misma diversión de antes
    La velocidad no siempre tiene que estar por encima de la diversión, y necesito volver a aprender a concentrarme sin ver el hecho de escribir yo mismo como algo “ineficiente”
    Quiero recuperar la sensación de cuando programaba de madrugada a los 13 años, y los textos de Beej siempre impresionan

    • El guitarrista Steve Vai dijo que el proceso de aprender y hacer uno mismo da dignidad y autoestima
      Si haces texto, código o música solo con prompts, desaparece precisamente ese proceso
  • Durante unos dos meses no me daban ganas ni de ver TV aparte de beber, pero tras varias semanas sin alcohol parece que poco a poco vuelve la motivación por crear.
    He venido diseñando y fabricando mis propias cámaras y pequeños robots autónomos, y por fin también reparé una cámara que se averió tras rodar dentro del auto.
    Terminé perdiendo el interés después de hacer videos con cada lente vintage de montura C, y solo quedaron una caja de lentes y cámaras convertidas en adornos, pero gracias a estos proyectos de hardware conseguí dos empleos como ingeniero de software.
    Si digo “yo lo hice” sobre un proyecto cuyo código generó Claude Code, el respeto suele caer de inmediato, pero al final lo importante es el dinero y la libertad, y yo también quiero asegurar mi libertad y luego dedicarme a lo que me gusta.

    • Es mejor no exigirse demasiado.
      Si aún no lo has revisado, también vale la pena considerar la posibilidad de TDAH u otros factores.
      Los humanos no somos máquinas sino seres biológicos complejos, así que entender tus propias características ayuda mucho a volver a moverte en la dirección correcta.
  • En los trabajos que recientemente he dejado en manos de la IA me cuesta recordar incluso los detalles generales, mientras que una base de código de más de 100 mil líneas que escribí hace años todavía puedo seguirla en mi cabeza en términos generales.

    • Cuando veo proyectos en los que colaboré hace 10 años, puedo distinguir quién escribió qué parte, dónde estaban las trampas y por qué cosas sufrimos, aunque no recuerde las escenas concretas del trabajo.
      Pero un proyecto que hice con IA hace apenas 2 semanas queda como una masa borrosa de “alguien escribió prompts y salió código”.
  • Cuando era estudiante en OSU y aprendía por mi cuenta programación de sistemas práctica, consultaba todos los días Beej's Guide to Network Programming.
    Me frustraba pensar que este sitio web gratuito era mucho más útil que una universidad cara, así que que ahora Beej enseñe en OSU es un gran ciclo y una excelente contratación.

    • El próximo año voy a hacerme cargo de dos materias de ingeniería de software, y planeo desechar prácticamente el contenido actual para rearmarlas desde cero.
      Quiero enfocarme en diseño a nivel de sistemas, uso activo de IA, y proyectos y equipos más grandes.
      Aprender a programar sigue siendo indispensable, pero las capacidades de ingeniería de software que antes se adquirían ya en el trabajo ahora hay que colocarlas mucho más al inicio de la formación.
      Sí me queda la idea de que habría estado bien que la llegada de los LLM se retrasara unos 15 años.
  • Le Corbusier y Frank Lloyd Wright diseñaban edificios sin construirlos directamente, y aun así esas obras se reconocen sin duda como suyas.
    Steve Jobs tampoco diseñó placas de circuito ni programó, pero hizo la Mac, el iPod y el iPhone, y los pintores del Renacimiento también dirigían talleres donde trabajaban aprendices.
    Crear software es más que escribir código: implica entender el mercado y las necesidades, crear marketing y textos, decidir qué hacer y qué descartar, e imaginar la forma final.
    Los artesanos que construyeron una casa de Wright pueden presumir que hicieron el techo, las paredes o la cascada, pero la casa entera claramente es de Wright.
    El lamento actual se parece más a un miedo justificable a perder el monopolio técnico.
    Puede cambiar igual que cuando los muebles hechos a mano fueron reemplazados por IKEA y los carpinteros expertos se concentraron en el mercado premium, pero con la diferencia de que los clientes de programación suelen ser empresas y el criterio de aprobación es binario: “¿funciona o no?”