Guía para transformar tu carrera profesional

Quizá llevas muchos años dedicándote al desarrollo de software, o tal vez lleves tan sólo unos meses, pero de repente te has dado cuenta de que te encuentras estancado en tu carrera. Siempre habías pensado que este era tu mundo, pero has ido a caer a una empresa donde el único objetivo es vender, y no se valora para nada la ejecución: lo importante es vender barato y producir mal y rápido. Si estás en esta situación, seguramente estés muy frustrado y planteándote si realmente esta es tu vocación, o si quizá deberías abandonarlo todo e irte a cuidar cabras al monte. Tranquilo, no estás solo, es una situación muy normal en este país. Pero se puede salir de ella. Mi objetivo con esta guía es que conviertas tu actual profesión en tu pasión. No creo que necesites cambiar totalmente tu vida, sino hacer pequeñas transformaciones para que ésta se ajuste a lo que realmente quieres. Pero cuando nos planteamos estas cosas, pensamos que simplemente con echar currículums y esperar se solucionará el problema, cuando realmente lo que nos está pidiendo la vida es un análisis mucho más profundo. Y esto no pasa sólo por ser muy buenos programadores, sino que también requiere una introspección muy necesaria que no podemos eludir. Por eso hoy te traigo una serie de pasos para transformar tu carrera, y muy probablemente tu vida. No consiste en aplicarlos de forma secuencial, sino que cada una de las partes se tiene que ir mejorando poco a poco. Sin más, empezamos:

Parte 1: Desarrollo personal

Esta es la parte que más se nos suele olvidar y que, en mi opinión, es la más importante. Normalmente todos vagamos sin objetivos por la vida, sin saber qué es lo que queremos, precisamente porque no nos conocemos a nosotros mismos. Te recomiendo que dediques todo el tiempo que sea necesario a esta fase, porque será la que forme los cimientos del resto de tu transformación.

Descubre tus valores

Cuando nos sentimos incómodos o frustrados en nuestra vida, normalmente es porque lo que estamos haciendo no se alinea con nuestros valores. Y este punto es vital para ser capaces de evolucionar. Si dedicamos nuestro tiempo a hacer cosas que no están alineadas con ellos, nunca llegaremos a sentirnos realizados. Así que te recomiendo que cojas papel y boli y empieces a escribir qué valores son los que te mueven. De forma sincera, no porque sean los que mejor suenan. Como al principio no se te ocurrirán, coge una lista como esta y empieza a tachar y elegir. Ordénalos de mayor a menos importancia, esto te ayudará a tomar mejores decisiones en tu futuro, basadas en lo que realmente te importa.

Piensa dónde quieres verte de aquí a 3-5 años

Necesitas saber hacia dónde quieres moverte para iniciar tu camino. La mayoría de las personas dedicamos más tiempo a organizar unas vacaciones que a organizar nuestra vida, y esto no parece ser los más recomendable. Escribe en un papel con todo lujo de detalles dónde te ves de aquí a 3 años: dónde vives, el tipo de casa, con quién te levantas por las mañanas, en qué tipo de empresa trabajas, como es tu estilo de vida... Cuantos más detalles extraigas mejor. Esto te ayudará a trazar un plan para llegar hasta ello.

Crea un plan para llegar hasta allí

Con lo que has extraído del punto anterior, ahora tenemos que marcarnos una serie de pasos. La planificación lo es todo para alcanzar el éxito, así que no pases por alto este punto. Necesitas:

  • Planificar lo que habrás conseguido dentro de 1 y 2 años: especifica a grandes rasgos los puntos intermedios para llegar al fin. Si por ejemplo dentro de tres años quieres vivir en un chalé en las islas caimanes, piensa qué tendrás que haber conseguido para acabar allí.
  • Planificación de un año completo: ahora baja más a detalle, y piensa todo lo que vas a conseguir de aquí a un año. Un gran hito por mes parece algo asequible.
  • Planificación semanal: quizá la más importante. Cada domingo decide lo que quieres conseguir durante la semana, y pon día y hora para ejecutar esas tareas. Sé constante, pues al principio verás que la planificación inicial no coincide en nada con lo que haces finalmente. Pero no dejes que eso te desmotive, la práctica hará que se vaya alineando poco a poco.

