Patrones de aprendizaje

Apprenticeship Patters es un libro de Dave Hoover y Adewale Oshineye. Va de diseñar el principio de una carrera en desarrollo de software; de «configurarse» para ser muy buen desarrollador. Aunque sus ejemplos y referencias son del desarrollo de software, el libro es útil también para quien inicie una carrera en cualquier otra profesión.

El libro está organizado como un lenguaje de patrones. Un lenguaje de patrones es una serie interconectada de soluciones a problemas comunes dentro de un dominio concreto. Por cada patrón se describe el contexto, el problema y la solución. La aplicación de la solución produce un resultado siempre diferente y personal. Por eso se trata de patrones y no de algoritmos.

Los patrones descritos en el libro son los siguientes.

Vaciando la taza

  • Tu primer lenguaje. Conoces algunos lenguajes pero no trabajas de forma fluida en ninguno.
  • El cinturón blanco. te cuesta aprender pues la experiencia que tienes parece que dificulta la adquisición de competencias nuevas.
  • Da rienda suelta a tu entusiasmo. Estás frenando tu entusiasmo y curiosidad respecto al desarrollo de software con el fin de encajar mejor en el equipo.
  • Habilidades concretas. Quieres trabajar con un gran equipo de desarrollo pero tienes muy poca experiencia práctica.
  • Saca a la luz tu ignorancia. Has descubierto lagunas en tu conocimiento y tienes miedo de que la gente va a pensar que no sabes lo que estás haciendo.
  • Enfréntate a tu ignorancia. Has descubierto lagunas en tu conocimiento y tu trabajo requiere que comprendas esos temas.
  • La parte profunda. Estás empezando a temer que tu carrera está atascada.
  • Retírate detrás de tu competencia. Te sientes abrumado al enfrentarte al alcance de tu ignorancia.

Andando el camino largo

  • El camino largo. Aspiras a convertirte en un maestro del desarrollo de software pero tu aspiración choca con lo que la gente espera de ti.
  • El oficio por encima del arte. Necesitas proporcionar una solución a tu cliente y puedes elegir entre escoger una simple y probada o crear algo novedoso y fantástico.
  • Motivaciones sostenibles. Te escuentras trabajando en el mundo frustrante de los proyectos ambiguamente definidos para clientes con demandas cambiantes y conflictivas.
  • Alimenta tu pasión. Trabajas en un entorno que sofoca tu pasión por el oficio.
  • Dibuja tu propio mapa. Ningún itinerario de carrera proporcionado por tu empleador te parece adecuado para ti.
  • Usa tu título. Cuando te presnmete en un ambiente profesional, sientes la necesidad de explicar la diferencia entre tu título y tus competencias reales.
  • Quédate en la trinchera. Te han ofrecido una posición que te alejaría de la programación.
  • Un camino diferente. Descubres que la dirección en que te quieres ir es diferente al camino de convertirse en artesano del software.

Autoevaluación adecuada

  • Sé el peor. Tu aprendizaje se ha ralentizado al haber sobrepasado el nivel de todos lo que te rodean.
  • Encuentra mentores. Te parece que dedicas mucho tiempo a reinventar la rueda y a chocar con dificultades pero no sabes muy bien donde adonde ir para orientarte.
  • Espíritus afines. Te escuentras varado, sin mentores, y en una atmósfera que no concuerda con tus aspìraciones.
  • Codéate. Sientes que ahí fuera hay técnicas y enfoques superiores del oficio que se te escapan.
  • Friega el suelo. Eres un desarrollador sin experiencia y necesitas ganar la confianza del equipo.

Aprendizaje continuo

  • Expande tu ancho de banda. Tu comprensión del desarrollo de software es reducido y enfocado sólo en detalles de bajo nivel de los desarrollos que haces en tu trabajo.
  • Practica, practica, practica. En el desempeño de tus tareas diarias de programación no hay espacio para aprender cometiendo errores.
  • Juguetes rompibles. Tu entorno de trabajo no admite fallos, pero necesitas un lugar seguro para aprender.
  • Usa la fuente. Cómo sabes si tu trabajo es bueno si no hay nadie alrededor que pueda diferenciar código bueno de código malo.
  • Refleja conforme trabajas. Los años y los proyectos realizados se van pasando y tú te encuentras esperando la epifanía que te convierte mágicamente en «experimentado».
  • Registra lo que aprendes. Aprendes las mismas lecciones una y otra vez pero parece que nunca se quedan contigo.
  • Comparte lo que aprendes. Te frustra que las personas alrededor tuyo no aprenden tan rápido como tú.
  • Crea bucles de realimentación. No sabes si estás sufriendo de «incompetencia inconsciente».
  • Fíjate en cómo fallas. Tus habilidades de aprendizaje han aumentado tus éxitos pero tus fallos y debilidades siguen ahí.

Crea tu currículum

  • Lista de lecturas. El número de libros que necesitas leer aumenta a un ritmo más rápido que al que los puedes leer.
  • Lee constantemente. Parece que hay un flujo constante de conceptos más profundos y fundamentales que se te escapan pese a haber adquirido un buen dominio del oficio de forma rápida.
  • Estudia los clásicos. Personas experimentadas a tu alrededor están constantemente refiriéndose a conceptos en libros que suponen que has leído.
  • Investiga a fondo. De muchas herramientas, tecnologías y técnicas tienes sólo conocimiento superficial y sigues chocando contra barreras al intentar abordar problemas más difíciles.
  • Herramientas familiares. Te cuesta estimar el tiempo que te lleva un trabajo porque tu set de herramientas y tecnologías cambia tan rápidamente.

Referencias

Apprenticeship Patterns (Sistema de Publicación de Feedback Abierto de O’Reilly)