Un proyecto para aprender Python
La semana pasada liberé el primero de los proyectos de este año. Un proyecto, que le puse un nombre característico self hosted, que te permitirá levantar tus propios servicios. Un proyecto con el que puedes conseguir tu soberanía tecnológica. Esta semana, el tutorial para instalar y configurar tu entorno de escritorio personal y personalizado, de principio a fin. Y para completar los proyectos o tutoriales, uno que le tengo especial cariño, que es el Reto Python. Se trata de ir de cero a cien para aprender Python. O al menos, alcanzar velocidad de crucero.
Un proyecto para aprender Python
Aviso a navegantes, o mejor, a programadores
Antes de nada, antes de meternos en harina, quiero que quede claro, que este no es el tutorial clásico. Es decir, no vas a encontrar, al menos inicialmente, todo lo relativo a variables, condicionales, etc. Aunque, esto no quiere decir, que en un futuro puedas encontrarlo en atareao.es.
Una mirada atrás
Aunque lo he contado en anteriores podcast, por si da la casualidad, que caes aquí por primera vez, o simplemente te has saltado todos los episodios anteriores, lo repito.
Toda la idea parte del Advent of Code, en el que participé a finales del pasado año. Lo cierto es que me pareció algo muy interesante, y una forma realmente potente de aprender un lenguaje de programación.
Al final, el problema es que necesitas aplicar lo que has aprendido de alguna manera, o de lo contrario lo vas a olvidar, mucho mas rápido de lo que lo has aprendido, con lo que lo mejor es practicar, practicar y practicar.
La cuestión es que hacer un Advent of Code me parece un trabajazo, y lo que propuse fue algo similar con una duración de todo el año, o por lo menos de lo que queda. A lo tonto, a lo tonto, ya he gastado mas de un mes.
A partir de esto, y matizado por los integrantes del grupo de Telegram, surge este Reto Python.
Las bases del Reto Python
Las bases de este reto son sencillas. Cada quince días te propondré un sencillo reto, que resolveremos a los quince días, donde te plantearé el siguiente reto. Posiblemente, durante la semana de descanso, le demos una vuelta a la solución anterior, para intentar mejorarla o profundizar en ella.
Cada uno de estos retos y su correspondiente resolución la veremos en un vídeo, de forma que sea mas sencillo seguirlo o por lo menos así espero.
Objetivo
El objetivo final del retos es implementar una aplicación que organice todo lo que caiga en un determinado directorio.
Esto surge de una problemática actual. Se trata del conocido como síndrome de Diógenes digital. Esa manía que tenemos últimamente de guardar todo lo que encontramos a lo largo y ancho de internet.
Así, se trata de conseguir ordenar y organizar todas esas descargas de la forma mas automatizada posible, para que te puedas despreocupar, mas o menos de lo que cae allí.
Conforme vayamos avanzando iremos añadiendo mejoras, y para hacerlo crearemos un sistema de complementos, que nos permita cargarlos de forma dinámica.
Dentro de los complementos, cada uno es totalmente libre de dejar volar la imaginación,
Así para las acciones se me ocurren las siguientes,
- Mover archivos
- Cambiar imagen de formato
- Dimensionar Imágenes
- Convertir entre formatos
- Empaquetar archivos
Mientras que los filtros, pueden ser,
- En función de la extensión o
mimetype
- Si contiene o empieza por una cadena de texto
- Si tiene una fecha concreta
- En función del propietario del archivo
Por supuesto que esta herramienta tiene que tener un archivo de configuración, donde indicarle que filtros tiene que cargar y que acciones ejecutar. Además puede ser interesante marcar el orden de las acciones y por supuesto, la preferencia de los filtros.
Pero, esto quizá es adelantarnos mucho en el tiempo. Como te digo, vamos a ir de a pocos, empezando por lo más básico y profundizando en cada reto.
Desde luego, si ves que corro mucho, simplemente alza la mano y avisa, para que pise el freno.
Conocimientos
Vas a necesitar ciertos conocimientos de programación, aunque no necesariamente de Python, y algo de conocimiento de tu Sistema Operativo.
Inicialmente, este Reto Python, está enfocado a Linux como sistema operativo, pero entiendo que lo puedas aplicar perfectaamente a Windows, aunque esto te llevará un poco mas de trabajo, porque como te digo, yo me voy a centrar en Linux.
La idea es partir de lo más básico, pero, como he dicho anteriormente, en este reto no entraré a comentar sobre variables, lógica, etc… Si no que la idea, es que esto lo veas tu por tu cuenta.
Necesidades
Para abordar este Reto Python, necesitarás, por supuesto un ordenador con Python, y como he dicho anteriormente, preferiblemente con Linux, pero esto depende únicamente de ti.
Por otro necesitarás un editor. Para esto, en el episodio del podcast, te propuse Visual Studio Code, y además en remoto. Esta es una opción pero puedes elegir cualquier otra,
PyCharm
NeoVim
En los vídeos, intentaré utilizar Visual Studio Code
, pero no te se decir, porque ahora mismo, me encuentro realmente cómodo con NeoVim
.
Conclusión
Espero que te resulte interesante, y que sobre todo me des feedback. Cualquier idea y/o sugerencia, te puedo asegurar que van a ser muy bienvenidas.
Lo cierto, es que me sucede igual que con el proyecto de self hosted. Son dos proyectos completamente diferentes a los tutoriales que vengo haciendo últimamente, y me dan bastante miedo… Veremos como salen.
Imagen de portada de Hitesh Choudhary
La entrada Un proyecto para aprender Python aparece primero en Atareao.