Parte 2: Evolución de tu marca

Tan importante como saber mucho sobre algo, es ser capaz de demostrar que lo sabes. Esto te ayudará a convertirte en un referente en tu sector, y que por tanto puedas acceder a oportunidades laborales que de otra forma serían imposibles. A mucha gente le echa para atrás este punto, pero personalmente es una de las partes que más disfruto. Compartir con otras personas te hará sentirte más realizado, y te obligará a dominar mucho más las materias de las que hablas. Además, como dice el compañero Miguel Catalán, lo que das a la comunidad se te devuelve multiplicado por tres. No sabes en qué forma, pero da sin esperar nada a cambio, y seguro que la recompensa llegará. E incluso aunque no llegue, todo lo que aprenderás y la gente que conocerás por el camino ya merece la pena.

Asiste a charlas y eventos, ¡y participa!

Ya he contado en mi blog que para mí los eventos son una de las mejores cosas de este mundillo. Aparte del aprendizaje en sí, conoces a mucha gente con la que compartes intereses, y eso, aparte de ser una experiencia de por sí gratificante, te ayudará a evolucionar mucho más rápido. Soy de la opinión de que las personas con las que pasas la mayor parte de tu tiempo moldean tu vida, así que es mejor rodearse de gente positiva que ama lo que hace que de gente pesimista que sólo se queja. Todo lo que obtienes de estos eventos tiene un efecto exponencial si eres tú el que da la charla. Al principio da miedo (es probable que nunca lo pierdas del todo), pero acaba siendo adictivo. Pruébalo al menos una vez.

Crea un blog

Escribir en un blog es casi indispensable para crear una marca personal fuerte. Hay gente que lo consigue sin ello, pero es mucho más complicado. Un blog es un escaparate de tus conocimientos. Si alguien quiere contratarte, se fiará más si tiene formas de comprobar lo que sabes. Y si además las explicas bien, significa que serás un excelente compañero de trabajo. Además escribir te une mucho más a la comunidad y, como comentaba antes, para explicar algo necesitas dominarlo, por lo que afianzarás mucho mejor tus conocimientos. Hay muchas plataformas para escribir blogs, pero si quieres empezar con algo sencillo y un poco geek, puedes crearte un blog gratis con Github y Jekyll. Otra opción muy buena es participar en blogs como este.

Desarrolla software libre

Github debería ser tu segunda casa. Primero, porque puedes aprender muchísimo de otras personas que también publican, y segundo porque te da mucha visibilidad, sobre todo si quieres trabajar en el extranjero. Yo he recibido muchas ofertas a través de este medio. Pero centrándonos en aprender, el software libre te aporta muchísimo, tanto si creas proyectos propios (la gente los probará y validará tu código) como si participas en los de los demás. Esta segunda opción es increíble para aprender de otras personas que saben mucho más que tú. Además, de paso, coges soltura con Git, un control de versiones. Manejar Git es algo absolutamente indispensable si quieres convertirte en un desarrollador experto.

Escribe un libro

Aunque a primera vista pueda parece algo inalcanzable, escribir un libro es sólo cuestión de buena planificación y constancia. Además, gracias a Internet ya no es necesario escribir libros de 200 páginas, sino que puedes hacer ebooks más pequeños (50 páginas está muy bien) y ponerlo a la venta. Y ya de paso, te sacas un dinerillo extra. Lo bueno de escribir un libro sobre una temática (sobre todo si no hay muchos) es que te posiciona automáticamente como un referente en ese sector. Desde que publiqué mi libro sobre Kotlin, he recibido invitaciones para muchas charlas (tanto nacionales como internacionales), un taller, posibilidad de cursos... Si quieres destacar sobre algo, no hay una forma mejor. Para mí ha sido una experiencia muy enriquecedora, y seguro que repetiré.

Parte 3: Conviértete en un experto

