Saltar al contenido principal

El uso que doy a la AI como desarrollador a día de hoy

Jose CerrejonAlrededor de 7 minDeveloper

El uso que doy a la AI como desarrollador a día de hoy

AI
MEME found at r/ProgrammerHumoropen in new window

Información

Post actualizado el 22 de octubre de 2024.

No te digo una mentira cuando te aconsejo que si no estás usando la AI en tu día a día, estás perdiendo una gran oportunidad.

NO PODEMOS ESCAPAR.

Esto avanza de forma vertiginosa y no hace falta convencerte de que te puede ayudar en todos los procesos que realices, tengas la profesión que tengas (No, si eres churrero no). En este artículo te cuento cómo la uso yo como desarrollador y tal vez en otro artículo, como escritor.

GitHub Copilot

AI Code generation meme
True, true...

Tampoco me voy a entretener mucho en decirte de lo que escribo en esta sección. Por $20 tienes un asistente en tu IDE que te ayuda a escribir código. No es perfecto dicho sea de paso, pero te ahorra tiempo y el efecto Wow 😱 a día de hoy, a mi me convence.

A veces, incluso te da soluciones que no habías pensado (y al principio te da rabia como humano que eres). Es como el compi listillo que te está corrigiendo y dando soluciones sin pedírselo... Curioso que me haya venido a la mente a Eddie Deezenopen in new window en la película Juegos de Guerra (WarGames).

Eddie Deezen
Grande Eddie Deezen. DEP.

Aunque no todo es tan bonito como parece, porque a veces te da soluciones que no son las mas óptimas, y te toca revisarlas (hay cientos de memes sobre esto, aquí unoopen in new window 😂 ). Pero bueno, es lo que hay este año. El que viene, ya veremos...

Por cierto, en VSCode recuerda instalar las dos extensiones esenciales para sacarle todo el provecho: GitHub Copilot y GitHub Copilot chat. También tienes a tu disposición una extensión para usarlo con GitHub Codespacesopen in new window, que te permite usar Copilot en la nube.

Te recomiendo que mires las listas de reproducción del canal de Visual Studio Codeopen in new window. Te dejo algunos tips que uso en mi día a día:

  • Ideal para pequeños scripts: Es de las funcionalidades que mas uso. He creado scripts para automatizar tareas que me llevaban tiempo y que ahora me las hace en segundos. Por ejemplo, un script que me limpia los sistemas de almacenamiento externo antes de expulsarlos en Rust (y no tengo mucha idea de este lenguaje, dicho sea de paso), otro que me descarga listas de Youtube...

  • Ponlo a hacer tests: Lo que mas odiamos los programadores, pero que mas nos ayuda a la hora de ver si lo que escribimos cumple las espectativas (y no la hemos jodido actualizando un método). Nuestro amigo te ayuda a escribir los tests, pero no a pensar en ellos. Tú dale un empujoncito, ya verás que rápido te hace el trabajo sucio.

  • Usa atajos de teclado: Si usas VSCode como yo, te recomiendo que te aprendas los atajos de teclado que te ofrece. Cmd + i para que le preguntes en línea, Shift + Cmd + H abre el chat lateral para que puedas preguntarle.

  • Usa la contrabarra en el chat: Si escribes en el chat la contrabarra /, te da una lista de comandos que puedes usar para mejorar la respuesta. En mi caso, uso mucho @workspace para que me de soluciones acordes a mi espacio de trabajo, pero tienes muchos otros: /help, #file:index.html, /explain, @vscode, etc.

  • Pregúntale lo que quieras: Es una AI, así que no le tengas miedo: ¿Cómo puedo construir este proyecto?, ¿Cómo instalo las dependencias?, ¿Dónde están los middlewares?, ¿Puedes darme el secreto para hacerme rico?. Recuerda que si no quieres resultados genéricos, tienes que especificar @workspace o @file para que te de soluciones acordes a tu espacio de trabajo. Detalla lo que necesitas. No es lo mismo genérame una clase Calculadora que genérame en PHP una clase Calculadora documentando los métodos y tipando los parámetros.

  • Errores en el código o la Terminal: Si a la hora de ejecutar tu código, sea web o de cualquier tipo, te da un error, puedes preguntarle a Copilot qué está pasando. Selecciona el error y pégalo en el chat. Si el problema procede de la terminal, selecciona el código, pulsas el botón derecho del ratón y eliges la opción Explain this. También puedes pulsar en las estrellitas (sparckles) ✨ que te aparece a la izquierda de tu prompt.

GitHub mobile screenshot
GitHub Mobile incorpora Copilot también
  • ¡También en tu smartphone!: Si usas GitHub en tu smartphone, puedes usar GitHub Copilot. 😍

  • Cuando falle o no te de la solución que buscas: No te enfades. Lo que yo hago es crear un nuevo chat y le pregunto de nuevo. Sobretodo me ha sucedido cuando te ofrece código que procede de algún proyecto público. Debes especificar en los ajustes dentro de GitHub Copilot que quieres (o no) que te de soluciones usando código público activando o desactivando la opción Suggestions matching public code (duplication detection filter).

comments
Deja que te cree los comentarios para tus commits
  • Deja que te cree los comentarios para tus commits: Si eres de los que no le gusta escribir los comentarios de los commits, pulsa el icono de las estrellitas. Lo bueno es que va aprendiendo de tus comentarios y te va a dar descripciones mas acordes a tu estilo.

Ayuda en la Terminal

Warp AI
Warp AI

