
Bienvenido (Otra Vez)
Planes para 2016
Escribí el último post en mi blog (la versión en español). Ha pasado mucho tiempo. Creo que han pasado más de dos años, y en dos años, han sucedido muchas cosas.
Decidí que es hora de comenzar a escribir de nuevo. Me encanta escribir, y es algo que me resulta fácil. Entonces, ¿qué ha cambiado en los últimos años? ¿Cuáles son mis planes para el futuro?
No hay nada más constante que el cambio
Creo que es importante mantener nuestras habilidades afiladas. Hace varios años, cuando comencé a programar con Java, me asombró las cosas que podía lograr con solo una computadora, algo de lógica y el conocimiento de un lenguaje de programación. En ese momento, no consideré algunos aspectos del proceso de desarrollo de software, como la mantenibilidad o la escalabilidad. Solo quería crear cosas. Solo necesitaba las herramientas para dar vida a mis ideas. Comencé a aprender Java de forma independiente (no me gustaban las clases relacionadas que recibí en los primeros años en la universidad). Pronto me di cuenta de la complejidad que pueden tener las aplicaciones del mundo real, y sobre todo, me di cuenta de que uno de los principales desafíos en el desarrollo es manejar cambios constantes mientras se mantiene la productividad del equipo, y la mantenibilidad, extensibilidad y rendimiento de tu código.
Comencé a buscar nuevos enfoques para el desarrollo de software e investigar cómo las grandes empresas manejan el cambio constante y mantienen la agilidad de sus equipos. Esa búsqueda me llevó a las prácticas de Desarrollo Ágil y lenguajes de programación versátiles como Python.
Comencé a aprender Python, y en ese momento, compartí mis nuevos hallazgos con un buen amigo, solo para darme cuenta de que él estaba en el mismo camino. Pero él fue aún más lejos y me presentó Ruby on Rails y algunas buenas prácticas que acompañan a ese increíble framework web. Comencé a aprender Rails. Estaba tan motivado que creé una pequeña aplicación cada fin de semana durante un par de meses.
Comencé a usar Ruby y Ruby on Rails para proyectos más serios, y todavía los estoy usando, pero ahora profesionalmente. Este año (2015), comencé mi primer trabajo usando Ruby. Me hubiera gustado que alguien me hubiera hablado de Ruby/Rails muchos años antes. Me encanta todo el ecosistema a su alrededor. Puedo concentrarme en los problemas del negocio en lugar de lidiar con configuraciones excesivas, verbosidad, falta de convenciones, algunas malas prácticas, etc.
A medida que el tiempo ha cambiado, mi viaje en el desarrollo de software ha enfrentado diferentes desafíos. Ruby y muchos otros lenguajes tienen límites al resolver concurrencia, tiempo real, tolerancia a fallas, productividad, rendimiento, big data, etc. El problema ha sido que muchas tecnologías ofrecen buenas soluciones a algunos desafíos pero carecen de las características para enfrentar otros. Necesitamos explorar nuevas alternativas a algunas tecnologías que estamos usando hoy en día.
Entonces, al llegar a este punto, en los próximos años, quiero enfocarme en aprender y aplicar nuevas tecnologías que me ayuden a enfrentar y resolver algunos problemas de la “nueva web”. Este blog será parte de ese viaje. Pero no importa cuánto pueda aprender en los próximos años, siempre habrá grandes desafíos ahí afuera. El progreso en esta área se mueve a la velocidad del rayo, por así decirlo. Tal vez en este momento, en algún lugar, alguien está trabajando en ‘La Próxima Gran Cosa’.
Cuanto más aprendo, más me doy cuenta de cuánto no sé.
Por lo tanto, necesito pensar cuidadosamente en qué enfocarme para los próximos años. Las cosas que realmente quiero aprender y usar, todas alineadas con mis objetivos personales para los próximos años. Estoy trabajando en eso, pero quiero compartir un pequeño resumen de un plan que estaré publicando aquí para el próximo año.
2016
-
Aplicaciones web: Tiempo real en todas partes
El tiempo real ha dejado de ser la característica elegante de los dashboards interactivos y se ha convertido en un nuevo requisito de las aplicaciones web y móviles.
A enfocar: Elixir/Phoenix, Rails/ActionCable
-
FrontEnd: Virtual DOM y los Componentes se están comiendo el mundo
Las grandes empresas han comenzado a escribir componentes front-end reutilizables. Y desde el lanzamiento de ReactJs, muchos otros frameworks JS como Ember.js han comenzado a implementar su propia versión de Virtual DOM, una abstracción del DOM que aporta gran rendimiento y un modelo de programación más simple a la mesa de los frameworks JS.
A enfocar: ReactJs
-
Móvil: Mira mamá, ¡es nativo y usa JS! -¡Wooot!
React Native fue un cambio de juego. Antes de su lanzamiento, no podías lograr un comportamiento similar al nativo usando frameworks JS/HTML. Pero, con React Native, necesitas aprender React y algunos componentes nativos para comenzar a desarrollar tu próxima aplicación móvil. Tienes que elegir entre una buena experiencia de usuario o mejor productividad usando HTML5 (e incluyendo a todo tu equipo que, en el peor de los casos, conoce HTML básico).
A enfocar: React Native, ReactJs.
-
Backend: Escalabilidad primero y sin tiempos de inactividad.
La escalabilidad está en demanda. Tenemos clientes en navegadores, pero también tenemos que manejar dispositivos móviles, aplicaciones de escritorio híbridas, el internet de las cosas, etc. Entonces, la forma tradicional de construir aplicaciones ha terminado; necesitamos considerar aplicaciones con escalabilidad y confiabilidad en mente.
A enfocar: Elixir
-
SysAdmin: Contenedores, la nueva forma de hacer SysAdmin
A enfocar: Docker / CoreOS
-
DataScience: Los datos se comieron el mundo
A enfocar: R y Spark.
Share this post:

About Gerardo Ortega
Software craftsman with a focus on scaling, polyglot programmer, coffee enthusiast, and lifelong learner. Passionate about machine learning, data science, and building great products.