No sirve de nada ser una referencia en tu sector gracias a la marca personal si cuando abres la boca todo se cae bajo su propio peso. Normalmente, de hecho, es muy difícil conseguir lo anterior si no hay un conocimiento profundo sobre la materia que se trata. Aunque cada desarrollador en su plataforma específica tendrá que tener muchos conocimientos sobre ella para destacar, hay ciertos conceptos que todo desarrollador debería al menos conocer, y si es posible practicar en su día a día. Aquí tienes un listado de algunos de ellos. Si consideras que me falta alguno indispensable, no dudes en dejar un comentario.

Clean Code

Un buen desarrollador se caracteriza no sólo por escribir código que funcione, sino por escribir código que pueda entender un humano. Y la diferencia es bastante drástica. Desde hace tiempo Robert C. Martin (Uncle Bob) ha venido evangelizado esta idea, y su libro Clean Code es indispensable. Muy relacionados con esto están los principios SOLID, que tampoco puedes dejar de conocer y aplicar. Gracias a todo esto harás que el código sea más fácil de entender, mantener y testear.

Arquitectura de software

Muy relacionado con el punto anterior, la arquitectura de un programa juega un papel muy importante en el proceso del desarrollo de software. Si nunca has oído hablar de ello, te recomiendo que le eches un vistazo a este artículo sobre arquitectura de software. Son muy famosas las arquitecturas que siguen las reglas clean, porque ayudan en gran medida a crear software de calidad.

Testing

El testing es una ciencia aparte dentro del desarrollo, y como tal es algo que requiere de mucho conocimiento y práctica. Los tests son trozos de código que comprueban la validez de nuestro programa. No quiero entrar en detalle porque es un tema muy extenso, pero puedes echar un vistazo a esta serie de artículos sobre testing. Si quieres que te valoren como un profesional con experiencia, necesitas tener cierta soltura con los tests.

Refactoring

Por muy buenos que seamos programando, el código poco a poco se va pudriendo, porque siempre tomamos decisiones basadas en lo que creemos que va a ser mejor, pero es imposible predecir el futuro. Por tanto, llegara un momento en que en nuestro código aparezcan "olores" (code smells), y las técnicas de refactorización nos ayudarán a deshacernos de ellos. Existe un libro mítico de Martin Fowler sobre Refactoring, pero a mí me gusta bastante refactoring.guru, una Web donde poder estudiarlos de forma más amena, y que va a lo esencial.

Integración continua

Este concepto empezará a resonar en cuanto te muevas por empresas que se preocupen por la calidad de su código, y es muy posible que necesites tener las ideas básicas para que te contraten en algunas de ellas. La integración continua es un proceso que se descarga el código fuente de tu control de versiones, lo compila y le pasa los tests (y puede que algunas otras herramientas de diagnóstico) para comprobar la validez del mismo. La ejecución generará un informe que indica si algo ha fallado y por qué. De esta forma el equipo está seguro de que el contenido en una rama es estable y que en cualquier momento se puede disponer de una versión estable para hacer pruebas, o demos. etc.

Trabajar con código legacy

En mi opinión es una de las partes más complicadas en el desarrollo de software. Llegas un día a una empresa y todo el código que hay allí está completamente obsoleto, sin estructura, sin tests, no hay quien lo lea, cada vez que hay que añadir algo es un suplicio... También hay técnicas para trabajar con este tipo de código, y la biblia para este tema es el libro de Working Effectively with Legacy Code. Si estás en esta situación, aprovecha para leerlo y aprender sobre ello.

Conclusión

Este es un pequeño resumen de lo que puedes empezar a hacer desde hoy para transformar tu vida y tu situación profesional. Es un camino largo, pero una buena planificación empezará a dar sus frutos en menos de lo que imaginas. En DevExperto estoy totalmente enfocado en este tema, y escribo cada semana artículos para ayudarte a que puedas llegar al punto en el que quieras estar de la forma más rápida y sencilla posible. Así que anímate y echa un vistazo. ¿Estás preparado para transformar tu carrera profesional? ¿Puedes dar algún otro consejo a los lectores? Deja un comentario para ayudar al resto de los lectores.