Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
38 lines (21 sloc) 6.58 KB

Javier Ros

1. BIO

A los 11 años pensé por primera vez que me quería dedicar al desarrollo de software y así ha sido. Desde las primeras rutinas que programé en GW-Basic noté algo especial, es como si hubiese encontrado para que servía mi cabeza, ese aparato, el ordenador, hacía que mi forma de pensar tuviera mucho sentido. En mi blog escribí un articulo sobre mis inicios. Después de hacer BUP, COU y selectividad me decidí por un módulo de grado superior, los dos últimos meses de los dos años del módulo los hice de prácticas en la empresa donde trabajo ahora mismo, ya han pasado 15 años... Para contactar conmigo lo puedes hacer a través de twitter @tolemac_jros.

2. INTRO

Pido disculpas anticipadas porque quiero ser bastante tajante y lo mismo suena brusco.

Como introducción creo que el buen desarrollador se hace, no nace. Pero si se debe tener cosas innatas como son la curiosidad, las ganas de saber más, la ansiedad por trastear. Yo lo llamo hambre, hambre de saber más. Luego está bien que sea humilde, aunque no es necesario para desarrollar, si lo es para relacionarte con otros desarrolladores y aprender con y de ellos. Particularmente opino que si no has imaginado a tus amigos nunca como un grafo de objetos o si no has pensado en programación cuando has estado en una pista de baile de una discoteca a las 9 de la mañana o si no has dejado tirados a tus amigos algún fin de semana por programar algo, entonces no tienes esa cosa innata que te va a hacer sobre salir, vas a poder ser un buen desarrollador si te esfuerzas mucho, pero si no lo más seguro es que seas un desarrollador de una cárnica agradecido y en más de una ocasión seas un estorbo. No hace falta llegar a mi extremo que me he despertado muchas veces sobre saltado porque estaba en un bucle infinito recursivo muy cerca del stack overflow.

En serio, si no es porque te encanta... busca otra profesión. Te ahorrarás disgustos y nos los ahorraras a otros.

3. PERFIL

Personalmente he hecho de todo, mucho backend y de unos años hasta ahora mucho front-end, me gustan todos los lenguajes y he trabajado laboralmente con Delphi, C#, C/C++, RPG, JavaScript, SQL, WebServices,... Extra laboralmente he ido mucho más allá, todavía recuerdo mis piques personales con el compilador de Visual C++ para escribir código ASM más efectivo que el que generaba el compilador desde C o mis luchas con Windows tratando de escribir un driver o depurando Windows XP con SoftIce. También me ha gustado mucho la generación y animación de gráficos en tiempo real, en modo protegido con MS-DOS, con GCC en linux y luego en Windows con DirectX y OpenGL. Estaba en un par de grupos de lo que conocimos como Demoscene.

4. CAMINO DE APRENDIZAJE

Personalmente no creo que una persona se deba marcar como objetivo tener un conocimiento básico o medio en algo, pienso que eso no debe ser un objetivo, el objetivo es aprender cosas y cuanto más sepas de ellas mejor. Me resulta extraño intentar describir el camino que un desarrollador debería seguir para ser buen desarrollador.

Para hacérmelo fácil voy a pensar en una persona a le que encanta el desarrollo, puesto que si no es así no deberías estar leyendo esto, deberías estar pensando en buscar otra profesión. Pero claro, si tanto te encanta el desarrollo ¿que haces leyendo esto? ¿por que no estás con algún proyecto en mente que te quita tiempo y te impide parar a leer esto? Así pues, más que un camino de aprendizaje me lo voy a plantear como cosas que te harán mejorar como desarrollador.

  • Aprende inglés. Es fundamental, yo voy justo y me pesa mucho.
  • Comprende como funcionan las librerías que usas. Si usas una librería debes comprender como funciona, si no lo sabes léete el código y si no comprendes algo pregúntalo en algún foro o en StackOverflow.
  • Sigue en twitter a los gurús. Así como suena, síguelos en twitter y presta atención a las cosas que publican. Por supuesto a los gurús de cosas que usas, no hace falta seguirlos a todos. Hay muchos.
  • Ábrete un blog. Aunque no tengas nada que decir, ábretelo aunque sea para compartir lo que piensas sobre tecnologías o para compartir los proyectos personales que llevas adelante, aunque creas que no valen. Comparte con la gente y publícalos en las redes sociales que consideres oportunas.
  • Lee otros blogs. La gente escribe cosas muy chulas, aguanta un poco cuando un post te parezca un peñazo, algunos escritores son lentos desarrollando su historia.
  • Participa en proyectos open source. Seguro que alguna vez te ha faltado alguna característica en uno de los frameworks que usas, ¿por qué no la desarrollas tú? si, te bajas el código fuente añades dicha funcionalidad y la subes. Hoy en día con GitLab y GitHub es muy fácil. Te sorprenderá el resultado, como mínimo vas a aprender lo mal que lo has hecho, pero podrás corregirlo para que pueda ser incluido en el proyecto. Trabajar en proyectos open source te da una perspectiva muy buena y amplia, se aprende mucho de metodologías de desarrollo y de herramientas de trabajo. Se aprende mucho viendo cual es la perspectiva de los líderes de otros proyectos.
  • Organizate. Usa herramientas como Trello o Issues de GitHub o el Board de GitLab para escribir las tareas que debes realizar y así hacerles un seguimiento y ver el estado. Usa etiquetas para saber el estado de tus tareas y ve cerrándolas conforme las vayas terminando.

Lo demás, aprender este o este otro lenguaje, aprender esta u otra tecnología es secundario, tu tienes que buscar un sitio y ser muy bueno en eso. Los lenguajes de programación son como los idiomas, puedes hablar chino o italiano, japonés o alemán, pero lo que importa es lo que vas a decir, no en que idioma lo dices. Igual con los frameworks, que si Java, que si .NET... al final son lo mismo. Elije lo que más te guste o con lo que más cómodo te sientas, escribe código y se feliz haciéndolo. Avanza, avanza y avanza, desarrolla y aprende de los demás. Si eres bueno en tu lenguaje y en tu tecnología no te costará aprender otros. Esta claro que si eres un proyecto de desarrollador y no sabes lo que es la OOP o no sabes lo que es la programación funcional o no sabes lo que es un socket o la diferencia entre bases de datos relacionales y no relacionales... pues chic@, lo que decía en mi intro, por favor, dedícate a otra cosa, te lo suplico. Pero no es nada malo no saber los detalles de un framework o una tecnología concreta, si conoces otras en profundidad podrás aprender cualquiera.