Cuando tengo que escribir un comando que no sé o no recuerdo, siempre acudo a Warpopen in new window, la Terminal que lleva incorporado AI de serie. Es como un Copilot para la Terminal y es multiplataforma. Si no lo has probado, te lo recomiendo. Aquí hay poco que contar: escribes lo que quieres hacer y te da la solución. Fácil y rápido... A día de hoy es gratis, pero tiene planes de pago.

Si, Copilot en la Terminal

GitHub Copilot también te puede ayudar con los comandos en la terminal de tres formas distintas: le especificas la palabra @terminal antes de tu pregunta en el chat, con Cmd + i en la vista de terminal dentro de VSCode o puedes usar GitHub Copilot in the CLIopen in new window.

Code reviews

Sourcery screenshot
Sourcery in action!

Si usas una cuenta de GitHub o GitLab, puedes incorporar en tu flujo de trabajo Sourceryopen in new window. En mi caso, cuando voy a hacer un pull request, me da sugerencias de cómo mejorar mi código. Para proyectos open-source es gratuíto.

Agentes de AI

AI Agents
Guide of AI Agent Types with examples. Mediumopen in new window

Aunque no es una herramienta que use a diario (aún), este concepto me parece interesante mencionarlo. Lo explican muy bien en este artículo de Zapieropen in new window. Voy a dejar que mi AI te lo explique:

Imagina que tienes un bot que te ayuda a hacer tareas repetitivas, como por ejemplo, que te avise si un servidor está caído, que te diga si un pull request ha sido aprobado, o que te avise si un issue ha sido cerrado. Pues eso es lo que hacen los AI Agents.

En Medium tienes un topic específico para esto y que puedes encontrar aquíopen in new window. Como referencia, el proyecto AgentGPTopen in new window es un buen ejemplo de lo que te hablo.

Si no tienes tiempo para dedicarlo a programar este tipo de agentes, tu solución puede estar en usar LLM Pipelines, que es un servicio que te permite crear agentes de AI sin tener que programar. Echa un vistazo a este artículoopen in new window llamado You Don’t Need an LLM Agent.

Como herramienta de aprendizaje

Creo que es de las mejores herramientas que puedes tener para aprender a programar.

En caso de estés empezando con un nuevo lenguaje o framework, mi consejo es que crees un fichero markdown con un encabezado tipo Como hacer un CRUD en Python o Introducción a la programación en Rust. Ya verás como te empieza a dar ideas a medidas que le vas dando secciones de forma contínua.

Dime lo que sepas de mis PDFs

Trabajé de jefe de proyecto los dos últimos años, y acumulé muchas actas, informes, etc. Si un cliente solicitaba algún dato, tenía que buscarlo entre cientos de documentos de Word o PDFs.

Cuando encontré el proyecto private-gptopen in new window, todo lo que tenía que hacer era pedirle cualquier información a un chat, y éste me lo devolvía junto con el nombre del fichero donde se encontraba de forma rápida y (casi) eficaz.

Es una herramienta que te recomiendo si tienes que lidiar con muchos documentos y tu cerebro no se acuerda de las comisiones que se pactaron hace seis meses. Lo mejor: de forma privada y en local.

Otras AI que puedes usar

Si no te convence o no quieres pagar por GitHub Copilot, hay otras opciones.

Dos alternativas destacadas son Cursoropen in new window y Boltopen in new window. El primero tiene un plan gratuito con 2000 completaciones por mes (no está mal) y 50 solicitudes premium lentas. El segundo es un IDE en línea, pero es una buena opción para maquetas rápidas con plantillas predefinidas usando Astro, ShaCDN o Vitepress.

Tabnineopen in new window en su plan Basic, que usa autocompletado de código y es primo hermano. Tienes DeepCodeopen in new window, que es un analizador de código que te ayuda a encontrar errores y a mejorar tu código.

El anteriormente mencionado Sourcery también te puede ayudar en este sentido y es muy fácil implementarlo. Puedes ver la documentación para VSCode aquíopen in new window.

¿Conoces Continueopen in new window?. Es una extensión muy joven para VSCode y Jetbrains tipo Copilot, pero en local. Es decir, el modelo se lo debes suministrar tú usando Ollama o similar (listado de modelos aquíopen in new window). Puedes obtener mas info en su Webopen in new window.

Exísten muchas webs especializadas en AI para desarrolladores, como Phindopen in new window, Userwayopen in new window , pero yo te recomiendo aquellas que puedas usar dentro de tu IDE, para que sea mas fácil de usar y "aprenda" a darte código acorde a tu espacio de trabajo.

Otras que no he probado, pero he escuchado que son buenas son: codeiumopen in new window y supermavenopen in new window.

Palabras finales

Es curioso todo lo que pasa con esta tecnología: si no la usas, te quedas atrás, y si la usas, es como ese nuevo compañero de trabajo que te han puesto al lado para que aprenda todo lo que sabes y la empresa pueda prescindir de tí en el futuro.

Según algunos analistas, aún queda mucho para que eso suceda (¡Cinco años!), aunque otros creen que es una herramienta mas y que simplemente se modificará la manera que tenemos de interactuar con las máquinas.

Permitidme que yo mientras tanto, disfrute de las ventajas que me ofrece para mejorar mi escritura, sea de código o de prosa, y me siga ayudando en esos trabajos que me llevan mas tiempo del que me gustaría.

Como ejemplo de lo que hablo, he escrito la palabra tenemos, y mirad lo de lo que me intenta convencer el autocompletado de texto de Copilot:

Copilot, your friend 🤖

Tenemos que ser conscientes de que la AI no es el enemigo, sino una herramienta mas que nos puede ayudar a ser mas eficientes en nuestro trabajo.

Lo que tú digas, Copilot. Lo que tú digas...

Estoy a tiempo de montar una churrería frente a un hospital... 🤔