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
103 comentarios
frg92552
Pues le diría... que no se dedique a eso. Y si se dedica, que tenga claro que la satisfacción que va a encontrar será puramente vocacional porque se trata de una actividad ruinosa. Me refiero a la rentabilidad en dinero que se saca a todo el tiempo invertido en aprender y, más aún, en mantenerse actualizado.
Al final terminará trabajando en una "cárnica" por un sueldo de mierda, mientras un amigo suyo que se haya dedicado al márketing, por ejemplo, estará ganando el triple de dinero y habiendo invertido un 30% de tiempo y esfuerzo en prepararse.
Otra cosa es que se te encienda la bombilla y seas capaz de desarrollar alguna app con la que pegues el pelotazo.
joanpuig
Les diría que la única manera que no sean explotados en España es que sean programadores mediocres. De lo contrario, si son buenos programadores o programadores excelentes nunca estarán bien pagados en este país.
frobs
Yo le daría varios consejos:
1- Vas a tener que ir a conferencias y formarte muchísimo mas que otras profesiones, si no te gusta este mundo acabaras quemado.
2- Hay mucha gente frustrada que solo suelta pestes hacia fuera, ni caso, vive tus propias experiencias no a través de las de los demás.
3- Si aceptas un sueldo de mierda en una empresa de mierda y haces horas gratis es tu culpa, no lo es ni del sector, ni de la profesión, ni de las empresas.
No seas un hipócrita de los que se conforman con un trabajo de mierda y luego va de víctima por el mundo, si te vendes barato luego no llores.
Como dice la canción "si quieres culpar a alguien cúlpate a ti mismo".
4- Las entrevistas son iguales para todos, si tienes la carrera y 20 diplomas y contratan a alguien que no tiene ni el graduado, no es que haya intrusismo, es que eres un paquete y la empresa quiere alguien que sepa hacer su trabajo, no te van a contratar por los papelitos de colores que puedas presentar sino por lo que vales como profesional.
Un saludo.
pastoreo
Especializarse, ese consejo es para toda profesión.
lolo_aguirre
Es decir, a ver si me aclaro. Querido programador, trabajas en uno de los sectores donde menos se te valora y más horas se echan, donde el cliente y tu jefe consideran que estás disponible a cualquier día y hora porque cualquier problema o bug debe estar arreglado inmediatamente por absurdo que sea, donde aparte de las horas que le dedicas a tu trabajo tienes que dedicar un montón más a leer libros, y el consejo que te da un compañero es que cuando llegues a casa te metas en Github y busques un proyecto en el que participar de forma altruista para sentirte realizado y poder pasarte las noches programando. De dormir o tener una vida aparte de los ordenadores o tu trabajo mejor no hablamos, ¿no? Si los mismos trabajadores tienen esa mentalidad cuando un jefe se plantee si putearte obligándote a quedarte no va a tener ninguna duda. Total, para irte a tu casa a programar gratis te quedas en la oficina haciendo lo mismo, así te quitas marrones para el día siguiente.
crisct
Da muchos dolores de cabeza programar para terceros. Demasiados para lo que se cobra. En serio, estuve cinco años con esto, luego me pase a administrador de sistemas y vivo más tranquilo. Bueno, tranquilo tampoco, pero al menos no tengo la cabeza tan machacada.
regys
Le diría que debe estar muy seguro de que lo que quiere hacer es programar ya que absolutamente todo el entorno que le va a rodear le va a estar haciendo cuestionarse continuamente si no merecería más la pena hacer cualquier otra cosa.
Y la única respuesta válida será 'la programación es lo que da sentido a mi vida profesional' (y a ser posible con el añadido 'y personal')
Minute
La cuestión es si quieres ser programador ni se te ocurra serlo en españa.
maximusprime
Es fácil desviarse del camino ... ¡¿Qué te motiva a programar?! Respóndete a esta pregunta, márcate una ruta al objetivo que responde a la pregunta e intenta mantenerlo por ¡años! hasta conseguir lo que quieres ...
jdr16
Le diria que se busque una tecnologia que este bien pagada, y donde haya poca gente, que las hay. Que aprenda bien ingles, que como desarrollador/consultor es muy dificil pasar de 40/45k anuales (en Madrid y eso teniendo muchos años de experiencia) y que si quiere tener un horario bueno, que consiga trabajar en un cliente final porque en la mayoria de consultoras es normal echar horas en los proyectos
Usuario desactivado
El mejor consejo es que cambie de profesión o salga de España para buscar trabajo en este sector.
En España esta profesión esta muy deteriorada, malos sueldos y peores condiciones laborales.
manutek
Cuando te atasques en un problema vuelve a lo basico, debugguea siempre para prevenir datos basura, siempre usa Try Catch cuando hagas consultas a la db e implemeta el commit rollback por mas simples que sean las consultas, siempre utiliza Etiquetas globales, a fin de que puedas a futuro desarrollar en mas de un idioma.
DarkDudae
Pues yo soy de los que piensan que hay que hacer justo lo contrario a lo que hace la mayoría. En vez de "reciclarse" adaptándose a las nuevas tendencias "mainstream", yo creo que es mejor especializarse en lenguajes minoritarios que en muchos casos se tildan de obsoletos.
Muchas compañías tienen serios problemas encontrando programadores con dichos perfiles y el sueldo y las condiciones laborales son mucho mejores.
Usuario desactivado
Dedícate a otra cosa.
sarpullido
Corre insensato...
Los programadores de hoy somos el equivalente a los remeros encadenados de los galeones.
sebastonmagico
Después de leer el artículo y los comentarios, veo que hay muchas personas que están muy hartas de la programación y todo lo que rodea a este mundo. Después de algunos años haciendo esto, me doy cuenta de que es algo meramente vocacional, que disfrutarás si te gusta resolver problemas. Si lo que quieres es hacerte rico, puede que tengas que probar con otra cosa.
contramedios
Como analista-programador 6 años y pico en una de las llamadas "cárnicas" aquí van mis consejos:
1. Dedícate a esto si de verdad te gusta la programación, no por dinero o más bien por "tener trabajo" (ya que durante los primeros años cobraras poco y para cobrar mucho tienes que ser bueno, y solo se llegarás a ser bueno si te gusta)
2. Se proactivo (esta palabra la odian todos los que nos dedicamos a la programación en consultoras XD). Lo que significa es que si tienes una idea, la presentes, si tienes una pregunta, la formules y si no sabes hacer algo, lo digas. En resumen, que seas comunicativo con tu equipo por lo menos a lo que al trabajo se refiere y se note que quieres aprender y hacer avanzar el proyecto.
3. Intenta ver más allá de lo que estás haciendo. Mucha gente se centra demasiado en el código y no sabe abstraerse del problema y verlo de forma global. Si llevas haciendo una función 5 horas y ya tiene 800 líneas es que esta MAL, así de simple. Para, mira el problema por encima, pide ayuda y verás como encuentras una solución mejor y más simple. No sabéis la de veces que se me ocurrido una mejor solución a un problema mientras se lo explicaba a otro compañero.
4. Muévete de empresa. Intenta salir de la "cárnica" en menos de 4 años, no hagas como yo. Si estas en Madrid, Barcelona, Mallorca o Valencia tienes muchas posibilidades de ir a una empresa donde tu seas el verdadero participe de su evolución. Y si la empresa va bien el sueldo lo acompañara, eso seguro.
5. Céntrate en una tecnología emergente y con futuro, y exprímela. Yo creo que este es el mejor consejo. Si tienes la oportunidad de elegir el proyecto en el que vas a estar (cuando ya llevas tiempo en una consultora, por ejemplo) que sea de una tecnología que sea muy demanda y no tenga perspectivas de bajar (Java, por ejemplo) o una que tenga muchas perspectivas de subir (frameworks Javascript, por ejemplo). Si al final te conviertes en un experto de esa tecnología las empresas vendrán a ti, sin necesidad de que tu hagas nada.
6. Arriésgate. Eres joven, no tienes hipoteca, no tienes cargos familiares ¿porque permanecer en el mismo sitio 5 años cobrando una miseria? La mentalidad "funcionario" esta demasiado asentada en el mundo de la consultoria informática. Yo tuve la oportunidad de arriesgar y no lo hice. Ahora mis compañeros que si se arriesgaron cobran el doble que yo y trabajan desde casa.
En fin, este es un mundo que si te gusta te va a motivar trabajar en él. Se trabaja mucho pero si te gusta no se hace pesado, además los "programadores" son de las mejores especies humanas que hay XDDD, no vas a encontrar mejores compañeros en ninguna otra profesión.
xaxiquesi
Le diria: hagas lo que hagas ponte bragas.
Y que programara pensando en que otra persona lo leerá, que según como lo haga dentro de 6 meses cuando relea su propio código no lo entenderá ni el mismo. También que plantee una solución escalable que permita cambios en el futuro. Y por ultimo que entienda el concepto, mecanismo, proceso, negocio que esta programando.
melgo
Lo de actualizarse no es tan constante como lo refleja este artículo, los lenguajes de programación más usados y más 'comerciales' no han variado desde hace casi 14 años (Java, C, C++, C# etc...), constantemente surgen nuevos frameworks o diferentes modelos de arquitectura que para estar actualizado deberías aprender, pero desde que tengas la lógica es muy fácil entenderlos. El ranking TIOBE corrobora esta información.
DarkDudae
Para mí el artículo no tiene nada que ver con la realidad. Al menos no con la mía o la mayoría de compañeros que conozco que trabaja en este sector.
En el artículo se describe una profesión donde prácticamente eres un "esclavo" y tienes que estar todo el día de conferencia en conferencia, participando en proyectos en tus ratos libres, comprando libros y en definitiva, viviendo por y para "la causa".
Mi experiencia no es esa ni remotamente parecida. Todos los consejos dados los veo más bien para el típico programador "mainstream" que lo único que ha hecho en su vida es programar en C y Java para tecnologías web. Y ojo, no lo digo como demérito de estos programadores ni lenguajes de programación, sino porque en esta profesión (o al menos en mi caso), nadar contra corriente es la única forma de destacar entre muchos profesionales que, siguiendo la jerga informática, podríamos calificar casi de "clónicos".
Si tus clientes, (o los clientes de tu empresa), tienen proyectos de gran envergadura en X tecnología, el mimo a esos proyectos (aunque estén programados en lenguajes del pleistoceno) te dará de comer dignamente, y de hecho, con el tiempo serás un especialista en dicho sector y hasta serás más valorado.
Por otro lado, y siguiendo por la línea propuesta en el artículo de "reciclarse o morir", decir que un buen programador con experiencia, con los conceptos claros a la hora de gestionar un proyecto a nivel computacional, tendrá mucha facilidad de saltar de un lenguaje de programación a otro.
Yo comencé en C++, por afición probé Delphi (lenguaje que sigo usando mayormente a día de hoy y con el que puedo hacer desarrollos en casi cualquier plataforma: Windows, Linux, MAC OSX, iOS, o Android), pero a veces me ha tocado trabajar con Visual Studio en C#, Visual Basic o en entornos web y nunca he tenido mayor problema para adaptarme al nuevo entorno ni ser productivo en el mismo de forma rápida). Y todo ello sin ir a ninguna conferencia y leyendo en mis ratos libres novelas de ciencia ficción y/o históricas, no manuales de "Aumenta tu productividad en JavaScript en tan sólo dos meses. Garantizado".
Eagle
Venga va, yo también me uno a la corriente general, porque es bastante acertada.
Le diría (si reside en España y no tiene intención de irse fuera): "¿estás seguro de que ésto es por vocación? Entonces adelante, sigue con ello. Sino más te vale tener mucha paciencia y muchísima suerte en lo que hagas..."
bolv
En mi caso, día tras día me estoy qué estoy haciendo con mi vida...
marcelorullan
Hola!! Alguien me podría aconsejar para empezar a aprender que libros o tutoriales estudiar. Muchas Gracias
kilyc2
Yo soy uno de esos que después de 5 años "programando" ha empezado a programar, y no podría estar más de acuerdo con este artículo. He leído algunos comentarios derrotistas, supongo que de gente que ha dejado la programación o no ha tenido el valor para intentar mejorar y ha tirado la toalla, si no, no dirían "no te metas, huye" y seguirían dentro del sector. Muy buen artículo y muy motivador, mi consejo a ese programador (yo mismo) sería muy parecido a lo que dices aquí, genial!
esiguall
Le diría que no se estrese, que se lo tome con calma y que no esté todo el día al ordenador y que disfrute bien de los fines de semana.
alsam
Estoy en la Universidad siguiendo esto y leyendo sus comentarios ya me bajonearon, como que me quitaron un poco de esa ilusión que tenía con esto .-.