El mundo de la programación se basa en un continuo aprendizaje. Dedicarse al desarrollo de software requiere estar siempre pendiente de lo nuevo, de lo que está por venir. El conformismo y el dejar de aprender cada día aboca a los programadores al destierro laboral. Tarde o temprano llega. Cualquier recién llegado al mundo de la programación debe ser consciente de ello.
Dicho lo cual, todos nos hemos preguntado, en menor o mayor medida, si debemos reciclarnos como programadores. O de forma más drástica, si debemos salir de nuestra aparente zona de confort, es decir, aprender algo radicalmente nuevo o incluso intentar otra salida laboral.
Ten siempre presente la pregunta ¿Es hora de reciclarse?
Quizás hace unos años podías trabajar varios años con la misma tecnología sin problemas, ahora eso es complicado.
Plantearse esta pregunta cada cierto tiempo es fundamental. A veces no nos damos cuenta que la excesiva carga de trabajo nos impide valorar la calidad o el tipo de trabajo que realizamos. No vemos como han ido surgiendo otras tecnologías o paradigmas de trabajo. A pesar de que nuestra categoría profesional diga que somos Senior no hemos evolucionado como tal.
Programar es una tarea compleja. Debemos saber especializarnos en cierto ámbitos. Saber de todo es imposible (sólo apto para unicornios o autenticos full stack). Los años de experiencia son muy diferentes a cada programador. Puedes haber ido superando metas y evolucionando profesionalmente o, en su versión más triste, haber repetido constantemente lo mismo año tras año en un bucle de no-aprendizaje.
¿El lenguaje que estoy usando es adecuado para la complejidad de los nuevos problemas? ¿La plataforma en la que programo sigue teniendo futuro (o incluso presente)? ¿Debería utilizar otras herramientas en mi día a día? ¿Voy a las suficientes conferencias o meetup de desarrolladores? ¿Estoy en la onda de la programación?
El anterior párrafo es sólo un ejemplo del aturullado pensamiento de cualquier programador que empieza a darse cuenta que quizás deba reciclarse. Quizás hace unos años podías trabajar varios años con la misma tecnología sin problemas, ahora eso es complicado.
Salir de tu zona de confort
Los programadores sufrimos, en cierta medida, una aparente zona de confort provocada por estar trabajando durante muchos años en un mismo lugar, incluso sin evolucionar de puesto. Siempre tratando con las mismas tecnologías, las mismas personas, los mismos procesos, etc.. Seguimos aplicando en un bucle lo mismo sin aprender cosas nuevas.
Aunque es duro tomar la decisión, a veces el remedio para superar esa fase de duda es abandonar esa pequeña zona de confort lanzándose a afrontar nuevos retos profesionales en otra empresa. O incluso lanzarse a crear su propia startup. No es extraño encontrarse en el mercado laboral desarrolladores cambiando cada cierto tiempo de trabajo para no quedarse estancados.
Empatía tecnológica: conocer cómo trabajan los demás
Practicar el desk surfing es una oportunidad de integrarnos temporalmente en otro equipo viendo cómo trabajan
Obcecarse con algo en concreto no es bueno. En el cambiante mundo del desarrollo software es recomendable fomentar la empatía tecnológica. No sólo entre programadores sino entre otros perfiles implicados en la construcción de productos digitales. Llevar ciertos años programando no implica que no debas interesarte por otros temas. Por eso, es muy beneficioso intentar comprender fuera de tu ámbito como trabajan(según tu caso particular) los diseñadores, la gente de backend, frontend, de las aplicaciones móviles, de la base de datos, de sistemas, etc..
Una buena forma de ampliar conocimientos y tomar mejores decisiones siendo programador es ver cómo trabajan otras personas. Practicar el desk surfing es una oportunidad de integrarnos temporalmente en otro equipo viendo cómo trabajan y, al mismo tiempo, intercambiar conocimientos.
El autoaprendizaje el inseparable amigo del programador
Ya no es necesario ir hasta la biblioteca de la universidad para coger prestado un vetusto libro de programación. Ni tan siquiera buscar en librerías técnicas el último libro de cierta tecnología. Amazon está dispuesta a enviarte el libro que quiera desde el lugar más recóndito. Pero no sólo eso, el conocimiento con internet se ha extendido y democratizado. Podemos consultar de forma gratuita una gran cantidad de documentación técnica, tutoriales, artículos, posts y libros online. Aprender a programar de cero es relativamente fácil a día de hoy.
Las plataformas online de formación
El autoaprendizaje requiere disciplina y saber extraer información relevante de distintas fuentes y organizarlas. Lo que podría representar un reto a veces insalvable es algo mucho más sencillo a través de la decena de plataformas online de aprendizaje.
Ya no es nada dificil obtener un título a través de stanford sobre cualquier lenguaje de programación o clase magistrales sobre desarrollo de aplicaciones móviles.
Por ejemplo, en Coursera podemos participar en cursos preparados por profesores universitarios y seguir un decente trimestre de un curso, con deberes incluidos. Incluso obtener un título acreditado si pagamos la certificación.
También existen otras alternativas como Udacity y sus nanodegree en los que nos podemos convertir en unos expertos en Machine Learning, Front-end, Android, etc… Apoyado por empresas importantes como Google que pone al servicio de los alumnos a sus ingenieros.
También podemos optar por otras plataformas como Codeschool más orientadas al aprendizaje desde cero de algunos lenguajes como Ruby o Javascript. Y hacer sus code path formativos para seguir un camino profesional.
Devorar libros de programación
Es necesario afianzar la base de conocimiento leyendo a los “clásicos”: Martin Fowler, Kent Beck, Uncle Bob
La lectura para un programador no es simplemente entretenimiento. Constantemente toca bucear por la documentación de SDKs, librerías, frameworks, nuevos lenguajes.
No hay que limitar esta lectura a encontrar simplemente la respuesta a una pregunta específica. El afán de búsqueda en plan recetil en stackoverflow no ayuda al crecimiento profesional. Sino que hay que comprender y aplicar lo que leemos.
No sólo limitarse a libros sobre tecnologías concretas, ya que en un par de años quedan obsoletos. Tal versión de la plataforma o tal otra. Es necesario afianzar la base de conocimiento leyendo a los “clásicos”: Martin Fowler, Kent Beck, Uncle Bob, etc… Libros más enfocados en las buenas prácticas y en la arquitectura del software.
Hace un tiempo Carlos Blé publicó en su blog un listado de libros imprescindibles sobre programación. Interesante su consulta.
Mentoring: cuando el auto aprendizaje no es suficiente
"No es suficiente sólo con ser mejor programador. Todo tiene que encajar con un proyecto a largo plazo con sentido". Antonio Leiva (DevExperto)
Cuando el auto aprendizaje es duro o aun no somos lo suficiente maduros (profesionalmente hablando) surge la figura del mentor. Muchas empresas lo incorporan desde el primer día dentro de su proceso de onboarding en la empresa, pero cuando queremos evolucionar por nosotros mismo necesitamos contar con algunos profesionales más expertos.
Existen distintas iniciativas, una de ellas es la llevada a cabo por Antonio Leiva desde Devexperto, una web con contenido enfocados en el crecimiento profesional. Preguntándole sobre el funcionamiento de un programa de mentoring nos comentaba que “Consiste en acompañar a la persona desde el punto actual hasta el lugar donde desee estar como desarrollador, trabajando temas que van desde conocer nuestros verdaderos objetivos en la vida hasta conocimientos de creación de software de calidad, pasando por la planificación, visibilidad o posicionamiento en el sector.”
Los side project: la vía de escape del programador
Llegar a casa y seguir teniendo ganas de programar. Quizás en tu trabajo de oficina de 9 a 7 no tengas la suficiente oportunidad para aplicar tu creatividad. Por eso tener proyecto personales, side project, puede ser una buena forma de tener una vía de escape. Incluso de probar cosas nuevas y aprender.
Enfrentarse por ti mismo a un proyecto en que eres el único responsable y en el que puede poner pasión es una de las formas más aceleradas y divertidas de aprender. Elige una idea que quieras implementar, elige una tecnología que no hayas probado aún, tendrás los ingredientes perfectos para pasar las noches programando y aprendiendo.
Github es una herramienta estupenda. La naturaleza de tu side project puede ser muy diverso. Desde una pequeña aplicación móvil hasta una librería Open Source. Utilizando Github podemos encontrar un catálogo inmenso de código del que aprender. Además de ser el repositorio perfecto de software libre que te ayudará a tu side project o incluso unirte al de otros programadores colaborando en el desarrollo de software libre.
Programa, programa y programa
Como en cualquier disciplina, el entrenamiento nos hace ser mejores. Tanto si llevas años programando como muy poco y quieres empezar a perfeccionar tu técnica: lo mejor es practicar. Según vayas avanzando en aplicaciones más complejas te irás encontrando con problema sobre los que tendrás que aplicar lo aprendido. Esas soluciones que vas evolucionando en tu programación hará que vayas absorbiendo más conocimientos. Así poco a poco alcanzarás la seniority del programador.
En Xataka | Cómo empezar a aprender programación: consejos y recursos para hacerlo de adulto
Ver 103 comentarios