El uso que doy a la AI como desarrollador a día de hoy
El uso que doy a la AI como desarrollador a día de hoy
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
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 Deezen en la película Juegos de Guerra (WarGames).
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í uno 😂 ). 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 Codespaces, que te permite usar Copilot en la nube.
Te recomiendo que mires las listas de reproducción del canal de Visual Studio Code. 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 mismogenérame una clase Calculadora
quegené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.
¡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)
.
- 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
Cuando tengo que escribir un comando que no sé o no recuerdo, siempre acudo a Warp, 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 CLI.
Code reviews
Si usas una cuenta de GitHub o GitLab, puedes incorporar en tu flujo de trabajo Sourcery. 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
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 Zapier. 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í. Como referencia, el proyecto AgentGPT 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ículo 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-gpt, 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 Cursor y Bolt. 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.
Tabnine en su plan Basic, que usa autocompletado de código y es primo hermano. Tienes DeepCode, 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í.
¿Conoces Continue?. 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í). Puedes obtener mas info en su Web.
Exísten muchas webs especializadas en AI para desarrolladores, como Phind, Userway , 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: codeium y supermaven.
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... 🤔