Todos queremos crecer en nuestra carrera de programación y para lograrlo necesitamos adquirir hábitos y técnicas que nos ayudarán a no quedarnos estancados. En este artículo hablaremos de las tres técnicas que me parecen más importantes del wizardzine gratuito “So you want to be a wizard” de Julia Evans.

Espero que estas recomendaciones te dejen reflexionando y que termines con ganas de leer el wizardzine completo. Los pongo en el orden que personalmente me parecen más impactantes, pero para ti puede ser diferente, por lo que te recomiendo que lo leas y medites por tu cuenta.

Escribe un documento de diseño

Una de las cosas más importantes que podemos aprender los desarrolladores es a diseñar software.

Un documento de diseño es una expresión del diseño de software. Es un escrito que haces ANTES de empezar un desarrollo, en el que detallas varias cosas sobre lo que te estás proponiendo hacer:

  1. El objetivo principal
  2. Detalles sobre el problema a resolver
  3. El diseño a alto nivel de la solución
  4. Las partes del sistema que estás afectando
  5. Otras consideraciones que hay que tener sobre esa pieza de software

Normalmente este diseño y consideraciones iniciales no se mantienen a lo largo del proyecto, pero sirven para empezar con una idea más clara y sin malentendidos. Una de las cosas más importantes que tienes que hacer con un documento de diseño es la retroalimentación que otros miembros del equipo puedan darte. En un artículo futuro de este blog hablaremos más a detalle de esto.

Pero recuerda que si no tienes práctica y, aunque sea un proyecto o cambio muy pequeño, vale la pena dedicarle un tiempo a pensar y escribir sobre lo que planeas hacer.

Como adquirir experiencia significativa

Es cierto que mediante trabajar en algo por un tiempo en algo lograrás adquirir experiencia, pero esta experiencia está limitada a las actividades que más repitas en ese trabajo y a ese entorno. Por eso no basta con sólo aprender en el trabajo.

Si quieres tener una experiencia más amplia, algunas prácticas que te pueden servir son:

  • Escoge un área que te interese especialmente y estudiala durante un tiempo razonable. Desarrolla tus habilidades en esa área y luego cambia a otra. Lo importante es que tu aprendizaje sea activo, no solamente teórico o lo que te vaya llegando del trabajo.
  • No pienses que es tarde para aprender. Aunque lleves bastante tiempo usando algo, no significa que lo debas saber todo sobre esa tecnología. No pienses: “¿Cómo es que no sabes X cosa sobre Y?”, sino: “Hoy es el día en que aprenderé sobre X y Y”.
  • Aprende los conceptos fundamentales, lo que te servirá para construir sobre eso más conocimiento y habilidades.
  • Haz experimentos. En muchas de las áreas del desarrollo, puedes hacer experimentos que no te cuestan nada y pueden ayudarte a entender más profundamente un tema.
  • Lee Libros. Los libros en la mayoría de los casos son un conjunto de conocimientos destilados sobre cierto tema. Leer los capítulos específicos de los temas de tu interés te ayudará a avanzar más rápido.
  • Haz proyectos difíciles. Nada como poner a prueba tus habilidades para ver los hoyos en tu conocimiento como hacer tareas difíciles.
  • Profundiza. Cuando no entiendas algo, busca información más profunda sobre el tema, aprende la historia, las bases y los conceptos más fundamentales. Además puedes acercarte a expertos en el tema a pedirles ayuda para comprender este tema, o recursos que te ayuden a comprenderlo.

Finalmente, recuerda que todo esto toma tiempo, no puedes convertirte en un experto en algo de la noche a la mañana, por lo que debes tener paciencia contigo.

Lee código fuente

A veces, los sistemas o herramientas que tenemos que usar no tienen documentación, nadie sabe lo suficiente para ayudarnos o no están disponibles. Es por esto que una de las habilidades más importantes que podemos tener es la de leer y entender el código fuente.

Algunas de las cosas que te pueden ayudar son:

  • Busca exactamente por la parte que necesitas. Puede ser un error, un mensaje o un módulo específico, usa las herramientas de indexación de texto para llegar ahí, no creas que tienes que leer toda la base.
  • Si el código que tienes que leer es pequeño, intenta darle un recorrida rápida para tener una idea general de lo que sucede y dónde sucede.
  • Haz experimentos con el código, cambiando cosas y viendo lo que sucede, usa un debuggers, agrega tests, introduce bugs intencionalmente.

Finalmente, documenta lo que aprendas y encuentres, le puede servir a otros miembros del equipo, de la comunidad o a ti en el futuro. Entender estos sistemas te ayudará aprender de las decisiones de diseño buenas o malas y además te enseñará nuevas técnicas que hubieras tardado más en aprender por otros lados.

Conclusión

Lo que te acercará más a sentirte un mago o maga programando es la práctica enfocada, que puede presentarse de las tres maneras que hablamos aquí, pero hay muchas otras. Recuerda que la constancia es importante, más que la velocidad, pero buscar formas más eficientes de aprender no es malo.

Si te quedaste con ganas de más consejos de este estilo, descarga “So you want to be a Wizard” de la página oficial y continúa leyendo, esta vez de manera visual.

Shameless plug: aquí puedes ver nuestra presentación de los wizardzines.

Comentar