lunes, 22 de junio de 2020

20 años después quiero volver a programar: qué grandes cambios ha habido y por dónde empezar

20 años después quiero volver a programar: qué grandes cambios ha habido y por dónde empezar

Hace 20 años, los informáticos de medio mundo respiraron aliviados tras comprobar que la mayoría de los sistemas no padeció ni sufrió el denominado “efecto 2000”. Nacía la Wikipedia y asistíamos al primer virus masivo: I Love You. En abril Microsoft lanza su sistema operativo móvil Pocket PC y en junio Windows Me. Se lanzó IPv6 y Sun Microsystems decidió liberar el código fuente de su suite ofimática para crear OpenOffice.

Todos estos datos nos dan una idea de cómo ha cambiado el mundo y la industria tecnológica en estas dos décadas. Pero, ¿cómo lo ha hecho el mundo de la programación? Nos hemos preguntado si una persona que codificase en aquellos años y que, por el motivo que sea, lo dejara entonces podría volver a “picar código” y cuáles serían los principales cambios que notaría.

Y, para ello, hemos preguntado a profesionales que programaban hace dos décadas y que, a día de hoy, lo siguen haciendo como una parte fundamental de su trabajo. Ellos son José Alfonso Suárez Moreno, programador full-stack en Kubide Advanced Web Development, que lleva programando 39 años; Jorge Aguilera, Senior Software Engineer en Tymit, y con unos 25 años de experiencia en el sector del desarrollo de software; David Escuer Latorre, ingeniero técnico que programa software de uso hospitalario para un centro de Tarragona (la Xarxa Santa Tecla); y Pablo Almunia, que tiene una experiencia de 30 años y que está al frente de Corus Consulting, compaginando labores de gestión y programación.

¿Ha cambiado el mundo de la programación?

Este último cree que la profesión de programador es apasionante si te gusta aprender. “Continuamente aparecen nuevas tecnologías, nuevas posibilidades, nuevas arquitecturas y lenguajes de programación que suponen un reto para los profesionales”, explica. Para él, el cambio más significativo que se han producido en estos años “y el que más cuesta” es lo que tiene que ver con los paradigmas arquitectónicos. “Desde sistemas basados en terminales, pasando por el modelo cliente-servidor, el cliente más o menos ligero de la web, las aplicaciones móviles, y terminando con los wearables y el IoT, los modelos cambian continuamente”.

Foto Pablo

En cuanto a los lenguajes de programación, cree que lo complejo no es la sintaxis concreta de cada uno de ellos “que en general se aprende con rapidez”. Para este profesional, lo difícil es “adaptarse a los diferentes patrones o paradigmas. No es sencillo pasar de un lenguaje basado en procedimientos o imperativo, a uno meramente declarativo, a otro basado en clases y objetos o a otro completamente funcional. De nuevo se ponen tus esquemas mentales en juego”.

Aunque para José Alfonso Suárez, la esencia de la programación, la base lógica y matemática sigue siendo la misma pese a los años transcurrido, defiende que antes había que “currárserlo todo”. “No había librerías ni frameworks. Si necesitabas algo complejo que no te ofrecía el lenguaje que usabas, tenías que programarlo a bajo nivel, muchas veces a nivel de Ensamblador”. Recuerda que con la llegada del lenguaje C “se hizo más liviano el trabajo de tener que hacer funciones a bajo nivel y sirvió para extender los lenguajes de forma infinita. Hoy, cualquier lenguaje moderno trae dentro accesos a bases de datos, a registros internos del procesador, a la memoria, sin que el programador tenga que saber que hace eso por dentro”.

Cómo pasar de Cobol a Java

Con tantos años de experiencia a sus espaldas, estos profesionales han visto, tocado y programado en varios lenguajes y plataformas. Algunos de ellos empezaron en Cobol o RPG-II y, durante sus años de experiencia profesiaonl, han visto desfilar multitud de lenguajes de programación, frameworks y editores. Java, Ruby on Rails, Rexx, C, C++, Groovy, Basic, xBase, SQL, Smalltalk, Lisp, C, C++, Java, Javascript, Python, dBase III, Clipper, Visual Basic, FiveWin, HTML, PHP, CSS, NodeJs, MongoDB, Firebase…

Si hay pasión e ilusión, cualquier programador puede volver a serlo, aunque hayan pasado 20 años desde la última vez que picó código, según estos expertos

Aunque, como ya hemos visto, algunos de estos profesionales creen que la base de la programación permanece estable, hemos querido saber cómo ha sido este proceso de cambio, si ha habido cosas más complicadas de asimilar y otras que han facilitado la vida de los programadores. Cómo sería para una persona que programara hace dos décadas hacerlo ahora y con qué diferencias se toparía.

Almunia insiste en que “los cambios de paradigma son lo más complicado. Por ejemplo, la computación cuántica cambiará de forma muy significativa todo lo que los programadores actuales dominan. Son estos cambios los que más cuesta asimilar, cuando tus esquemas mentales se rompen, se siente una fuerte sensación de inseguridad y hay que volver a comprender cómo funcionan las cosas”. Mientras, cree que los entornos de desarrollo y las herramientas alrededor del proceso de construcción del software son cada vez “más sencillas, amigables y permiten aumentar tu productividad de forma significativa. En ocasiones dan un poco de pereza aprenderlas, ya que cambian muy rápidamente, pero facilitan mucho la vida”.

Foto David Escuer

Por su experiencia profesional, David Escuer habla de que lo más complicado ha sido siempre “afrontar proyectos con tecnologías desconocidas, ya sean nuevos o heredados. En las empresas en las que he estado, la apuesta por la formación ha sido bastante escasa. O sea que he tenido que auto-formarme, a veces fuera de horas, antes de empezar los proyectos”. Pero para eso también siempre están los compañeros. “Salvo alguna excepción, todos sabemos lo que cuestan las cosas, y que ayudando al compañero también te ayudas a ti mismo”.

Programar ahora vs hace 20 años. ¿Más fácil o difícil?

Pese a esta necesaria adaptación, Suárez Moreno, que lleva 39 años programando, cree que hacerlo ahora con las herramientas actuales “es tremendamente fácil. Lo traen todo hecho. El programador dinosaurio se tenía que hacer todo él solo (en los equipos de trabajo se compartían los algoritmos), hoy es raro que un programador tenga que pelearse con el hardware a nivel de registros”. Y eso es también, precisamente, el gran avance que se ha producido en programación: “disponer de herramientas que hacen nuestro trabajo más cómodo y productivo”.

Las herramientas actuales simplifican el trabajo, pero el ecosistema ha crecido tanto que es inabarcable

Algo parecido opina Escuer, quien cree que ahora es más fácil programar “en el sentido que hay una gran cantidad de información pública que puedes consultar en segundos”. Pero, al mismo tiempo, cree que es más difícil “porque el ecosistema de lenguajes, entornos y librerías es inabarcable”. Y pone un ejemplo personal. “Tengo pendiente, como proyecto personal, hace algún juego en lenguaje ensamblador de MSX. He leído varios manuales, he practicado algo, y me veo capaz de dominarlo al 90%. Al mismo tiempo, me veo incapaz de dominar el 5% del ecosistema de librerías Javascript que hay actualmente. Y en el momento que dominara ese 5%, ya me habría quedado obsoleto por la aparición de nuevas versiones y tecnologías”.

Pablo Almunia coincide en que es ahora cuando es más difícil programar. “En general es más complejo, los desarrollos requieren de un modelo arquitectónico más robusto o terminan siendo algo inmanejable, que no puede escalar, con graves problemas de seguridad. Los requisitos, tanto de sencillez de uso, como de complejidad funcional, son cada día más exigentes”.

Foto Jose Alfonso

Además, defiende que en los lenguajes de programación no ha habido tantos cambios como pueda parecer. “Cuando yo empezaba ya existían lenguajes de programación orientada a objetos, funcionales, imperativos, etc.”, rememora. “Lo que ha cambiado mucho es el contexto donde los programas se ejecutan, con qué sistemas tienen que interactuar, cómo se organizan las funcionalidades en diferentes componentes y microservicios. Programar ahora es más complicado, aunque los lenguajes sean muy parecidos”.

Jorge Aguilera asegura que se dio cuenta de lo “realmente difícil que es hoy en día programar” cuando decidió sacarse la ingeniería. “Tal vez la industria está madurando y especializándose pero también se está diversificando de una manera increíble y alguien que termina la carrera no es realmente consciente de la cantidad de herramientas, técnicas y procedimientos que tiene que emplear en el día a día”, reflexiona.

Aquellos maravillosos años…

Pero, ¿hay algo que se eche de menos de los inicios? Jorge Aguilera añora “la emoción de estar haciendo algo por donde "nadie había pasado". Sin Internet, casi todo te parecía que lo tenías que hacer o inventar tú (luego descubres que alguien lo había hecho y mejor). Hoy por el contrario parece como que todo está inventando, pero por suerte siempre descubres algo nuevo que te vuelve a traer esa emoción”.

David Escuer ironiza con lo que se pierde con los años: la salud. “Hay que tener cuidado con la postura, para no sufrir de espalda y cuello. Y la pérdida de visión creo que es inevitable, por la edad y por las horas de pantalla”. Pero, al mismo tiempo, defiende que con los años se gana capacidad analítica, y se mejora mucho en la forma de afrontar problemas. “También es más fácil aprender o adaptarse a nuevos entornos, porqué todo más o menos te suena de algo (se parece a algo que ya has hecho o visto)”.

Foto Jorge

Una visión parecida a la que sostiene Pablo Almunia, quien personalmente asegura tener “muchísimos más recursos para aplicar patrones de diseño adecuados a cada problema. Los años de trabajo dan una gran experiencia y si mantienes tu mente abierta, progresas muy rápidamente ante cada nuevo reto”.

Y, al mismo tiempo, asegura que otra cosa que se aprende con los años es que no puedes saberlo todo. “Cuando eres joven hay una cierta tentación de intentar abarcar absolutamente todo, y como consecuencia corres el riesgo de dispersarte mucho. Es importante hacer una prospección en anchura para comprender lo que hay a tu alrededor, pero es imprescindible profundizar en la tecnología que utilizas en cada momento para dominarla y sacarla el máximo partido”, señala.

Para Juan Alfonso Suárez es también evidente que el paso de los años hace que se mejore la destreza para resolver problemas del día a día. “Si eres buen programador (no un escritor de código, un programador que dispone de base lógica y matemática para resolver cosas) aprender nuevos lenguajes se te hace fácil”. Pero la edad también mata, en su opinión, “la curiosidad de saber como funcionan las cosas cuando el lenguaje te lo da todo hecho”.

Si quieres volver a programar, ponle pasión

Así pues, la pregunta es: ¿puede alguien que ha dejado de programar hace 20 años volver a meterse en el mundillo? “El programador de verdad, al que le pica el gusanillo de escribir código, va a ser programador toda la vida y no tendrá problemas para adaptarse cuando quiera volver, por mucho que haya cambiado el paradigma”, asegura Suárez.

La clave está en si de verdad se quiere volver a programar o no. Si se siente pasión por hacerlo. Si la respuesta es afirmativa, este profesional recomienda no perder el tiempo “y empezar a actualizarse, si de verdad le gusta esto y lo lleva dentro”.

Algo parecido a lo que señala Pablo Almunia. “A mí me entusiasma programar, probablemente es lo que más satisfacción me produce. Si es así, no hay ningún problema para volver después de algún tiempo sin programar”, subraya, recomendando, sobre todo, tener ilusión. “Si te divierte lo que haces, si te apasiona realmente, la programación es una profesión muy atractiva. Si no te gusta, puede ser muy desagradecida. La tecnología cambia deprisa y te quedas desfasado muy rápidamente”.

Adult Apple Device Business Code 340152

Jorge Aguilera defiende que pese a todas las herramientas y lenguajes que hay, “lo que se siguen necesitando son muchas manos (y alguna cabeza). Cualquiera que se haya dedicado a esta profesión puede actualizarse sin problema si acude con una mentalidad abierta. Tiene que entender que las cosas han evolucionado, que no todo es como se hacía antes, probablemente por esa especialización, pero que en el fondo el asunto sigue siendo el mismo: resolver una necesidad de la forma más adecuada en el momento”. Eso sí, siendo consciente de que “tiene que estar dispuesto a aceptar el cambio constante que le caracteriza a esta profesión”.

Para Escuer, no habrá problemas en que se vuelva a programar después de tantos años si se había adquirido experiencia suficiente. "Si ha trabajado durante bastantes años, ya sabe cómo es el trabajo y si puede manejarlo bien o no. Se tendrá que reciclar un poco, pero reciclarse y formarse en nuevas tecnologías lo tendría que hacer igualmente si estuviese en activo”. Y alude, de nuevo, a la pasión que se debe tener por la profesión de programador. “Si le producía mucho stress y ha encontrado otra cosa en la que es más feliz, que no vuelva. Este puede ser un trabajo muy estresante, y si no sabes o puedes manejarlo bien, puede repercutir en tu calidad de vida”, asegura. “Si simplemente ha tenido una mala experiencia y se ha tomado un descanso, que busque un sitio que le motive y vuelva”.

Vale pero, ¿por dónde empiezo?

