¡Eyyyy hola que tal dev! Muy buenas bienvenid@ a la web, Aitor otra vez por aquí. E imagino que si estás aquí es porque te habrás preguntado ¿Qué programar en Python? o algo similar.
A ver, es totalmente normal que cuando ya tienes un poco de conocimientos, o estás empezando en este mundillo, esta pregunta se te venga a la cabeza. No solo pasa con Python, si no que sucede con todos los lenguajes. No es tu culpa que algo así te ronde la cabeza, tranquil@.
Cómo sabrás, mi nombre es Aitor y soy desarrollador de software senior. Y también soy la persona que, con estos 6 puntos, te va a aclarar las ideas sobre lo que puedes programar con Python. Son los puntos principales, se pueden hacer más cosas, pero para lo que está definido el lenguaje es para estos.
Pero antes de continuar, este es El Círculo. Es mi newsletter donde te puedo enseñar desarrollo de apps móviles, aso y monetización. Por cierto, si te suscribes te regalo mi ebook Duplica los ingreso de tus apps en 5 minutos. No es broma.
P.D: Darse de alta es gratis y de baja, también.
Y antes de comenzar, me he tomado la molestia de hacer el tutorial en video también, así que, para los más gandules de mis lectores, aquí se lo dejo en video. Recuerda, tanto si eres seguidor mío, cómo si no, pues te suscribes al canal 😛
Consultar estructura del artículo
¿Qué programar en Python? | Punto 1 – Scripting
Bien, Python al ser un lenguaje interpretado, a diferencia de Java, por ejemplo, nos permite la programación en tiempo real (scripting) mediante un Shell. Pero es posible que muchos os preguntéis, ¿qué es esto?:
En resumen, Py nos permite programar línea a línea, y en tiempo real, sobre un Shell. Podremos definir variables, escribir funciones, programar controles de flujo, etc… línea a línea sobre dicho Shell.
A simple vista no parece útil, parece más útil un programa complejo que nos permita realizar X tarea. Pero cuando ya vas avanzando un poco en este mundo te das cuenta de que la utilidad de esto es enorme.
Si no, pregúntate por que la mayoría de los Hackers utilizan Py cómo lenguaje de desarrollo principal. Por qué va a ser, pues por esta característica.
Te preguntarás ¿y esta foto? Pues es para que pruebes los cuadernos Jupyter. Es una manera de llevar a cabo este tipo de desarrollo de una manera ágil y sin la necesidad de tener un sin fin de cosas instaladas en el PC, dale un try, no te decepcionará.
¿Qué programar en Python? | Punto 2 – Desarrollo web
En el punto número dos de nuestro artículo donde hablamos de qué programar en Python, hablamos de, quizás, uno de los puntos más esperados. El desarrollo web.
Si, amigo. Se puede desarrollar web en este lenguaje de programación. Más concretamente, se puede programar el BackEnd de una web sobre este lenguaje.
Para tal fin vamos a utilizar un framework llamado Django que pondrá a nuestra disposición una gama enorme de funcionalidades pensadas para tal fin. Vistas y plantillas html, control de enrutado, control de peticiones, midlewares, un ORM para acceder a la base de datos, etc… todo lo que te podrías encontrar en NodeJS también está disponible aquí.
A ver, es cierto de que no está tan avanzado en este campo cómo podría ser PHP. Pero claro, Django es más joven que dicho lenguaje. Así que tiempo al tiempo y veremos cómo se pone a su altura, si es que no lo está ya, en temas de rendimiento y funcionalidad.
Página oficial Django: https://www.djangoproject.com/
Por otro lado, tenemos a Flask. Flask es una librería mucho más liviana pensada para hacer cosas muchos más ágiles y rápidas. Por ejemplo, apis rest que tengan que escupir pocos datos o un servicio sencillo de gestión de usuarios.
Página oficial de Flask: https://flask.palletsprojects.com/en/1.1.x/
Punto 3 – Inteligencia Artificial
Cómo sabrás, y si no lo sabes aún pues ya lo haces, Py ha sido elegido cómo el lenguaje de programación principal para el desarrollo de Inteligencia Artificial.
Y bien ¿qué significa esto? Significa que los principales desarrollos de IA en el mundo están realizados sobre este lenguaje. A parte de eso, la comunidad que desarrolla para mejorar esta tecnología lo hace sobre él.
Por lo comentado en el párrafo anterior, tenemos a nuestra disposición las principales librerías/frameworks de inteligencia artificial del mercado. Dichos sistemas son los siguientes:
- Tenshor Flow (Google) https://www.tensorflow.org/
- PyTorch https://pytorch.org/
- Keras https://keras.io/
- SciKit Learn https://scikit-learn.org/stable/
En orden descendente tenemos las capas de abstracción actuales dentro del paradigma. Siendo Tenshor y PyTorch las bases donde se asienta todo. Son las más complejas de utilizar, pero las que más funcionalidad le podemos sacar a largo plazo.
Encima de Tenshor tenemos Keras. Es más, Keras está escrita cómo una Librería de Tenshor utilizando este cómo base y llamando a sus rutinas desde una capa de abstracción superior. Dificultad media, sacrificando un poco de funcionalidad.
Encima de todo esto tenemos SciKit Learn. Es posiblemente la biblioteca más utilizada en las empresas que se dediquen a la IA. Por que es la más sencilla de aprender y da mucha funcionalidad. Es la que tiene la capa de abstracción más alta.
Una vez que comprendes cómo funciona la IA, SkLearn es la librería que debes aprender primero. La sencillez con la que se hace todo es increíble. Montar redes neuronales con 4 líneas de código, literalmente, es muy potente. Eso sí, no tiene nada de Flexibilidad. Todo está prediseñado para que lo uses, pero se pueden tocar muy pocos parámetros. Ojo, pero no por eso pierde potencia ¡eh!
Punto 4 – Scraping Web
En el cuarto punto de Qué programar en Python, hablamos sobre el Scraping y la obtención de data pública para nuestros proyectos de manera automatizada.
Si no sabes lo que es el Scraping, es un tipo de desarrollo que nos permite “rascar” información de las páginas web públicas.
Básicamente, accede a una URL y recoge todos los datos que tenga esa web disponible. Para, posteriormente, guardarlos o procesarlos cómo nosotros queramos hacerlo.
Por regla general, esto lo usamos en sistemas un poco más Blackhat para aprovecharnos del contenido que han generado otros en nuestro beneficio. Para ponerte un ejemplo de Scraping web:
Un programa que recorra todas las páginas de una página web, se traiga todos los datos que nosotros creamos relevantes (los artículos del blog) una vez los tengamos todos los pasamos por el traductor de Google y los guardamos en una base de datos para luego montar nuestro blog con todo ese contenido.
Cómo has podido apreciar en el párrafo anterior, nos permite agilizar y automatizar muchísimo nuestro trabajo.
Pero no todo queda ahí, Python pone a nuestra disposición librerías cómo Selenium que permiten hasta que interpretemos el JS del HTML. Así podremos Scrapear aún más datos de páginas web que cargan su contenido de manera asíncrona. Pepinoso ¿verdad?
Solo te digo que esta opción, aplicada con un poco de creatividad, es una mina de oro a medio plazo, te lo aseguro porque lo se ?
Página oficila de Selenium: https://www.selenium.dev/
Punto 5 – IOT (Internet Of Things)
Pero si todo lo anterior no te sirve y te sigues preguntando ¿qué programar en Python? Pues vamos con este último punto.
Con Py tenemos la posibilidad de programar microcontroladores, cómo puede ser Raspbery, para poder llevar al plano físico del desarrollo de software.
Si te mola la robótica o la domótica este lenguaje es para ti. Con el podrás desarrollar un sinfín de movidas por su integración con el desarrollo embebido.
Por si no sabes lo que significa desarrollo embebido, es un desarrollo que básicamente nos permite cargar nuestro software en placas físicas ya preparadas para ello con unas instrucciones específicas.
Existen algunas librerías para ello, cómo es el SDK de la Raspi, pero podrás encontrar más si buscas por Google.
De todas maneras, aquí lo tienes por que es un poco complicado de encotrar el adecuado: https://datasheets.raspberrypi.org/pico/raspberry-pi-pico-python-sdk.pdf
Compañero del metal, si te ha gustado el artículo te invito a formar parte de “El Circulo” y es una comunidad molona que estoy montando alrededor del desarrollo de apps móviles. En ella te enseñare a ganarte un sueldo con el desarrollo de estas apps. Dentro tienes todos los detalles.
Y sin más que agregar, me despido ya. Sencillamente espero que te haya sido de utilidad y que, si ha sido así, pues que lo compartas con alguien de tu círculo que le pueda interesar. Nos vemos en el siguiente artículo, hasta entonces, que vaya bien.