614 - Mejorar tu programación con ChatGPT
Como mejorar tus habilidades de programación en #python #rust #javascript utilizando cualquier #ia o model de lenguaje como #chatgpt #openai
Como siempre digo, la mejor forma de aprender a programar es programando, lo mismo que para aprender a montar en bicicleta, y con igual resultado, en el sentido de que una vez aprendes a programar no se olvida. Es posible, que al igual que sucede con cualquier lenguaje se te olviden palabras, pero lo que es a programar no se olvida nunca. Pero también puedes aprender a programar leyendo el código de otros o programando en parejas. Pero ¿que sucede si no tienes código del que leer? o ¿no tienes pareja con la que programar?. Aquí justo es donde puedes mejorar tu programación con ChatGPT.
Mejorar tu programación con ChatGPT
Aviso a navegantes o desarolladores.
Si bien lo que voy a contar en este episodio del podcast, se centra en Neovim, soy consciente de que encontrarás herramientas similares para otros editores como Visual Studio Code o PyCharm, por citar alguno.
Por otro lado, si bien estoy hablando de ChatGPT, puedes extrapolar mis palabras a cualquier otro modelo de lenguaje que tu quieras. Simplemente tendrás que o cambiar de complemento, o cambiar la configuración del complemento según el caso.
La razón de centrarme en Neovim, es como sabes, es el editor que estoy utilizando, y donde he buscado un plugin con el que realizar esta mejora de código.
Sin embargo, como te decía anteriormente, las características que mencionaré del plugin, las encontrarás en otros complementos similares para otros editores.
En particular
Neovim y ChatGPT
ChatGPT es un plugin para Neovim implementado por jackMort en Lua, que te permite utilizar la API de ChatGPT directamente desde el propio editor.
Algunas de las características de este complemento son las que encontrarás a continuación, y si bien, estas características son particulares de este complemento para Neovim, las podrás encontrar en otros complementos con independencia del Editor que tu estés utilizando.
- Sesiones de preguntas y respuestas: Puedes crear sesiones de preguntas y respuestas interactivas con ChatGPT utilizando una interfaz intuitiva.
- Conversaciones basadas en prompts predefinidos: En este caso, puedes realizar conversaciones también de preguntas y respuestas, pero utilizando comportamientos predefinidos. Por ejemplo, puedes decirle que se comporte como un traductor de inglés a español. Para esto simplemente tienes que configurar una
url
de donde descargar esos comportamientos. En mi caso, estoy utilizando estos prompts para ChatGPT. - Asistencia en Edición de Código: Mejora tu experiencia de codificación con una ventana de edición interactiva impulsada por el modelo gpt, que ofrece instrucciones adaptadas para tareas de programación.
- Autocompletado de Código: Te permite realizar Autocompletado de código de forma sencilla. Simplemente tienes que escribir el código que quieras, y cuando necesites que realice el autocompletado, y en el caso de que lo que haya completado te convenza, simplemente pulsas
Enter
oEsc
en caso de que no te guste. - Editar con instrucciones: Puedes a partir de una parte del código decirle que lo modifique según tus instrucciones.
- Acciones Personalizables: Ejecuta una variedad de acciones utilizando el modelo gpt, como corrección gramatical, traducción, generación de palabras clave, creación de docstrings, adición de pruebas, optimización de código, resumir, corrección de errores, explicación de código, edición y análisis de legibilidad de código. Además, puedes definir tus propias acciones personalizadas usando un archivo JSON.
Una de las grandes ventajas de poder utilizar ChatGPT o cualquier otro modelo de lenguaje en tu propio editor es precisamente que no tienes que salir de él. Rápidamente, en una llamada puedes traducir, modificar o simplificar. Pero no solo esto, también tienes la ventaja del enfoque. Aquí, no te tienes que preocuparte de si te vas o no te vas a distraer, por que estás centrado en tu herramienta y no sales de ella.
No es como en el caso de terminar en un navegador, que allí, sabes donde empiezas pero no donde acabas.
Aprendiendo y mejorando
Como te decía en la introducción, no siempre tienes la posibilidad de tener una pareja o alguien para preguntar o para hacer programación en pareja. Justo aquí es donde un modelo de lenguaje viene fantástico. Y creo sinceramente que para este tipo de operaciones es especialmente interesante.
Así, por ejemplo, algunos usos que le estoy dando es el siguiente,
- Convertir un lenguaje en otro.
- Realizar un autocompletado de un código.
- Simplificar mi código.
Es precisamente esta tercera de las opciones la que mas me interesa, porque me permite ver y conocer otras opciones de escribir mi código, que a mi, a priori, no se me ha ocurrido. Pero, no solo esto, sino que con el paso del tiempo, ir adoptando estas nuevas opciones.
En ocasiones te metes tu solo en un spaguetti code muy absurdo, y esta es una manera muy sencilla de salir de él, pero, como digo con el objetivo de aprender.
Por supuesto cuando estás en el conocimiento de un lenguaje de programación, esta es una parte muy interesante, para que te muestre simplificación o alternativas. Un ejemplo claro para mi es el siguiente,
if let Some(body) = event.get("content")
.and_then(|content| {
debug!("Evento: {:?}", content);
content.get("msgtype")
.and_then(|msgtype| msgtype.as_str())
.filter(|&msgtype| msgtype == "m.text")
.and_then(|_| content.get("body"))
.and_then(|body| body.as_str())
})
{
return Some(body.to_string());
}
El and_then
y filter
no los había utilizado hasta que me los descubrió ChatGPT
en un caso claro de pedirle que simplificara el código. Y desde luego, pasamos de un código que era complicado de leer a un código mucho mas sencillo y claro, donde, de un vistazo entiendes lo que buscas, y además simple.
Conclusión
De esta manera te animo a que te sumerjas en el mundo de los modelos de lenguaje con un espíritu de aprendizaje, no con el espíritu de que te saque las castañas del fuego. Y por supuesto, siendo lo mas excepctico posible con sus resultados, porque de otra forma, te llevarás mas de una sorpresa.