Curso de Desarrollo con IA - Día 1 - De prompts sueltos a programar con criterio
Introducción al Curso de Desarrollo con IA
Bienvenida y Presentación
- El presentador invita a la audiencia a interactuar, pidiendo likes y saludos para saber quiénes están en el chat.
- Se menciona que el curso se centrará en el desarrollo con inteligencia artificial (IA) durante tres días, prometiendo un contenido extenso y relevante.
- Se enfatiza la importancia de aprender sobre cómo se desarrolla software en 2026, destacando la relevancia del curso.
Acerca del Instructor
- Bryce Mowre se presenta como ingeniero de software con 16 años de experiencia, mencionando su trayectoria profesional y su decisión de emprender hace 10 años.
- Destaca su papel como divulgador y su conexión con una comunidad global de más de 3 millones de personas interesadas en tecnología.
Impacto Actual de la Inteligencia Artificial
Datos Relevantes sobre IA
- Se presentan estadísticas clave: el 84% de los desarrolladores utilizan IA, pero solo el 41% del código producido es generado por esta tecnología.
- La confianza en los resultados generados por IA es baja, con un 36% considerado aceptable; esto indica que aún hay mucho trabajo humano involucrado.
Implicaciones para Desarrolladores
- Es crucial que los desarrolladores supervisen el código generado por IA para asegurar calidad y confiabilidad.
- La educación ha sido transformada por la IA, facilitando un aprendizaje más rápido y accesible para nuevos programadores.
El Futuro del Empleo en Desarrollo Software
Cambios en las Demandas Laborales
- La necesidad actual no solo es saber programar, sino también entender cómo utilizar herramientas basadas en IA efectivamente.
- Se destaca que aquellos que comprenden cómo usar la IA serán quienes tengan éxito; la herramienta no reemplaza al ser humano, sino que lo complementa.
Conclusiones sobre Herramientas Tecnológicas
- Un gráfico muestra el crecimiento gradual del uso de herramientas relacionadas con IA desde el año anterior hasta ahora.
¿Cómo está evolucionando la inteligencia artificial?
La capacidad actual de la IA
- La inteligencia artificial ha mejorado significativamente en su capacidad para resolver problemas complejos, alcanzando un 80-90% de fiabilidad en las respuestas.
- Es crucial que los usuarios acompañen a la IA en su uso para maximizar su efectividad.
Expectativas y realidades del sector
- Existen muchas noticias alarmantes sobre la IA, pero es importante discernir entre expectativas y realidades.
- Líderes como el CEO de NVIDIA y Mark Zuckerberg han hecho predicciones sobre la sustitución de programadores por IA, generando expectativas desmedidas.
Cambios en el mercado laboral
- Las predicciones iniciales no se han cumplido; las empresas están adaptándose a una nueva realidad donde la IA complementa más que reemplaza trabajos.
- Sam Altman de OpenAI expresó satisfacción por haberse equivocado respecto al impacto negativo de la IA en el empleo.
Datos del crecimiento del sector
- Datos oficiales indican que el sector tecnológico sigue creciendo con previsiones de aumento del 15% en contrataciones.
- El 92% de las empresas tecnológicas españolas no encuentran perfiles adecuados, lo que refleja una desconexión entre habilidades requeridas y disponibles.
Adaptación profesional ante cambios tecnológicos
- Los profesionales deben adaptarse continuamente a los cambios impulsados por la IA; esto incluye aprender nuevas herramientas y enfoques.
- Crear software implica más que solo programar; se requiere entender cómo dirigir proyectos utilizando inteligencia artificial.
¿Qué habilidades son necesarias hoy?
Importancia de los fundamentos
- Los fundamentos son esenciales; simplemente copiar código generado por IA no es suficiente para ser competitivo en el mercado laboral actual.
Aprendizaje continuo e integración con IA
- Aprender sobre inteligencia artificial ya no es opcional; es fundamental para cualquier profesional del desarrollo de software.
Orquestación y dirección con IA
- El enfoque debe cambiar hacia orquestar diferentes agentes con inteligencia artificial, no solo codificar.
Reflexiones finales sobre el futuro profesional
Desafíos actuales en el sector
- Muchos profesionales sienten incertidumbre sobre cómo comenzar a adaptarse a estos rápidos cambios dentro del sector tecnológico.
Introducción a la Inteligencia Artificial
Comenzando con la IA
- La inteligencia artificial (IA) se presenta como un tutor accesible 24/7, facilitando el aprendizaje en comparación con métodos tradicionales que dependían únicamente de libros.
- Existe una percepción errónea de que la IA es solo para profesionales senior; sin embargo, tanto juniors como seniors deben adaptarse a esta nueva realidad tecnológica.
- Los profesionales experimentados tienen la oportunidad de escalar profesionalmente si adoptan nuevas tecnologías, mientras que los nuevos aprendices pueden superar a quienes se resisten al cambio.
Estructura del Aprendizaje
- El aprendizaje se dividirá en tres días: fundamentos de IA, herramientas y control, y desarrollo multiagente.
- En el segundo día se abordarán las herramientas de control y cómo establecer límites para obtener resultados específicos de la IA.
- El tercer día se centrará en el flujo completo del desarrollo y el paradigma Spec Drive and Development.
Fundamentos Técnicos de la IA
Comprendiendo los Modelos
- Se explicará cómo funcionan los modelos de lenguaje (LLM), enfatizando que no es simplemente escribir sin sentido, sino entender su funcionamiento técnico.
- Se proporcionarán apuntes y recursos después de cada clase para facilitar el seguimiento del contenido aprendido.
Herramientas Disponibles
- Se mencionarán diversas herramientas utilizadas en programación asistida por IA, destacando que todas funcionan bajo principios similares.
- Es crucial entender las bases fundamentales ya que las herramientas pueden cambiar rápidamente; lo importante es dominar los conceptos subyacentes.
Conceptos Clave sobre LLM
Funcionamiento Básico
- Los LLM son diseñados para comprender y generar texto similar al humano; su funcionamiento está basado en inferencias matemáticas más que en razonamientos humanos.
- Estos modelos operan mediante entrenamiento previo con vastos datos humanos, permitiéndoles predecir palabras basándose en probabilidades.
Tokens y Parámetros
- La IA trabaja con tokens en lugar de palabras completas; esto implica calcular probabilidades sobre qué token seguirá a otro.
- Comprender el número de parámetros es esencial para elegir el modelo adecuado según las necesidades específicas del usuario.
Introducción a los Fundamentos de la Inteligencia Artificial
Número de Parámetros
- El número de parámetros en un modelo de inteligencia artificial se considera una medida clave de su inteligencia; a más billones de parámetros, mayor es la supuesta capacidad del modelo.
- Se menciona una web (análisis.ai barra models) donde se puede encontrar información sobre diferentes modelos actuales, incluyendo métricas como inteligencia, velocidad y coste por tarea.
- Comprender estas métricas permite identificar qué modelos son más eficientes o adecuados para tareas específicas.
Tokens en Modelos de IA
- Los tokens son elementos fundamentales que descomponen las interacciones con la IA; el número de tokens afecta la velocidad y el coste del uso del modelo.
- Un ejemplo práctico muestra cómo una frase puede dividirse en diferentes números de tokens dependiendo del idioma utilizado, sugiriendo que el inglés puede ser más eficiente.
- Es crucial economizar tokens durante las interacciones con la IA para optimizar costes y latencia.
Coste y Modelos
- Existen modelos gratuitos y de pago; el coste varía según el modelo utilizado y el número de tokens consumidos.
- La elección del modelo debe considerar tanto su popularidad como su coste asociado al uso específico que se le dará.
Ventana de Contexto
- La ventana de contexto se refiere al límite máximo de tokens que un modelo puede manejar antes de perder información previa; esto afecta directamente a la coherencia en las respuestas generadas.
- Cuando se alcanza este límite, el modelo comienza a olvidar conversaciones anteriores, lo cual puede resultar en respuestas incoherentes o irrelevantes.
Otros Conceptos Clave
- La multimodalidad permite que los modelos trabajen no solo con texto, sino también con imágenes, audio y video, ampliando sus capacidades analíticas.
- La latencia es importante al elegir un modelo; algunos pueden ser menos complejos pero más rápidos para tareas específicas.
- Los modelos "razonadores" están diseñados para realizar análisis previos antes de generar respuestas, mejorando así la calidad general del output.
Fundamentos de Modelos de IA
Parámetros y Costes
- Es crucial entender los fundamentos como parámetros, tokens, coste, ventana de contexto y latencia para utilizar modelos de IA eficaces.
- La elección entre modelos en la nube y locales es importante, así como la distinción entre modelos privativos y open source.
Rankings de Modelos
- Se menciona el uso de páginas como LMStats para visualizar rankings claros de diferentes modelos.
- Los rankings ayudan a identificar la calidad e inteligencia de los modelos basándose en sus parámetros.
Toma de Decisiones
- Con un entendimiento claro de los fundamentos y rankings, se pueden tomar decisiones informadas sobre qué modelo utilizar según el caso específico.
- Es recomendable dedicar tiempo a revisar estas páginas para conocer el estado del arte en IA antes de decidir.
Potencia vs. Velocidad vs. Coste
Consideraciones Clave
- Hay que equilibrar potencia, velocidad y coste al elegir un modelo; no siempre se necesita el más potente o costoso.
- Un modelo potente puede ser más lento y caro, mientras que uno barato puede ser rápido pero menos eficaz.
Reglas Prácticas
- Para tareas complejas se recomienda un modelo potente; para tareas diarias, uno medio; y para tareas mecánicas, uno rápido y económico.
Ingeniería de Prompts
Definición y Importancia
- La ingeniería de prompts se refiere a cómo formular preguntas efectivas a la IA para obtener mejores resultados.
- Un buen prompt es esencial; un mal prompt resultará en respuestas insatisfactorias.
Componentes Clave del Prompt
- Al crear un prompt efectivo hay que definir quién es la IA (nivel experto), proporcionar contexto del proyecto y especificar claramente la tarea requerida.
Indeterminismo en Respuestas
Naturaleza Indeterminista
- Las respuestas son indeterministas: el mismo prompt puede generar diferentes resultados si no está bien definido.
Búsqueda del Determinismo
- Como desarrolladores, buscamos respuestas consistentes mediante una buena ingeniería de prompts que guíen a la IA hacia resultados predecibles.
Restricciones y Formato
Límites en Prompts
- Es importante establecer límites dentro del prompt además de las tareas específicas que queremos realizar con la IA.
Formato del Resultado
- El formato deseado del resultado también debe ser considerado al diseñar prompts efectivos.
La Importancia de un Buen Prompt en el Desarrollo de Software
Fundamentos del Desarrollo y la Eficiencia del Código
- Se enfatiza la necesidad de utilizar librerías específicas y considerar aspectos como el manejo de errores para obtener resultados profesionales, aunque esto requiera más tiempo.
- Es crucial entender los fundamentos del desarrollo para llevar a cabo un modelo efectivo que se adapte a las necesidades del proyecto.
- Un código bien organizado, utilizando las herramientas adecuadas, permite una mejor adaptación y resultados superiores al usar prompts más elaborados.
Análisis de Prompts Malos vs. Buenos
- Un mal prompt carece de contexto; por ejemplo, no especifica si el código es para una web o una app, lo que dificulta su efectividad.
- El modelo debe "adivinar" sin información suficiente, lo que puede llevar a resultados inadecuados. En contraste, un buen prompt proporciona claridad sobre el rol y contexto deseado.
Mejores Prácticas en Prompts
- Al proporcionar detalles específicos como la creación de un API REST para e-commerce con restricciones claras, se obtienen respuestas más precisas y útiles.
- Se menciona la posibilidad de realizar fine tuning en modelos generales para adaptarlos a necesidades específicas.
El Concepto de Bycoding en el Desarrollo Moderno
Definición y Riesgos del Bycoding
- El bycoding implica programar guiándose por intuiciones y ayuda de IA, lo cual puede ser riesgoso si no se tiene conocimiento técnico suficiente.
- Aunque es rápido y divertido, depender únicamente del bycoding puede resultar peligroso si se ignoran principios fundamentales como seguridad y escalabilidad.
Integración del Bycoding con Desarrollo Profesional
- No se está en contra del bycoding; hay espacio para ambos enfoques: uno guiado por IA y otro basado en prácticas profesionales sólidas.
- La llegada de la inteligencia artificial ha permitido crear software más eficientemente mientras mantiene estándares profesionales.
Evolución de Herramientas AI en el Desarrollo
Historia Reciente de Editores de Código
- Desde 2022 con ChatGPT hasta 2024 con copilotos interactivos que ayudan durante el ciclo de desarrollo, ha habido avances significativos en editores AI First.
- Los agentes emergentes son capaces no solo de interactuar sino también realizar tareas autónomamente dentro del entorno de desarrollo.
Diversidad en Editores AI
- Existen diferentes familias de editores diseñados específicamente para facilitar el trabajo con código mediante inteligencia artificial.
- Ejemplos incluyen Visual Studio Code entre otros; sin embargo, no es necesario obsesionarse con una herramienta específica ya que cada una tiene sus ventajas.
¿Qué herramientas utilizar para el desarrollo con IA?
Comparación de herramientas de desarrollo
- Se plantea la pregunta sobre qué herramienta es mejor: Cursor, Trey, Visual Studio Code o Antigravity. La respuesta radica en entender los fundamentos del desarrollo con IA que se enseñarán durante el curso.
- Visual Studio Code es uno de los editores más conocidos y ha inspirado a otros como Cursor, que también permite desarrollar con inteligencia artificial.
- Google lanzó su propio editor llamado Antigravity, que se suma a la variedad de opciones disponibles en el mercado.
- Existen múltiples editores centrados en diferentes aspectos del desarrollo, incluyendo terminales como Tray y Zed, lo que puede resultar abrumador para quienes no están familiarizados.
- Aunque hay muchas opciones, cada desarrollador puede elegir la herramienta que prefiera; todas funcionan de manera similar.
Tipos de editores y su funcionalidad
- Algunos editores son instalables directamente mientras que otros funcionan dentro de una terminal mediante comandos. Ejemplos incluyen Cloud Code y NeoBeam.
- Herramientas como Warp ofrecen capacidades tanto para editar código como para interactuar con inteligencia artificial desde la terminal.
- Codex se presenta como una evolución del IDE (Interfaz de Desarrollo Integrado), enfocándose más en agentes y menos en el código mismo.
- Codex y Warp permiten usar modelos nativos dentro de sus interfaces, facilitando el trabajo con inteligencia artificial.
- Es importante recordar que hay muchas alternativas disponibles; cada desarrollador debe encontrar lo que mejor le funcione.
Consejos sobre elección de herramientas
- Se recomienda probar las herramientas ya que muchas son gratuitas. No es necesario seguir modas; lo esencial es mejorar los conocimientos técnicos.
- Se introduce la parte sobre agentes antes de realizar una demostración práctica utilizando varios editores orientados al desarrollo software.
Demostración práctica
- En Visual Studio Code se muestra cómo crear un archivo HTML e interactuar con inteligencia artificial a través del chat integrado en la interfaz.
- Se explica cómo seleccionar modelos específicos dentro del editor según las necesidades del proyecto, destacando la importancia del conocimiento previo sobre los modelos disponibles.
Comparativa entre diferentes editores
- Al comparar Cursor y Antigravity, se observa que aunque tienen configuraciones distintas, todos comparten una base similar en su funcionamiento general.
- Cada editor puede tener diferentes modelos por defecto pero aprender a utilizarlos depende más del entendimiento fundamental que del uso específico de cada herramienta.
¿Cómo están evolucionando las herramientas de desarrollo de software?
La evolución del sector del desarrollo de software
- El sector del desarrollo de software ha evolucionado, creando herramientas que son rápidamente copiadas por la competencia, llevando a resultados similares entre los desarrolladores.
- La diferencia en el uso de herramientas no radica en la herramienta misma, sino en la habilidad y profesionalismo del desarrollador. Es crucial entender cómo cada herramienta puede aportar valor personal.
Agentes en herramientas de desarrollo
- Las nuevas herramientas han comenzado a incorporar agentes que permiten una interacción más avanzada, más allá de simples respuestas a preguntas.
- Antes, las interacciones eran limitadas; el usuario preguntaba y recibía un código sin capacidad para ejecutar acciones adicionales o interactuar con el sistema.
Funcionalidades avanzadas de los agentes
- Los agentes ahora pueden iterar sobre sus propias respuestas y realizar tareas como crear y modificar archivos, así como ejecutar comandos dentro del sistema.
- Este bucle autónomo permite al agente planificar, actuar, evaluar y ajustar su respuesta hasta alcanzar el resultado deseado.
Ejemplo práctico con Visual Studio Code
- Se utiliza Visual Studio Code como ejemplo para ilustrar cómo funcionan estos nuevos agentes en editores de código potenciados por IA.
- Cada editor tiene modelos prediseñados que se pueden seleccionar y ajustar según las necesidades del usuario.
Modelos y suscripciones
- Muchos editores ofrecen capas gratuitas; sin embargo, al agotarse estas opciones es posible que se requiera una suscripción para continuar utilizando ciertas funcionalidades.
- Se recuerda a los usuarios registrados que recibirán apuntes sobre lo discutido durante la clase y tendrán acceso a un certificado tras completar el curso.
Cómo desarrollar un proyecto web utilizando IA
Introducción al desarrollo de proyectos con IA
- Se presenta una página web creada como ejemplo para enseñar el desarrollo desde prompts simples hasta herramientas avanzadas durante el curso.
- Se utilizará Cursor, aunque se podría aplicar en otros editores, para demostrar la creación de contenido en modo agente.
Creación de una línea del tiempo interactiva
- Se propone crear una web que muestre una línea del tiempo desde la aparición de ChatGPT, incluyendo predicciones erróneas de CEOs sobre la desaparición de programadores.
- La idea es mostrar cómo funciona el bucle agéntico y seleccionar un modelo potente para obtener resultados rápidos y comprensibles.
Funcionamiento del agente
- El agente no solo interactúa con el modelo, sino que también realiza búsquedas activas en internet para recopilar información relevante.
- Se observa que el índice ya está siendo modificado por el agente, lo que indica su capacidad para trabajar sobre archivos existentes.
Modificaciones y resultados generados
- El agente puede crear diferentes ficheros sin intervención humana; se destaca cómo ha eliminado líneas innecesarias y añadido nuevas.
- Se muestra todo el código generado por el agente, evidenciando su habilidad para modificar archivos automáticamente.
Iteración y control del proceso
- A lo largo del curso se aprenderá a acotar las peticiones al agente para obtener resultados más específicos y útiles.
- Es importante definir claramente los pasos cuando se desarrolla un proyecto real; los resultados pueden variar si no se especifican adecuadamente las instrucciones.
Acciones adicionales del agente
- El agente busca hitos históricos relevantes e implementa procesos automáticos en Python para ejecutar la página localmente.
- La revisión constante del trabajo realizado por el agente es crucial para mantener control sobre los cambios realizados en los archivos.
Conclusión sobre la interacción con IA
- La colaboración entre humanos e IA es esencial; aunque la IA puede generar código rápidamente, es necesario revisar y ajustar según las necesidades específicas.
- Aunque usar agentes acelera el desarrollo, también puede llevar a perder control sobre decisiones concretas si no se gestionan adecuadamente.
Introducción a la IA y su Control
Uso de la IA en el Desarrollo
- Se discute cómo utilizar la inteligencia artificial (IA) para acelerar procesos, asegurando que siempre responda a las instrucciones del usuario.
- La IA puede entrar en diferentes modos, como el modo agente, donde puede ejecutar tareas específicas bajo ciertas condiciones.
Permisos y Control
- Es recomendable dar permisos gradualmente al trabajar con IA, especialmente al inicio, para mantener control sobre el código generado.
- El agente puede tomar decisiones autónomas si no se le proporcionan instrucciones claras, lo que resalta la importancia de establecer límites.
Seguridad y Validación en el Código
Importancia de la Seguridad
- A medida que se desarrollan más herramientas potentes, es crucial considerar aspectos de seguridad antes de implementar cualquier código generado por IA.
- Se enfatiza la necesidad de proteger información sensible y evitar compartir claves o datos críticos.
Análisis del Código Generado
- Antes de subir un proyecto a producción, es vital analizar si el código cumple con los requisitos deseados y no presenta vulnerabilidades.
Herramientas para Desarrollar con IA
Introducción a OpenCode
- En futuras clases se presentará OpenCode como una herramienta clave para desarrollar con inteligencia artificial desde cero.
- Se abordarán conceptos como habilidades del agente (skills), comandos y memoria para optimizar el uso de tokens y mejorar la eficiencia del desarrollo.
Expectativas Futuras
Clases Prácticas
- La próxima clase será práctica e incluirá conocimientos aplicables sobre cómo cerrar ciclos en el desarrollo utilizando agentes inteligentes.
Conclusión
- Se invita a los participantes a prepararse para aprender más sobre desarrollo web impulsado por IA en las próximas sesiones.