358 - Un proyecto para aprender Python

358 - Un proyecto para aprender Python

Este es el inicio de un proyecto para aprender Python de una forma diferente, a través de una serie de retos que concluyen en una aplicación

1:25
-3:15

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

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

36 comentarios en “Un proyecto para aprender Python

  1. ER
    erremartin hace 2 años

    Me apunto, atareao.
    Hace tiempo que quiero aprender Python, y sufro síndrome de Diógenes digital y del otro, guardo cada caharrito tecnológico que encuentro. Naturalmente, llevo tiempo con este síndrome y tengo mi directorio de descargas más o menos organizado. Creé hace tiempo un directorio separado llamado en principio ayudaLinux, donde guardaba webs, howtos, vídeos, etc, separados en carpetas por temas. Hardware, comandos bash, awk, sed, tratamiento de imágenes, programación con sus subdirectorios Python, bases de datos, php…. Un subdirectorio para mis cosas de electricidad y electrónica y otros subdirectorios para mi colección de imágenes históricas, catálogos de monedas y billetes…. una barbaridad! Hay mucho material tuyo en mi disco duro, para trastear cuando no tengo conexión a Internet disponible.
    A las páginas web que descargo les extraigo información y les doy un formato homogéneo. O al menos, esa es la intención. Pero se acumulan los gigas…
    Me parece interesante tu manera de abordar este tema, a través de los retos bisemanales. No es la primera vez que me pongo con Python, ya tengo una base. Pero los cursos al uso son siempre lo mismo. Un montón de teoría al principio y muy pocos ejemplos de uso. Esta vez tenemos el objetivo final a la vista, paso a paso y eso anima a seguir adelante. Estoy seguro que aprenderé. Me gusta hacer cosas.

    1. AT
      atareao hace 2 años

      Hola,
      Muchas gracias, vamos a por ello.
      Un saludo

  2. MI
    michaelkane hace 2 años

    Me parece una experiencia interesante y en la medida de mis posibilidades voy a intentar seguirlo. Como bien se dice más arriba, la práctica es lo que más se echa a faltar cuando uno se decide a aprender algo de forma autodidacta.
    Enhorabuena por la iniciativa.

    1. AT
      atareao hace 2 años

      Hola,
      Gracias, a ver si le damos la vuelta.
      Un saludo.

  3. DE
    Devfam71 hace 2 años

    Enhorabuena por la idea del reto. Con ganas de empezar ya tengo algún conocimiento de python pero la mejor manera de aprender es con la práctica.

    1. AT
      atareao hace 2 años

      Hola,
      Sin lugar a dudas, la mejor forma de aprender es practicando, así que vamos a ello.
      Saludos.

  4. ED
    edcarfer hace 2 años

    Se algo de Python, pero me apunto!! Asi podre darle uso a la rapsby que esta ahi criando polvo y gestionar el Diogenes digital (que es bastante grave el tema ya). Un proyecto de utilidad y objetivo, poco mas se puede pedir

    1. AT
      atareao hace 2 años

      Hola,
      Saca la Raspy del cajón y a darle uso. Me alegro que te resulte interesante.
      Un saludo.

  5. RU
    Rubén hace 2 años

    Me apunto al proyecto.
    Supongo que con Windows se podrá utilizar WSL utilizando en mismo codigo que en Linux.

    un saludo

    1. AT
      atareao hace 2 años

      Hola Rubén,
      Seguro que con WSL se puede hacer, y supongo que con Windows directamente también. Prueba con PyCharm, a ver si te va bien.
      Un saludo.

  6. EN
    Enrique hace 2 años

    Ni flowers de Python, pero me apunto con Linux y Neovim

    1. AT
      atareao hace 2 años

      Hola Enrique,
      Madre mía… tu a lo grande con NeoVim. A por ello.
      Un saludo.

  7. AN
    Antonio Julián Arrieta Cuartero hace 2 años

    Me apunto, pero en vez de Python me apetece scsh (Scheme shell) desde Linux (of course). Ya veré. Saludos.

    1. AT
      atareao hace 2 años

      Hola Antonio,
      A tu entera elección, por supuesto. Ánimo
      Un saludo.

  8. PA
    Paco hace 2 años

    Me apunto !! Muy buen proyecto.

  9. FR
    Fran hace 2 años

    Uno mas que se apunta. Muy buena idea!

  10. ED
    Eduardo hace 2 años

    Excelente iniciativa. Algunos años atrás te envié un mail diciendo para cuando un curso de Python, también te dije, nada de hacer lo mismo que hacen los miles de cursos que hoy encontramos en You Tube, asi como los inicie así los abandoné. Por fin una buena alternativa para que me motive el continuar el curso para así poder finalmente aprender. Me anoto.

    1. AT
      atareao hace 2 años

      Hola Eduardo,
      Probablemente sería tu correo el que despertó algo en mi interior. Espero que te resulte interesante, y muchas gracias por tu correo (espero haberte respondido, porque llevo bastante retraso).
      Un saludo y muchas gracias.

  11. DE
    Deivy hace 2 años

    Totalmente, entusiasmado con esta iniciativa Lorenzo, yo me apunto no imagino cuan útil me será esta herramienta que vamos a construir, ya que sufro mucho por el desorden de archivos.

    1. AT
      atareao hace 2 años

      Hola Deivy,
      Muchas gracias… ánimo y a por ello.
      Un saludo.

  12. DI
    dis3lixco hace 2 años

    ¡Cuenta con mi hacha! Hace bastante que no programo y tengo el Python un poco oxidado, así que es genial que hayas decidido hacer algo así para ponerme al día.

    1. AT
      atareao hace 2 años

      Hola,
      Adelante. Vamos a por ello.
      Gracias por comentar y un saludo.

  13. HI
    hijosdeinit hace 2 años

    Me parece muy bien.
    No tengo ni idea de ‘python’ pero no quiero perderme este reto.

    1. AT
      atareao hace 2 años

      Hola,
      Intentaré empezar de lo mas sencillo… a ver si no me paso en velocidad, y si me paso, me dices.
      Un saludo y gracias por comentar.

  14. DA
    Daniel Hung hace 2 años

    Yo vivo en Venezuela, era docente pero no pude seguir cobrando solo 3$ mensuales en una de las economías más caras del mundo, me retiré y el Estado no me pagó ni pagará la liquidación de 25 años de servicio, así que decidí aprender Linux bash script, y programación a fondo, aprender a programar y trabajar de forma remota, a mis 50 años es un verdadero reto, pues crío a un par de ñiñas solo. En un año aprendí lo básico de la programación, y Linux, y ahora aprendo Mysql y PHP… agradezco al Sr: atareao porque mucho de lo que aprendido lo he aprendido aquí… y pues ahora hummm estudiar eso de self hosted y Python. Estos retos parecen juegos, pero en naciones como la nuestra, representan algo sí como La Lista de Schindler, dentro de estas potencialidades informáticas: dentro de esta «lista» la vida, fuera de ella; la muerte, acá el conocimiento y la informática es la diferencia entre vivir o morir literalmente . Un abrazo y gracias.

    1. AT
      atareao hace 2 años

      Muchas gracias por contar tu experiencia y compartirla.
      Un saludo y gracias.

    2. AL
      Alejandro hace 2 años

      Que bueno Daniel, te animo a no quedarte. Yo trabajo con PHP desde hace años, y te puedo decir que hay mucho trabajo.
      A tus órdenes en lo que pueda ayudarte.

  15. MA
    marc hace 2 años

    Jo, la que has armado! jajaja, enhorabuena Atareao, vamos a ordenar ese maldito directorio que se me erizan los pelos cuando lo veo.

    1. AT
      atareao hace 2 años

      Me alegro que te haya gustado el reto!!
      Muchas gracias por comentar!

  16. DA
    Dave Red hace 2 años

    Hola , ¿aun hay oportunidad de unirse al reto? Esta es mi oprtunidad para por fin dar el salto definitivo en este mundo.

    1. AT
      atareao hace 2 años

      Por supuesto que si… este reto dura todo el año, así que bienvenido… además estás a punto para conocer las Pyruletas
      Si quieres unete al grupo de Telegram…
      Un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *