Según The Language List, desde 1991 ha habido 2.500 lenguajes de programación, aunque en la actualidad podríamos reducirlos a 258 según el TIOBE Index (que se actualiza cada mes). Y eso que este ranking no consideran lenguajes de programación a HTML y XML al no ser Turing completo. Con tanta oferta, variedad y cambios de tendencias en el mundo de la programación, hemos querido preguntar a los desarrolladores si tienen miedo de quedarse oxidados y cómo se enfrentan a ello.
Y como en botica, hay de todo: desde el que esta constante evolución en los lenguajes de programación le parece un reto y una motivación más al que decide dar un giro a su carrera profesional y abandonar esta parte más técnica.
Siendo desarrollador, debes ser junior toda la vida
Txema Rodríguez tiene 35 años y 12 años de experiencia como desarrollador. Ahora está en el equipo de Android de Jobandtalent como Team Lead. Para él, es evidente que hay aprender nuevos lenguajes constantemente. “El mundo de la programación se basa en un continuo aprendizaje. Siempre hay que preguntarse si el lenguaje o framework que estás usando a diario es el mejor para resolver el problema”. Además, considera que los frameworks y los lenguajes “siempre caducan, así que hay que adaptarse continuamente”, recomendando el post que escribió hace poco Javier Santana sobre ello. “Teniendo unas buenas base de programación e ingeniería del software siempre podrás evolucionar en tu trabajo de desarrollador. En cambio, si te aferras a un lenguaje estás abocado al fracaso y al destierro laboral”, sentencia.
Rodríguez considera que si en esta carrera profesional como desarrollador “te encuentras con nuevos retos y eres capaz de asumir que cada cierto tiempo te toca trabajar con una nueva tecnología donde eres totalmente junior, crecerás como desarrollador y esa presión no la notarás jamás”. Para él, lo más importantes es saber adquirir conocimientos con facilidad. “No debes limitarte a aprender a picar código, si no a tomar decisiones de programación”.
Java y Kotlin son los principales lenguajes de programación que él domina. “Los años de experiencia se notan por haber recorrido ese camino con anterioridad. Haber cometido errores es bueno cuando se ha aprendido de ellos. Así que mi evolución con lenguajes que domino la mido leyendo código antiguo y analizando cosas que estaban mal. Si no siento cierta vergüenza de algo que hice hace tiempo es que no he evolucionado como programador en ese lenguaje”, reconoce.
Lo que ha cambiado el lenguaje... y lo que queda
Aunque ha crecido profesionalmente con Java y Kotlin, según su visión el tipo de aplicaciones que se hacen ahora han cambiado mucho, sobre todo si echamos la vista atrás unos diez años. “Ahora usamos más microservicios o programación en la nube. También Android ha cambiado mucho desde que empecé en el 2009 con un Android 1.5 casi en pañales a día de hoy. También he ido migrando muchos conceptos aprendidos casi a fuego en la universidad de la programación orientada a objetos a un paradigma más funcional. Y lo que me queda…”.
Pero que los profesionales de este campo se estén renovando y actualizando constantemente es algo, para Txema Rodríguez, bueno y anima a salir de la zona de confort. “Qué mejor forma que hacerlo que con un lenguaje totalmente diferente. Siendo un poco inquieto y acudiendo a eventos como, por ejemplo, el reciente T3chfest, descubres nuevas herramientas y puedes aprender de otros programadores que participan en las charlas”, explica.
En su caso, reconoce que le llaman mucho la atención explorar lenguajes funcionales, como Kotlin en su vertiente funcional (“Scala siempre me ha parecido que tiene una curva de aprendizaje mucho más áspera”, señala) aunque últimamente en su trabajo en Jobandtalent está utilizando más Elixir como principal lenguaje en el backend de las apps móviles (“hemos creado un bootcamp interno para aprender todos, tanto programadores mobile y backend”, nos cuenta).
Otro lenguaje que reconoce que le gustaría dominar más es Python. “No es extraño que se esté escalando puestos entre los lenguaje más populares, casi todas las librerías para hacer cosas de aprendizaje automático o Deep Learning están escritas en Python”, sentencia.
El ingeniero de telecomunicaciones que se convirtió en comercial
Pero no todos quieren seguir desarrollando y profundizando en cuestiones técnicas. Chema Ballarín es ingeniero de telecomunicaciones. Ha trabajado para empresas como Cisco o Dropbox desempeñando diversos puestos. Su experiencia con el código se remonta, sobre todo, a sus primeros años de vida laboral. Tenía que trabajar con los lenguajes que estaban en routers, switches o servidores para configurarlos y programarlos para determinadas tareas, o en páginas web. No tocaba el código fuente, pero sí desarrollaba instrucciones del sistema operativo y otros componentes. Internet OS, HTML, C++ o Python son aquellos con los que más ha trabajado. “Más que configurarlos, he tenido que entenderlos para poder posicionar soluciones”, explica.
Asegura que sus estudios de ingeniería le permiten tener las bases para entender un lenguaje de programación. “En programación hay cosas que son muy comunes: las variables, los procesos, los loops… hay estructuras que las tienes que entender. Cómo se estructuran luego en cada lenguaje (HTML, Python, C+++) es diferente, pero con esa base es más fácil entenderlo y no te lleva tanto tiempo aprender nuevos entornos”.
Pero ahora es director comercial de Eventbrite para España y Portugal por lo que ha dejado a un lado toda la parte más técnica. Una decisión consciente “porque no quería llegar a los 50 años con un trabajo puramente técnico. Es algo que me daba (y me sigue dando) miedo, porque con los años se pierde agilidad, capacidad de absorción de información. Estar al día de todo lo que sale es muy difícil. Me daba un cierto miedo quedarme desfasado”.
No solo eso, sino que descarta la posibilidad de aceptar un puesto de trabajo si tuviera una parte importante que fuera hacer código. “Les agradecería la oportunidad pero sé que me costaría tiempo y que no soy tan bueno en este terreno”. Aunque su formación y experiencia no le impedirían volver al mundo de la programación, después de varios años en los que trabajar con código no ha sido su actividad principal, considera que le costaría “el doble, triple o cuatro veces más” que alguien que está acostumbrado a codificar y desarrollar, y más aún con lenguajes más actuales. “Estudié Pascal, que es muy muy antiguo. Alguien que llega ahora de usar nuevas tecnologías y Python va a tener mucha más agilidad que yo”, reconoce.
No lo dicen, pero me miran mal
Aunque se inició como ingeniero de proyectos y preventa, el contacto con el cliente final acabó enganchando a Chema Ballarín, pasando desde los departamentos técnicos empresariales al contacto con el usuario final. “Cada vez me gustaba más esa parte de hablar con el cliente, ver qué necesidades tenían y qué les llevaba a tomar determinadas decisiones”. En este punto reconoce que no todo el mundo entiende que un ingeniero en telecomunicaciones como él acabe en un puesto de director de ventas. “Me miran raro por ser director comercial siendo ingeniero, sobre todo mis amigos de la universidad o antiguos compañeros de trabajo”, quienes al principio no entendían su decisión.
Ballarín cree que, en parte, esta incomprensión se debe a la imagen que se tiene de los comerciales. “Parece que el que te intenta vender algo te intenta engañar o que compres algo que no necesitas”, pero asegura que “quienes trabajamos en venta somos profesionales como cualquier otro responsable que hay en el mercado. Nos preocupamos por entender qué es lo que quiere el cliente y buscar la mejor solución”.
Además, se lamenta de que, sobre todo en España, se sigue contratando mucho por experiencia más que por capacidades. “He tenido la suerte de que la gente ha confiado en mis capacidades para ir de un mercado a otro”, reconoce, añadiendo que, en su opinión, “las innovaciones y los resultados más disruptivos y cambiantes viene de gente que no ha hecho lo mismo durante 15 años, que tiene competencias transversales”.
Teniendo en cuenta que descarta volver a la parte más técnica y que quiere desarrollar su carrera en ventas, ¿volvería a estudiar lo mismo? “Sí, porque me gusta la tecnología y la capacidad que me dio la carrera de trabajar y desarrollar habilidades de soluciones de problemas”.
Además, asegura que intenta estar al día de las nuevas tendencias (más que de la tecnología y “sus detalles”) y que, al ser padre de dos niñas, también está intentando que tengan interés por la programación y robótica. “Si tengo que estudiar el sistema operativo para ayudarlas, lo voy a hacer y podré acompañarlas mejor”, explica.
Ya no desarrollo, pero me paso la vida entre lenguajes
A medio camino entre estos dos profesionales se encuentra Javier Santana, socio en tinybird.co, una consultoría estratégica de datos. “Creo que ahora ya no domino ningún lenguaje”, confiesa sin reparos. “Me limito a usar las partes más básicas de cada lenguaje que me ayudan a resolver el problema”. Sin embargo, Javier Santana reconoce también que a diario sigue utilizando Python y Javascript.
En su opinión, “los lenguajes en realidad no han evolucionado tanto” aunque lo que sí ha cambiado radicalmente para él son los recursos y herramientas: los entornos de desarrollo, la gestión de dependencias, documentación, tutoriales, charlas, stackoverflow… “Mis conocimientos han ido hacia atrás”, asegura. “He ido olvidando las cosas que son poco usadas para reforzar las que sí uso. Para el resto, stackoverflow y la documentación”.
Sin embargo, reconoce que el desarrollador siente que “nunca es suficiente y siempre quieres aprender cosas nuevas”. Pero esa actualización de conocimientos es algo más que viene por voluntad propia que algo impuesto por la llegada de generaciones más jóvenes ni por otros aspectos en el mundo laboral, como una exigencia por estar a la última de todo. Desde este punto de vista, asegura que “si necesitas aprender algún lenguaje, lo aprendes sobre el terreno”.
En su opinión, como desarrollador “debes aprender a resolver problemas, sea cual sea el lenguaje o la herramienta”. “Los lenguajes van y vienen, los problemas vienen siempre vestidos siempre con el mismo traje”, asegura. Además, y preguntado por si considera que el desarrollador debe estar siempre a la última de todo, su respuesta es clara: no. ¿Su razonamiento para ello? “Básicamente porque la mayoría de cosas nuevas son ruido, repetición de lo que ya se hizo hace años o marketing. Las cosas que realmente perduran algunos años son las interesantes, las que hay que aprender”, señala.
Eso sí, reconoce que le gustaría aprender R porque le parece un lenguaje “muy para un nicho (la estadística) muy interesante”.
El techo como desarrollador
Estos tres profesionales con los que hemos hablado no son unos recién llegados al mercado. Y, salvo Txema Rodríguez, los otros dos reconocen que su día a día no está en la programación más dura. ¿Tienen los desarrolladores un techo (de cristal o no) en sus carreras profesionales?
“En España se puede vivir de la programación, pero la promoción está limitada”, defiende Ballarín, para quien sí hay un techo como desarrollador de código. “Salvo que estés en una startup, donde sí hay esa carrera a puestos de más responsabilidad, es difícil hacer carrera como desarrollador en la empresa tecnológica de primer nivel en España”.
Algo parecido, aunque con matices importantes, cree Rodríguez, para quien el panorama de startup que hay en España está “a un nivel técnico altísimo”. Por eso, no cree que sea imprescindible irse a otro país como EE.UU. para evolucionar. “Es cierto que allí están las sedes centrales de muchas compañías importantes. Pero cada vez hay más empresas extranjeras que están desembarcando aquí como Amazon para formar equipo”. Además, defiende que en estos años “hemos aprendido mucho en las startups tech, mucho talento que se fue hace unos años está volviendo y viendo cómo han cambiado la forma de trabajar. Yo apostaría por muchas de estas empresas nuevas que están formando equipos técnicos potentes como Cabify, Spotahome, Ontruck, Lingokids, TypeForm, Eventbrite, idealista, Carto y, por supuesto, Jobandtalent”.
Txema Rodríguez reconoce que, al final los programadores senior con los años “acabamos haciendo más tareas de manager”, pero que que depende del tipo de empresa y el entorno. Y expresa un deseo personal, “A mi siempre me gustaría seguir programando, aunque cada vez tenga más responsabilidades de gestión de personas y tomar decisiones sobre proyectos. Creo que siempre intentaré sacar un hueco para programar, aunque sea difícil. Además es la mejor forma de dar buenos consejos a los junior del equipo, si te sigues manteniendo fresco en la tecnología más que detrás de un tablón de Jira, simplemente”.
De hecho, Rodríguez asegura que buena parte de lo que aplico a día de hoy “lo he aprendido en mi horario laboral, en entornos donde puedes trabajar con gente muy senior y, también de toda la gente nueva que entra a trabajar con nuevas ideas. De todos ellos aprendes cosas nuevas”.
Por su parte, Javier Santana, que hace más de 5 años que no se considera desarrollador, cree que es “absurdo” pensar que teniendo un cargo mayor debes dejar de desarrollar. “Desarrollar es un conocimiento básico y horizontal, igual que saber escribir o usar el correo electrónico y cualquiera en una empresa que pretenda sobrevivir las próximas décadas tendrá que pasar por el aro. Por algo los corporates invierten millones en transformación digital”.
Y tampoco cree que se tenga que residir en determinados países para poder hacer carrera en el mundo de la programación. “Salvatore Sanfilippo vive en el sur de Italia y hace software usado por todo el mundo (redis). Lo mismo puedo decir de muchos otros desarrolladores. El problema es que la gente de Estados Unidos vende mucho mejor lo que hace (en parte por el idioma) y creemos que el mejor software se hace allí. Si por "carrera" queremos decir salarios, hay empresas en España que paga muchísimo mejor que empresas estadounidenses en relación al nivel de vida. Está bien salir, pero para ser mejor persona (que te hará mejor desarrollador, claro)”.
Ver 90 comentarios