¿Qué le dirían todos estos profesionales a una persona que lleve sin tocar código desde hace dos décadas pero quiera recuperar esta labor?

Jorque Aguilera está convencido de que, seguramente, una persona en esta situación probablemente piense que este mercado ha crecido mucho y que probablemente sea difícil de abarcar. Sin embargo, Aguilera cree que “ya no tenemos que estar en todas las partes como pasaba antes. Ahora hay más especialización, incluso los mal llamados full-stack no llegan a cubrir todas las áreas. No sólo es cuestión de backend vs frontent. Existen los QA que también tienen que programar test, los Business Analytics que tienen que programar cargas de datos y consultas, etc.”.

Dicho esto, considera que hay ciertas herramientas o lenguajes que se deben aprender “cuanto antes aunque sea a un nivel básico”. Por ejemplo, Git. “Hace 20 años con suerte el control de versiones era una carpeta compartida. Hoy en día Git y todo el ecosistema que se ha generado alrededor lo ha cambiado todo. Es la manera de trabajar con tus compañeros y de no pisarles el trabajo, así que los conceptos básicos y cierta soltura es imprescindible”.

Conocer Python, Git y entornos web son los primeros pasos que habría que dar para volver a programar 20 años después

Python es otro de los lenguajes que considera básico conocer (aunque subraya que es un lenguaje que él mismo no domina) porque “no envejece y se está reinventando muy bien. A día de hoy se está aplicando en muchas áreas diferentes y podrás encontrar una que te guste. Administración de sistemas, despliegues en la nube, análisis matemático...”. Si se opta por la parte visual, aconseja no quedarse en cómo eran HTML y Javascript. “La explosión que ha tenido de frameworks, herramientas y áreas es enorme. Te abrumará la cantidad de cosas que hay que aprender así que lo mejor será acotarlas. Busca un framework pequeño y céntrate en él. Hay suficiente demanda como para que encuentres tu hueco. Yo por ejemplo no te recomendaría que empezaras con Angular pues es un monstruo y te puede sobrepasar. Comienza con VueJS por ejemplo, mucho más asequible y con mucho tirón”, añade.

Unas recomendaciones que coinciden en parte con las que enumera David Escuer, que las resume en tres cosas: ponerse al día con el control de versiones, “por ejemplo con Git, para poder trabajar en equipo”; abordar “lenguajes dinámicos interpretados, como R, Python o Ruby, rara poder enfocarse a desarrollo web o Big Data”; y actualizarse en los protocolos web (comunicación cliente-servidor, intercambio de datos en Json), que en el 2000 “empezaban a hacerse populares pero que han cambiado bastante en estos 20 años”.

José Alfonso Suárez, mientras, cree que después de 20 años, se debería empezar por aprender programación orientada a objetos (POO) y “meterse de cabeza en el mundo actual: HTML5, CSS3, CSAS, Javascript, Typescript, Angular, NodeJs, bases de datos no relacionales como MongoDB, Firebase, sin dejar de mano Java, C++, MySQL, MS SQL Server, PostgreSQL, Oracle, PHP y si le gusta (a mi no) aprender también .NET”. Y coincide con otros mensajes lanzados anteriormente: “tratar de dominar todo es casi imposible”, por lo que es conveniente centrarse en algo.

Por último, Pablo Almunia nos confiesa que hace precisamente unas semanas un buen amigo que lleva más de 20 años sin programar ha vuelto a esta actividad. “Mi recomendación ha sido clara: Primero, recuerda lo que ya sabías, no tanto las cosas concretas, si no los conceptos y claves fundamentales de la programación, que no han cambiado. La programación orientada a objetos, la programación funcional ya existían y seguramente se tiene experiencia con ellas. Segundo, abre tu mente a las nuevas herramientas y lenguajes. Aprender a programar ahora es mucho más fácil que antes, hay muchísima documentación, cursos, vídeos. Sólo hay que dejarse llevar y en poco tiempo se están consiguiendo resultados muy interesantes”.

Por cierto, que también nos cuenta que, tras unas pocas semanas, su amigo ya ha publicado su primera aplicación para Android. “Tiene algos fallos, pero funciona bastante bien y se nota que se puede retomar la programación tras bastante tiempo y no se han olvidado las lecciones aprendidas”.

-
La noticia 20 años después quiero volver a programar: qué grandes cambios ha habido y por dónde empezar fue publicada originalmente en Xataka por Arantxa Herranz .



via Xataka https://ift.tt/318Xtuz

No hay comentarios:

Publicar un comentario