Llevo 3 años enseñando buenas prácticas en el desarrollo de software entre el internship de Softonic y las colaboraciones esporádicas con la universidad, y algo que he aprendido de todo esto es que es muy difícil.
Es difícil explicarle a alguien que la duplicación es mala si no ha sufrido las consecuencias en sus carnes. Es complicado decirle que no abuse de la herencia entre clases si no se ha visto incapaz de cambiar su código por culpa de esto.
Es decir, podemos enseñar buenas prácticas a estudiantes, decirles que hagan esto y aquello, o que eviten eso de allí, pero no lo interiorizarán de verdad hasta que no vean claras las consecuencias. Podemos explicarles los beneficios, los pros y los contras de una decisión y lo memorizarán. Pero no lo entenderán del todo y lo dominarán hasta que no lo sufran y se digan a sí mismos: “mierda”.
Igual que un piloto o un soldado pueden aprender su oficio con los libros o simuladores, no se convertirán en seniors en su profesión hasta que no lo hagan de verdad.
Para muchos, mantener una pieza de software durante un par de meses será el tiempo más largo que hayan tenido que mantener algo
En el internship de Softonic enseñamos desarrollo de software durante 3 meses a estudiantes que estén terminando la carrera. Es un curso intensivo donde se ven muchas cosas. Es poco tiempo, pero para intentar que vayan ganando horas de vuelo, disparos en el campo de batalla, desde el principio tienen que desarrollar su propio framework desde cero. Y ese es el framework que utilizarán hasta el final del curso. Cuando nuevas funcionalidades se vayan pidiendo, verán si ciertas decisiones que han tomado les han ayudado o perjudicado y cuan costoso es de modificar.
Para muchos, mantener una pieza de software durante un par de meses será el tiempo más largo que hayan tenido que mantener algo. Es en el mantenimiento donde se ponen de manifiesto los pros y los contras que se explican en la teoría del curso.
Si usásemos un framework open source existente o diésemos una solución igual para todos, se quedarían sin aprender esto. Y creo que es primordial en el camino para convertirse en un programador senior. Porque son los seniors los que tienen suficientes horas de vuelo como para, con el libro en la mano, saber cuando pueden saltarse las reglas para hacer mejor software.
Los libros, los vídeos y los cursos son recursos muy buenos para aprender a programar. Pero estos son solo la semilla para que luego podamos crecer. No sirve de nada si no salimos ahí fuera e intentamos solventar problemas reales.
¿Quieres aprender a programar? Construye algo que dure en el tiempo, compártelo con los demás y utilízalo.