Las 5 decisiones en mi transformación como developer
Carlos Encalada es alguien al que tengo muy lejos físicamente, al otro lado del charco, pero aquí al lado en el aspecto emocional. Le he visto crecer y este artículo es el fiel reflejo de un conjunto de elecciones comprometidas que ha hecho en el último año.
Bienvenido a este blog, valiente malandriner. Dani.
Acercarse al desarrollo de software actual puede resultar abrumador por el número de herramientas que existen, lenguajes disponibles, conceptos por aprender y ámbitos de especialización; pero resulta anecdótico si te has dedicado a esto durante más de 10 años.
Ese es mi caso, me especialicé en una herramienta LowCode (antes ni se le catalogaba así) llamada GeneXus con la que pude desarrollar e implementar una gran cantidad de sistemas de tipo empresarial con buenos resultados.
La principal ventaja de este tipo de herramientas es que permiten abstraer al usuario (no digo desarrollador ya que justamente están orientadas a un público más general) del código puro para aumentar la velocidad de entrega del producto.
Esto que es su mayor ventaja, también puede transformarse en su mayor problema, claro si uno después de un tiempo de usarla decide salir de la caja (nunca mejor dicho) y mirar que hay más allá.
Eso me ocurrió hace casi tres años cuando descubrí roadmap.sh y me dí cuenta que conocía un porcentaje muy bajo de los conceptos relacionados al desarrollo. Ahí empezó mi búsqueda por tratar de ponerme al día y consumir todo el contenido disponible, tarea titánica que vino acompañada del siempre presente Síndrome del Impostor y que generó un FOMO (Fear Of Missing Out) descomunal.
Luego de centrarme y analizar mejor que es lo que quería conseguir, tomé la decisión de acotar el campo de acción y seleccionar cinco temas para enfocarme este año.
Las 5 decisiones ¶
El inicio de un nuevo año siempre es una buena escusa para definir propósitos, no es que no se lo pueda hacer en cualquier momento, pero las marcas temporales establecidas nos ayudan a llevar un mejor seguimiento, si no me crees echa un vistazo a estos diarios de developers
Si bien, el haber estado tantos años alejado del desarrollo real provocó que al principio me encuentre perdido en un sin fin de nuevos conceptos, nuevos lenguajes, nuevas tecnologías; luego de empezar a organizar las ideas y evaluar alternativas veo que no todo es malo.
El haber empezado este camino en el momento actual tiene la ventaja de que muchas herramientas han alcanzado un estado de madurez más que aceptable lo que facilita su adopción sin tener que sufrir todo el camino de consolidación y los dolores de cabeza que pueden provocar.
Es por eso que este año planeo enfocarme en cinco temas que considero claves en mi desarrollo profesional y son: una herramienta (Docker), dos conceptos (LowCode y Jamstack), un lenguaje (PHP) y un framework (Vue).
1. Docker ¶
Es común que de pronto una tecnología parezca salida de la nada y se presente como una solución mágica. El concepto de contenedores ha existido por mucho tiempo en Linux pero lo que hizo Docker es popularizarlo.
Más de una vez he vivido el caso en mi máquina si funciona cuando ese desarrollo en el que trabajaste con mucha dedicación no funciona el momento de desplegarse en producción.
Una de las principales funciones de Docker es poder tener en nuestro ambiente local un copia exacta del ambiente de producción para poder testear mejor nuestro aplicativo y minimizar los posibles inconvenientes.
Otra ventaja que le veo es el poder tener diferentes servicios disponibles en el equipo local sin tener que ‘ensuciar’ el sistema instalándolos directamente y solo levantarlos el momento que se necesiten.
La información disponible es abundante, pero mi punto de partida será esta Introducción a Docker.
2. GeneXus ¶
A día de hoy se considera una plataforma más que una herramienta ya que las posibilidades de extenderla y las alternativas que ofrece son innumerables. A pesar de haberla utilizado por más de 10 años siento que domino solo una pequeña parte de todo lo que ofrece.
El hecho de que abarque tantas características para cumplir prácticamente con cualquier requerimiento, en ocasiones ocasiona que en ciertas áreas no termine de consolidares (es el caso de la parte gráfica de las aplicaciones web)
Mi plan es profundizar en temas como la generación de APIs, manejo de bases de datos, despliegues, microservicios. Es decir, que sea mi herramienta de backend por excelencia, pero empezar a evaluar alternativas.
3. PHP ¶
¿Por qué elegir un lenguaje que muchos dan por muerto o catalogan de obsoleto?
Porque creo que ninguna de las dos afirmaciones es correcta.
Más allá del hecho que es la base de plataformas muy populares (como WordPress) lo considero el lenguaje de la web (después de HTML, claro está).
Mi última experiencia con PHP fue hace unos 15 años y por eso quiero reaprenderlo, aprovechando que las versiones 7 y 8 han incorporado una serie de características que buscan modernizarlo.
De lo que he podido conocer, durante varios años estuvo estancado y recién las versiones 7.X incorporaron varios temas clave, así que espero que sea uno de los casos en los que estar alejado durante tantos años no represente mayor problema para poder profundizar en él.
Las opciones para empezar son innumerables, pero voy a optar por un concepto que me atrae y es fundamental hoy en día: APIs.
4. Vue ¶
Antes de empezar este camino pensaba que JavaScript solo servía para dar pequeñas funcionalidades a una web… que equivocado estaba. Luego de descubrir todo lo que es posible realizar con este lenguaje me quedé atónito.
Realmente me resulta asombroso lo versátil que es y todo el potencial que tiene. Considero muy difícil que en la próxima década aparezca otro lenguaje que realmente se pueda considerar un sustituto y por eso planeo aprenderlo en forma.
¿Y por qué Vue y no Vanilla JavaScript?
Porque pasar de una herramienta LowCode a código puro directamente me resulta muy complicado de asimilar. Además, la elección de Vue se debe a la filosofía que maneja al ser soportado por la comunidad y no tener a una gran empresa detrás.
Uno de mis objetivos es poder desarrollar aplicaciones vistosas, complementando el desarrollo LowCode con herramientas más específicas o que provean mejores funcionalidades.
En este caso planeo utilizar la librería de componentes PrimeVue para potenciar mis desarrollos y llevarlos al siguiente nivel, claro está que primero debo empezar por lo básico y que mejor que con el curso Aprende Vue JS desaprendiendo jQuery.
5. Jamstack ¶
Para mí es la nueva forma de hacer webs, claro que se puede conseguir el mismo resultado con HTML-CSS-JS directamente, pero lo que más me atrae es la separación de responsabilidades que propone.
Es otro caso en el que me encontré la tecnología en un punto muy maduro, existe una gran cantidad de herramientas para empezar a desarrollar sitios estáticos de forma moderna.
Mi plan es profundizar en varios como Gatsby o Gridsome y utilizarlos como opción cuando necesite desarrollar un sitio vistoso que no requiera mayor mantenimiento.
Si bien hay temas que no están resueltos al 100% hago mi apuesta de que será el punto de referencia en los próximos años.
¡Felicitaciones si llegaste hasta aquí! Espero que esta sea la primera entrega de una serie de artículos en los que cuente mi avance como developer, los retos que me encuentre y lo que voy descubriendo en el camino.
Si quieres armar tu propia ruta te recomiendo mirar este mapa del tesoro.
Escrito originalmente por: Carlos Encalada
Daniel Primo
12 recursos para developers cada domingo en tu bandeja de entrada
Además de una skill práctica bien explicada, trucos para mejorar tu futuro profesional y una pizquita de humor útil para el resto de la semana. Gratis.