Para poner un poco de contexto
A los 16 años empecé a programar de forma autodidacta y a día de hoy con 34 años sigo programando de forma profesional y en mis ratos libres como hobby.
Lo que más me gusta de programar es que aparte de poder ganar dinero trabajando para terceros, es que puedo aprovechar toda esa experiencia para desarrollar mis propias ideas.
Quizás no sea el mejor programador del mundo, no he estudiado una carrera universitaria, no he trabajado fuera de España, tampoco he trabajado en una startup unicornio valorada en millones de dolares y eso me ha limitado mi carrera profesional.
Por otro lado si he tenido experiencia de moverme de un pequeño pueblo a una gran ciudad como Madrid para trabajar en varias startups que algunas de estas han sido vendidas: nvivo (wegow), sindelantal (just eat), socialpubli, socialreacher, prensarank… y también he trabajado para varias agencias de marketing con clientes internacionales.
Cuando tenía menos de 20 años veía como una utopía trabajar para una startup en San Francisco, pero a día de hoy pienso que aunque paguen muy bien allí fuera, creo que en algunos aspectos como la sanidad, la calidad de vida y el clima en España no tiene nada que envidiar a otros países.
Aunque a día de hoy sigo trabajando para terceros, mi ilusión sería un día poder vivir de mis propios proyectos aunque todavía no he dado con la tecla (nunca mejor dicho), pero no me rindo y quien me siga en twitter sabe que siempre ando creando cosas.
Y ahora si, aquí van algunos consejos
0- La mejor forma de aprender a programar es desarrollando tus propios proyectos, nada te va a motivar más que hacer algo que te gusta, aunque no haya un objetivo económico.
1- Si estás empezando, no te precoupes si no te salen las cosas a la primera, a la segunda o a la tercera, sigue intentandolo, al final esto es prueba y error hasta dar con la solución.
2- Hay una frase que me contó un profesor de informática que recordaré toda la vida «divide y vencerás», si te atascas en un problema que te impide avanzar, intenta dividirlo en pequeños problemas.
3- Asume que es imposible aprender todos los frameworks y lenguajes que salen cada día, si intentas hacer de todo no serás experto en nada, muchas cosas que aprendas si no las pones en practica en tu día a día, tarde o temprano se te van a olvidar o van a quedar obsoletas.
4- Intenta escribir variables, funciones, clases y métodos de forma que se pueda entender y no tendrás necesidad de comentar todo el código.
5- Intenta escribir código que puedas aprovechar para futuros proyectos, por ejemplo una clase que solucione uno o varios problemas determinados, te va a ahorrar mucho tiempo y esfuerzo.
6- No tengas miedo a la incertidumbre, aunque lleves mucho tiempo en el mundillo siempre te van a pedir cosas que no has tocado en la vida y tendrás que aprender sobre la marcha.
7- Es posible que te quedes atascado en algo durante muchas horas, en ese caso lo mejor es que despejes tu mente y retomes el problema más tarde, seguro que al día siguiente lo resuelves en 5 minutos.
8- Si trabajas para una empresa intenta aprender de los compañeros que más saben.
9- Si llevas mucho tiempo en una empresa y eres el que más sabe, si ves que no progresas y no eres feliz quizás deberías considerar cambiar de empresa.
10- Hay muchas formas de solucionar un problema, una será rápida pero chapucera, otra eficiente pero más costosa de implementar, a todos nos gustaría tomarnos un tiempo para escribir el código perfecto, pero hay fechas de entrega y los recursos son limitados.
11- Intenta ponerte en el lado del negocio, se te pueden ocurrir muchas ideas para mejorar un producto ¿Pero cuales de estas van a tener realmente un impacto económico positivo en la empresa?
12- Intenta hablar con tus superiores para conocer su visión a largo plazo, si programas con sprints a corto plazo seguramente más adelante tengas que reescribir muchas cosas porqué no tenías claro cual era el objetivo final.
13- Vuélvete imprescindible en la empresa donde trabajas, de esta forma aparte de tener el puesto asegurado, tendrás más posibilidades de pedir un aumento de sueldo con éxito.
14- Si tienes que programar algo que sea multiplataforma considera hacer una API desde el principio, te va a quitar muchos quebraderos de cabeza.
15- Intenta dejar documentación escrita a modo de wiki por si alguien retoma tu trabajo, muchas veces he tenido que retomar el código de una persona que ya no se encuentra en la empresa y no me ha quedado otra que investigar para saber como funciona todo.
16- Ten empatía con otros programadores, quizás el código no sea el mejor, pero nunca sabrás en que situación se encontraba esta persona. ¿Cuanto tiempo tuvo? ¿Tenía mucha presión? ¿Le pagaban bien?
17- Si has empezado un nuevo proyecto personal, no te obsesiones en que sea todo perfecto, super escalable, que tenga miles de funcionalidades, intenta salir con el mínimo para que ese producto se consiga vender.
18- A lo mejor me gano algún hater por esto, pero al cliente le importa un pito que lo que hagas sea «clean code», si te paga es porqué considera que va a ganar más dinero con tu solución.
19- En cada problema que te encuentres busca en stackoverflow, seguro que no eres el primero que se encuentra con eso y esté disponible una solución.
20- Por mucho tiempo que lleves programando siempre vas a aprender algo nuevo, incluso de los que apenas llevan unos pocos meses aprendiendo, te recomiendo seguir en twitter el hashtag #100DaysOfCode.
21- Si decides dar el paso a ser freelance, no seas tan optimista con las fechas de entrega, seguramente tardes más horas, intenta trackear tu tiempo con herramientas como puede ser toggl.
22- Aprende GIT, es la única forma de trabajar en equipo sin miedo a machacar el trabajo de los demás.
23- Programar no lo es todo, deberías aprender marketing para saber negociar, aprender a delegar por si el equipo crece, aprender a comunicarte mejor para evitar malentendidos.
24- Si te piden programar algo y no lo tienes del todo claro, antes de ponerte a programar a lo loco mira de aclarar todas tus dudas para evitar malentenidos y perder tiempo en programar cosas que no hacían falta.
25- Si buscas trabajo como programador y no tienes experiencia, crea proyectos por tu cuenta para demostrar que tienes aptitudes, conocimientos y que eres capaz de materializar ideas en algo funcional sea una web o app.
26- Y el consejo más importante de todos, evita siempre que puedas subir cambios a producción un Viernes por la tarde a no ser que esté todo super testeado.
Si se me ocurren más cosas iré actualizando la lista.
¿Se te ocurre algo más? Te invito a dejar un comentario abajo.
Gran artículo Miquel! Me costó mucho aceptarlo pero el #7 debería ser un mandamiento de programador 🤣. Gracias por los consejos y a seguir programando