Así que… ¿Qué sigue ahora?#

¡Felicidades! Has llegado al final del curso. 🎉 Haz logrado aprender los aspectos básicos de la programación en Python y ahora estás listo para seguir aprendiendo y profundizando en el tema. Obviamente, la tarea más inmediata será experimentar con soluciones o pruebas particulares, incluso con pequeños programas que puedan ser compartidos con la comunidad de las humanidades digitales.

Después de este curso, existen varios caminos, además del más obvio que consiste en seguir aprendiendo más sobre Python y sus librerías. Algunos temas intermedios y avanzados que puedes explorar para programar en Python son:

  1. Desarrollo web con Django: Django es un framework popular de Python para construir aplicaciones web. Con él puedes explorar el desarrollo de sitios web dinámicos, aprender sobre el enrutamiento, el manejo de bases de datos y la creación de APIs. También puedes explorar con Flask, que es un microframework de Python para crear aplicaciones web, mucho más ligero que Django, pero con una curva de aprendizaje más pronunciada.

  2. Análisis de datos con Pandas: Pandas es una biblioteca poderosa para el análisis y manipulación de datos en Python, de la cual apenas arañamos la superficie al crear archivos csv. Con esta librería puedes aprender cómo cargar, limpiar, filtrar y analizar conjuntos de datos utilizando Pandas, y también puedes explorar visualizaciones de datos con Matplotlib o Seaborn. También puedes explorar la creación de gráficos interactivos con Plotly, o tableros de control con Dash.

  3. Machine Learning con scikit-learn: El aprendizaje automático (machine learning) es un campo emocionante y en crecimiento en la programación. En esta área puedes utilizar la biblioteca scikit-learn para construir y entrenar modelos de aprendizaje automático en Python. Puedes explorar algoritmos de clasificación, regresión y agrupación, así como técnicas de preprocesamiento de datos y evaluación de modelos. También, si te sientes un poco más osado, puedes explorar el aprendizaje profundo (deep learning) con TensorFlow o PyTorch, para esto requerirás un poco más de familiaridad con el hardware de tu computadora, ya que estos algoritmos requieren de una gran cantidad de recursos computacionales.

  4. Automatización de tareas con scripting: Python es ampliamente utilizado para la automatización de tareas. Puedes aprender a crear scripts que realicen tareas repetitivas, como procesamiento de archivos, extracción de información de la web, generación de informes automatizados, entre otros. Un buen punto de partida es el libro Automate the Boring Stuff with Python, que está disponible en línea de forma gratuita.

  5. Desarrollo de juegos con Pygame: Pygame es una biblioteca popular para crear juegos en Python. Puedes aprender cómo desarrollar juegos 2D utilizando los conceptos básicos de programación de juegos, como la creación de gráficos, el manejo de colisiones y la interacción con el teclado y el mouse. Este puede ser el punto de partida para empezar a desarrollar videojuegos más complejos que integren otros lenguajes como C y C++ o motores de videojuegos como Panda3D, Blender Game Engine, Unity o Unreal Engine.

  6. Programación orientada a objetos avanzada: La programación orientada a objetos es un concepto fundamental en Python. Puedes profundizar en este tema explorando conceptos avanzados como herencia, polimorfismo, métodos especiales, decoradores y clases abstractas. Un buen punto de partida para estudiar este tema es el libro Fluent Python (la sección IV en particular), así como el libro Object-Oriented Python.

  7. Aplicaciones de redes y sockets: También puedes aprender a crear aplicaciones de red utilizando la biblioteca estándar de Python. Puedes explorar la creación de servidores y clientes TCP/UDP, la comunicación en tiempo real, la transferencia de archivos y la implementación de protocolos de red.

  8. Aplicaciones a medida para minimal computing: Muchas organizaciones requieren soluciones a medida que involucran la integración de hardware y software. Por ejemplo, las instituciones dedicadas a la digitalización de documentos, o catalogación de bibliotecas, incluso aquellas interesadas en crear micro-nubes para almacenar información a mediano plazo. Puedes explorar la creación de aplicaciones para Raspberry Pi, que es una computadora de bajo costo que puede ser utilizada para crear soluciones a medida para una gran variedad de problemas. En general, el sistema operativo de Raspberry se entiende muy bien con Python, por lo que es una buena opción para explorar la creación de aplicaciones a medida.

Como podrás notar, el camino de profundización dependerá en gran medida de tus intereses. En general, es importante tener un conocimiento profundo en una o dos áreas de programación, en lugar de tener un conocimiento superficial en muchas.

También es importante que empieces a familiarizarte con otros lenguajes de programación. Por ejemplo, si estás interesado en el desarrollo de aplicaciones Web, es importante profundizar en JavaScript, HTML y CSS. Si estás interesado en el desarrollo de aplicaciones móviles, es importante profundizar en Java o Kotlin para Android, o en Swift para iOS. Si estás interesado en el desarrollo de aplicaciones de escritorio, es importante profundizar en C# para Windows o en Swift para macOS. Si estás interesado en el desarrollo de aplicaciones de escritorio multiplataforma, es importante profundizar en C++ o en Java. Tampoco está de más explorar otros lenguajes de programación como R o Julia, que son ampliamente utilizados en el análisis de datos y el aprendizaje automático.

En todo caso, este curso es el primer paso en un largo y satisfactorio camino de aprendizaje que no solamente te ayudará a aplicar tu conocimiento, sino además a desarrollar nuevas estrategias analíticas para abordar problemas de estudio socio-cultural con una perspectiva más amplia.

¡Felicidades por terminar exitosamente el curso! 🎉 Espero que te sea útil y que pronto tengamos noticias de tus programas.