Software Development Learning Roadmap
Como desarrollador de software con experiencia y orientacion al BackEnd, actualmente estoy ampliando mis conocimientos hacia el desarrollo frontend, especialmente en aplicaciones de una sola página (SPA). Además, estoy fortaleciendo mis habilidades en arquitectura de software, incorporando tecnicas y metodologias de DevOps, y comprendiendo el trabajo con tecnologías emergentes en la nube y herramientas de inteligencia artificial especialmente self-hosted.
Esta es una breve presentacion del plan de estudios que sigo actualmente (2025-02-12):
1. Frontend Development
El objetivo aquí es dominar las tecnologías clave para el desarrollo frontend moderno, desde los fundamentos hasta la creación de aplicaciones SPA de alta interactividad que soporte web3.
- Alpine.js: Uso de esta libreria de js para mejorar la interactividad de sitios web. Me ha permitido hidratar documentos que son enviados desde el servidor, en una metodologia conocida como "Client Side Rendering".
- HTML Templating: Técnicas para estructurar contenido dinámico de manera eficiente. Dado que las templates de HTML tienen un DOM especial, estoy comprendiendo como aumenta la reusabilidad y que posibilidades de creacion de Scaffolding permite.
- SPA (Single Page Applications): Profundización en fundamentos de arquitectura web y frameworks para la creación de aplicaciones dinámicas. No me estoy atando a la manera de hacer las cosas de un Framework, si no que ahora estoy comprendiendo las bases para luego ver como es que los FW pueden ser utiles.
- Webpack y browserify: Empaquetado y optimización de recursos para mejorar la eficiencia de aplicaciones web y su entrega.
- CSS Generators y diseño dinámico: Herramientas para la generacion automática de estilos.
- React: Exploración y práctica con uno de los frameworks más usados actualmente para la construcción de interfaces interactivas y SPA.
2. Programación Web
- Principios básicos del desarrollo web. (Mucho de esto lo vi en la Universidad)
- Funcionamiento de los servidores web y navegadores. (Mucho de esto lo veo gracias a la enorme documentacion publica de estas herramientas, por ej la mantenida por WHATWG)
3. Integración de Pagos
- Implementación de pasarelas de pago y transacciones seguras. No solo usar las API de ML o un boiler en Strapi y tenerlo listo, si no comprender las consideraciones desde la arquitectura para evitar problemas en este area crucial.
4. Deployment y Hosting
- Scaffolding y boilerplate: Generación de proyectos con buenas prácticas desde el inicio.
- Despliegue de aplicaciones en Node.js con Render.
- Cloudinary: Uso del free tier para optimizar la gestión de imágenes en la nube.
- Google Cloud Console: Exploración de servicios en la nube para despliegues escalables.
- SSH: Uso en tareas de deployment y administración de servidores.
5. Backend Development
- Python y Node.js: Profundización en estos lenguajes para construir APIs eficientes.
- Strapi: Uso de este CMS headless para gestionar contenido dinámico.
- SQLite: Implementación y optimización de bases de datos ligeras.
- Webhooks: Integraciones entre sistemas mediante eventos en tiempo real.
6. API y Autenticación
- OAuth2: Implementación de protocolos de autenticación segura.
- GraphQL: Exploración de esta tecnología para mejorar la eficiencia de las APIs.
7. Manejo de Datos y Bases de Datos
- Entity Frameworks y ORM: Técnicas de abstracción para el manejo eficiente de bases de datos.
- Estructuras de datos y algoritmos: Mejora de la eficiencia en la manipulación de datos.
- Análisis de comportamiento de usuarios en sitios web.
- Gestión eficiente de bases de datos como desarrollador.
8. Arquitectura de Software y Herramientas
- Patrones de arquitectura: Buenas prácticas para el diseño de sistemas escalables.
- Agentes de IA y automatización con n8n.
- SupaBase: Alternativa a Firebase para la gestión de bases de datos en tiempo real.
- NPM y su ecosistema.
- Pipeline architecture: Implementación de procesos de integración y despliegue continuo.
- Huly: Exploración de nuevas herramientas para mejorar la comunicacion con los interesados y equipo.
9. Diseño y Redes
- Brokers y Gateways: Conceptos fundamentales para la comunicación entre servicios.
- Proxy y Proxy Inverso: Mejora del rendimiento y seguridad en arquitecturas web.
- CDN y DNS: Optimización de la distribución de contenido.
- Diseño de sistemas y diagramas de flujo. Principalmente usado con clientes freelance.
- P2P vs Vendor Locking: Evaluación de estrategias para evitar la dependencia de proveedores.
- IDL y esquematización de interfaces.
10. DevOps y Herramientas de Infraestructura
- Terraform: Infraestructura como código para gestionar recursos en la nube y gestionar vendor-lockin.
- Kubernetes (k8s): Orquestación de contenedores para despliegues escalables. Principalmente entender como usarlos para tareas de desarrollo.
- GitLab CI y GitHub Actions: Automatización de procesos de integración y entrega continua. Principalmente he usado Github Actions.
- Grafana: Monitoreo y análisis de métricas en tiempo real.
Esto es hasta hoy dia mi plan de estudios. Si queres conocer aplicaciones de estos conocimientos, podes visitar mi seccion de 'soluciones creadas' en mi perfil de github