Nonsense

Aprendizaje - Cómo mejorar en el desarrollo de software

Algo que nunca he tenido del todo claro es por qué otras personas acuden a mi a preguntarme cosas. Eso sí, gracias a que lo hacen, a mi me permite observar ciertos temas recurrentes en la vida del desarrollo de software. Una pregunta que se repite mucho es la de cómo aprender o cómo mejorar o cómo avanzar… Bajo diferentes expresiones la pregunta es siempre la misma. No se trata de una pregunta específica sobre cómo hacer que mi código sea más X o menos Y o si es bueno usar determinada construcción. Es una pregunta que va más allá. ¿Cómo puedo yo, personalmente, aprender a mejorar? ¿Cómo debo pensar, cómo me puedo enfrentar a las situaciones, para ser capaz por mi mismo de encontrar buenas, mejores soluciones?

Modelo de progreso

Hay un modelo, una explicación, del progreso que seguimos en el proceso de aprendizaje que no recuerdo ahora si lo leí en Becoming a Technical Leader o en algún otro sitio. La idea es que el aprendizaje no suele ser continuo o lineal, sino que sigue una gráfica con esta pinta:

Es decir, nuestro progreso avanza en escalones o mesetas. En ciertos momentos aprendemos mucho y llegamos a un punto en que nos vamos estancando y lo único que hacemos es mantener el nivel. De pronto, por algún cambio como encontrar una nueva perspectiva, recibir una técnica diferente o, en general, descubrir una determinada idea o innovación, volvemos a poner en marcha la mejora. Pasamos mejorando otra temporada, mientras aprendemos a dominar esa nueva idea y luego volvemos a estancarnos. Y así de forma constante. Es un modelo típico y habitual. Se ve en deportistas, en artesanos, en profesionales de todo tipo de profesiones.

Nuestro caso concreto

En el caso concreto del desarrollo de software, y por lo que yo he podido apreciar de esa buena gente que a veces me hace la pregunta, hay muchas pequeñas mesetas pero principalmente 3 grandes tramos.

Inicialmente sabemos muy poco y aprendemos mucho. Nos estancamos a veces pero en general hay tanto que aprender que es relativamente fácil que el aprendizaje sea bastante continuo. Sin embargo llega un momento en que hemos aprendido lo básico y nos defendemos en nuestras tareas diarias sin demasiado problema. Ahí es donde suele producirse el primer estancamiento. Dejamos de aprender cosas nuevas porque hemos encontrado cierta comodidad, cierta tranquilidad en las tareas comunes.

Tras un tiempo en esta meseta, y dependiendo de cada persona, claro, llegamos a un punto en el que descubrimos que no sólo existen esas tareas comunes, recordamos que hay mucho más aún por explorar. Si todo va bien, empezamos una segunda etapa de aprendizaje. Encontramos nuevas herramientas, nuevas tareas, nuevas técnicas… No aprendemos ya cosas básicas o “para sobrevivir el día a día” sino que realmente aprendemos a hacer esas cosas de mejores formas. Y así hasta que al cabo de otro tiempo, de nuevo basado en mis observaciones meramente anecdóticas, llegamos al segundo estancamiento.

La segunda meseta tiene una naturaleza ligeramente diferente a la primera. Es más habitual que lleguemos al estancamiento, no por comodidad como antes, sino por que nos falta algo. No sabemos hacia dónde seguir. No sabemos cómo seguir. No tenemos claro qué más podemos hacer. Tristemente muchas personas se quedan aquí durante mucho tiempo. Por suerte, otras todo lo contrario. Pero en general creo que salir de la segunda meseta puede ser algo más complicado que salir de la primera.

Si conseguimos salir, el tercer tramo de aprendizaje tiene un tono ligeramente diferente. La pendiente es, en general, menor -aprendemos más despacio ya- pero a cambio el progreso suele ser también más continuo.

Junior/Senior/Master

Realmente me importa poco qué etiquetas poner. Quería poner las dos primeras sólo para enlazar Junior Senior de forma totalmente no relacionada con nada en absoluto xD

Ahem… Seriamente. Podríamos ingenuamente llamar a esos tres tramos Junior, Senior y Master. No estoy cómodo del todo con ello. Primero porque conozco muy pocos maestros y, curiosamente, la mayoría de los que considero Master tiende a no denominarse así a sí mismos. Y por otro lado porque hay mucha confusión ya con los términos Junior y Senior en el entorno laboral.

En cualquier caso, de una forma aproximada podríamos decir que Junior, Senior, y Master, entendidos ni como un título ni como un estatus, se corresponden con las tres fases de aprendizaje que se encuentra un/a profesional del desarrollo de software.

Esto no quiere decir que ocurra siempre así. Como dejaba caer antes, cada persona sigue su propio proceso con sus propias circunstancias. Ocurre, por ejemplo, que algunas tarden más que otras tanto en alcanzar una meseta como en salir de ella. Ocurre, incluso, que algunas personas lamentablemente no consiguen salir de una meseta.

¿Y bien? ¿La respuesta?

¿Cómo? ¡Todo este rollo y aún no he contestado a la pregunta! ¿Cómo demonios podemos mejorar? Lo cierto es que la solución al problema no es única, ni se puede condensar en una pequeña respuesta. No sólo hay diferentes respuestas según la fase en la que estemos, sino también hay muchas pequeñas respuestas que hay que combinar para alcanzar una solución suficiente.

Pero es precisamente esto lo que he decidido plantearme como objetivo. Aquí iré añadiendo pequeñas respuestas, pequeñas ideas que según el punto en el que estemos de nuestro progreso nos podrán servir para seguir avanzando. Mi idea es ir escribiendo enlazadas desde aquí, una serie de ideas, recomendaciones, sugerencias, humildes consejos quizá, cosas que iré marcando para qué fase del proceso son más indicadas, en qué momento nos pueden ayudar. Creo que es bueno aceptar que cada cosa puede tener un momento más apropiado para aprenderla y que intentarlo en un momento no adecuado puede no servirnos de nada.

Por otra parte, ¿quién soy yo para ir dando por ahí estos consejos? ¿Quién me creo para darlos? Sinceramente no lo sé. Más aún, no creo estar especialmente cualificado para dar consejos (por eso prefiero hablar de “ideas” y “sugerencias”). Sólo soy un programador más. Sin embargo tengo dos motivos para intentarlo. En primer lugar, yo también estoy en proceso de aprendizaje, y creo que en este momento una de las cosas que me pueden ayudar a mi a seguir avanzando es hacer esto. En segundo lugar, si miro hacia atrás, creo que me habría gustado mucho haber tenido a alguien que me diera este tipo de ideas que me ayudaran a seguir mejorando. Y como motivación extra, intentaré que las ideas y sugerencias sean, siempre que pueda, cosas de las que no se habla habitualmente, o por lo menos que tengan una visión diferente a la que se le suele dar.

Como siempre, no puedo prometer regularidad y desde luego no puedo decir hasta cuándo seguiré haciendo esto, ya sabéis, pero sí tengo una fuerte intención de darle toda la continuidad que pueda. Y si puedo, intentaré también contar con colaboraciones :)


Creo que lo mejor será ir recopilando en cuatro grandes secciones, que luego ya iré ajustando si es necesario: