
Por lo general, lo que escuchamos cuándo empezamos en IT, visto desde fuera, es que hay un continuo avance apasionante, tecnologías que hacen de todo, que «hay mucho mercado», que en seguida buscan nuevas incorporaciones en empresas cómo Google o Microsoft, pero…¿Cuál es la realidad, para una persona que acaba de empezar su carrera profesional, o está buscando desarrollarse en la industria durante sus primeros años en el sector?.
Partiendo de mi caso personal, me gradué a finales de 2020, cuando aún nos adentrábamos en las aguas de las cryptomonedas virales. Por lo que respecta a tecnologías punteras, aún no existía Chatgpt, pero se oían tecnologías que utilizaban machine learning e inteligencia artificial, ejemplo de esto era (y es) Tensorflow. Por otra parte, ¡La tecnología 5G comenzaba a popularizarse para el público general!. 1 2
En lo que refiere a tecnologías punteras del mundo del desarrollo, frameworks de JS como React veían un gran auge entre profesionales ya asentados y nuevos developers en el sector. También, por los diferentes artículos escritos en aquél año, Motion UI estaba en boca de todos. 3 4
Vale, todo eso es muy bonito, ¿Pero que implica para las personas que, en aquel momento, y también a día de hoy, nos zambullimos sobre la inmensidad del sector?.
Lo más importante, una vez escogida la colección de tecnologías a las que nos enfocaremos de ahora en adelante (por poner un ejemplo, React si hablamos de webdev, Ansible si hablamos de Devops, entre otros), es que no perdamos los nervios.
Ahora bien, ¿Has probado a reiniciarlos?
Las posiciones Junior no requieren (o no deberían requerir) un conocimiento de muy bajo nivel y alta capacidad de comprensión sobre scripts de miles de lineas, o esa herramienta hecha en Java que lleva 20 años en desarrollo, lo que importa es tener ganas de aprender y tener ganas por aportar ideas nuevas (así como una cierta base de conocimientos, adquirida durante la etapa de formación).
En este momento no indagaré sobre «cuanto conocimiento o tiempo invertido comprende ser Junior», es un punto que difiere de persona a persona, pero si me gustaría poner un ejemplo práctico, para que cada cuál saque sus propias conclusiones.
Manos a la obra
Pongamos el caso de Ansible, partimos de un punto 0, ¿Qué necesitamos para convertirnos en «Junior» de esta tecnología? Bien, vayámos más allá y situémonos en un contexto de una pequeña empresa, con algunos servidores on-premise y quizás una máquina o dos en algún cloud provider, para su página web.
Una vez asegurado que Ansible es capaz de mandar instrucciones a todos los nodos necesarios, es el momento de hacer una pequeña investigación, ¡Resulta que todos los servidores on-premise están desplegados en Debian 11!, vamos a ver cómo asegurarnos de que se mantendrán actualizados. 5
- name: Update all packages to their latest version
ansible.builtin.apt:
name: "*"
state: latest
Lenguaje del código: CSS (css)
Por otro lado, debido a necesidades del negocio, necesitamos copiar los archivos de un aplicativo en el entorno de «production-test» a su carpeta de backup designada, antes de que se clonen los repositorios y la versión actual quede reemplazada, ¿Podemos hacer eso? ¡Por supuesto!
Pero, curiosamente, los módulos por defecto de Ansible centran su comando copy a mover ficheros de la máquina local (master) al servidor remoto que estemos tratando en ese momento, ¿Cómo lo podemos solucionar?.Bien, por suerte, podemos ejecutar instrucciones nativas del sistema operativo desde Ansible, lo que resultaría en un código similar a este. 6
- name: Copy current production-test code to /app/backup/
ansible.builtin.command: cp -r /apache/app/content/ /app/backup/
args:
creates: /app/backup/content/ # Checks if the destination already exists
Lenguaje del código: PHP (php)
Estas pequeñas acciones no reflejan la realidad de lo que un perfil junior de Automation Engineer, Devops o SRE pueda hacer, son realmente fruto de una investigación rápida. Pero el mero hecho de testear, publicar lo aprendido,e indagar en cómo funciona una herramienta o lenguaje, nos permite fundamentar una nueva tecnología, que, en este caso, da la capacidad de configurar y operar sobre equipos remotos de una manera mucho más ligera, sin necesidad de manualmente conectarnos o tener una cuadrícula abierta en el terminal con algún multiplexer 7.
El aprendizaje lleva tiempo, estamos en un contexto en el que acabamos de terminar de salir del mundo estudiantil, o igual estamos en nuestro primer trabajo. Puede parecer que no es de utilidad de forma inmediata, pero ese pequeño homelab que existe en tu Raspberry Pi 3B, o aquél proyecto escrito en Rust que se comunicaba con un sistema operativo desplegado en un Cloud provider cualquiera, pueden ser puntos de partida, pequeños ladrillos que ponen las bases de una seniority a futuro, y nos ayudan a distinguirnos.
Linkedin no es lo mismo que el día a día
La realidad del mercado es, que por mucho que nuevas tecnologías invadan los titulares, algunas empresas prefieren trabajar con Java 8, otras tantas tienen varios servidores instalados en 2015 sin actualizar ese parche de Windows 8.1 y quieren que instales Kubernetes en él.
Cada caso requiere de poner las innovaciones en contexto, y visualizar un camino que permita evolucionar los desarrollos, así como la infraestructura, y siempre, siempre, estar dispuestes a ofrecer nuevas ideas.
Los equipos de desarrollo y sistemas pueden intimidar al principio, ya que, en su mayoría, los conforman personas que llevan años trabajando en esas herramientas o infraestructuras. Pero precisamente, al llevar años viendo el mismo paisaje, poco a poco han podido perder de vista el camino que llevan detrás. Involucrarse en los diferentes equipos a nuestro alcance nos puede aportar una visión mucho más amplia de sus responsabilidades, lenguajes y metas, así como, en última instancia, darnos la oportunidad de aportar ideas más conectadas a las necesidades de la empresa y su misión.
También es importante ver que hay más allá de lo que tenemos delante, ¿Alguna amistad cercana ha empezado a estudiar desarrollo?¿Has atendido a una charla de Codemotion con Networking y bocadillo después? Conocer las inquietudes y conocimientos de otras personas es también parte del aprendizaje que nos lleva a alcanzar nuestras metas y adquirir mayor amplitud de miras.
Las tendencias cambian, los grandes tópicos van y vienen, la tecnología que hoy es trending, la semana que viene será fruto de drama por una backdoor encontrada para usos específicos. Es de real importancia que, al final del día, escuchemos a nuestro alrededor, tanto fuera como dentro de nuestro contexto más inmediato, atender a lo que la experiencia nos va otorgando, y siempre, siempre, seguir siendo personas curiosas y con ganas de aprender.
Encontrar nuestro sitio dentro del sector llevará giros y vueltas, pero, sea para un nuevo proyecto, o para automatizar las persianas del salón, darnos tiempo para asentar conocimientos, adquirir una red de contactos que nos permita crecer y disfrutar del camino no solo es divertido, también nos ayudará a dar un extra en nuestro día a día como profesionales.