Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Empecé a programar a principios de los ochenta. Mi primer equipo fue un Atari 400, que no era precisamente una potencia con su teclado de membrana, sólo 8K de RAM y programas que se cargaban desde casetes. Aprendí el lenguaje BASIC y creé juegos sencillos y aplicaciones utilitarias.

Estaba totalmente metida en ello.

Naturalmente, con el tiempo me pasé a máquinas más potentes. Por el camino, me ensucié las manos con lenguajes como Pascal, C y C++. Pero los IDE no cambiaron mucho, salvo en lo que respecta a las funciones de resaltado de sintaxis y depuración.

Todo cambió radicalmente con la llegada de GitHub Copilot y ChatGPT. Probar estas herramientas fue como tener un iPhone en las manos por primera vez: un cambio radical.

En lenguaje natural, le pedía a ChatGPT que escribiera código. O en VS Code, escribía un fragmento de una función, y GitHub Copilot generaba un bloque de código. A menudo era como dar en la diana. Ah, y luego utilicé ChatGPT para convertir imágenes en código.

Sin embargo, el verdadero poder residía en que estas herramientas podían encargarse de muchas de las tareas tediosas para los desarrolladores. ¿A quién le gusta pelearse con expresiones regulares o ensamblar comandos bash o acciones de GitHub? Yo no, seguro. ¿Pero estas herramientas de programación de IA? Se comen eso para desayunar.

Resulta que estas herramientas de IA son útiles para algo más que para programar. Empecé a utilizar ChatGPT para aportar ideas sobre aplicaciones, redactar requisitos e incluso realizar pruebas unitarias.

No tardé mucho en convencerme de que la programación asistida por IA sería una de esas habilidades imprescindibles para los programadores.

Así que sí, vi una gran necesidad de escribir este libro. Preparé un esquema y se lo propuse a O'Reilly. La gente de allí vio al instante el potencial.

Escribir el libro ha sido muy divertido y he aprendido mucho. También he entrevistado a muchos desarrolladores inteligentes que me han proporcionado grandes ideas y consejos.

Pero la programación asistida por IA está evolucionando rápidamente. Por eso este libro tiene un repositorio GitHub complementario. Aquí actualizaré el libro e incluiré otros avances importantes en este apasionante campo.

Así que gracias por elegir este libro. Espero que lo encuentres no sólo informativo, sino también una guía valiosa en tu viaje.

¿Qué cubre?

He aquí un breve vistazo a cada capítulo:

  • Capítulo 1, "Un nuevo mundo para los desarrolladores": Este capítulo comienza con una mirada a cómo la IA generativa está cambiando las reglas del juego para los programadores. Habla de cómo estas herramientas de IA están ayudando a los desarrolladores a pensar más en el panorama general y menos en el meollo de la codificación. El capítulo también da un paseo por la historia de los lenguajes de programación. También hay detalles sobre las tecnologías avanzadas de IA, como GPT-4.

  • Capítulo 2, "Cómo funciona la tecnología de codificación de la IA": El capítulo comienza explicando la IA generativa y por qué los modelos de transformador y los grandes modelos de lenguaje son importantes en el mundo de la programación. Por si fuera poco, hay un recorrido por el Patio de Juegos de OpenAI, que muestra cómo puedes jugar con estos modelos de IA y adaptarlos a tus necesidades de programación.

  • Capítulo 3, "Ingeniería de prompts": La información aquí contenida es fundamental para utilizar herramientas de programación asistida por IA. Este capítulo está repleto de consejos prácticos, como hacer frente a las instrucciones confusas o con muchas palabras y disuadir a la IA de inventarse cosas. Además, desglosa las partes clave de una instrucción y te muestra cómo utilizarlas eficazmente.

  • Capítulo 4, "GitHub Copilot": Este capítulo es un recorrido por esta potente herramienta. Echa un vistazo a las características principales, como la creación de código con comentarios, Chat y el uso de una interfaz de línea de comandos potenciada por IA. También se cubre la personalización del sistema para bases de código propias.

  • Capítulo 5, "Otras herramientas de programación asistida por IA": Este capítulo detalla las otras herramientas de programación asistida por IA más importantes, como Amazon CodeWhisperer, Duet AI de Google y Replit, por nombrar sólo algunas.

  • Capítulo 6, "ChatGPT y otros LLM de propósito general": Cubre cómo utilizar estas herramientas para tareas como el manejo de expresiones regulares, código de inicio y Acciones de GitHub.

  • Capítulo 7, "Ideas, planificación y requisitos": Se centra en el uso de chatbots para poner en marcha proyectos de software. Incluye temas como la lluvia de ideas, la investigación de mercado, los documentos de requisitos y el desarrollo basado en pruebas.

  • Capítulo 8, "Codificación": Este capítulo repasa los escenarios habituales de desarrollo, ya sea trabajando con API, utilizando programación modular o refactorizando. También se aborda el manejo de funciones y la programación orientada a objetos.

  • Capítulo 9, "Depuración, pruebas e implementación": Este capítulo trata de las partes menos glamurosas del desarrollo. Trata temas como la corrección de errores, el uso de herramientas de programación asistida por IA para la revisión del código, la realización de pruebas unitarias y la descripción de solicitudes de extracción.

  • Capítulo 10, "Conclusiones": Se trata de una recapitulación del libro, haciendo hincapié en los puntos principales.

En qué se diferencia este libro

Los desarrolladores de software prosperan con la certeza. Cuando das a un programa una entrada determinada, siempre obtienes la misma salida. Durante mucho tiempo, esta lógica determinista pura fue el corazón y el alma del software.

Pero cuando utilizas herramientas de programación asistida por IA, las cosas se ponen un poco patas arriba. Obtener resultados es como tirar los dados, ya que todo funciona con probabilidades. Cuando pides a una herramienta de IA que cree un código, e incluso utilizas la misma instrucción en varios intentos, puedes obtener resultados diferentes cada vez. Claro, al principio es un poco complicado, pero una vez que le coges el truco, merece la pena. Por eso hay un capítulo sobre ingeniería de prompts que te ayudará con este nuevo enfoque de la programación.

Quién debería leer este libro

Este libro es para cualquier desarrollador, tanto si acabas de empezar como si llevas muchos años en el juego.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Nota

Este elemento significa una nota general.

Utilizar ejemplos de código

El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/ttaulli/AI-Assisted-Programming-Book.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.

Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Programación asistida por IA de Tom Taulli (O'Reilly). Copyright 2024 Tom Taulli, 978-1-098-16456-0".

Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/AI-assisted-programming.

Para obtener noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.

Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media

Míranos en YouTube: https://youtube.com/oreillymedia

Agradecimientos

Quiero dar las gracias a la gente de O'Reilly que creyó en este libro y trabajó duro para hacerlo realidad: Nicole Butterfield, Shira Evans y Brian Guerin. También he contado con excelentes revisores técnicos. Entre ellos están Roja Boina, Abraham Borg, Sarah Kim, Ebubechukwu (Nnenna) Oguaju-Dike y Gaurav Deshmukh.

Get Programación asistida por IA now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.