Pocos programadores lo piensan, pero hay una extraña brecha en su educación profesional. Aunque la mayor parte de su tiempo de trabajo está dedicado a leer códigos, ellos están entrenados principalmente para escribirlos. Hay poco enfoque en la lectura activa en la cultura de desarrollo de software.
En 2019, un grupo de programadores y científicos notó esta brecha y creó la iniciativa Club de Lectura de Código (Code Reading Club, en inglés). Desde entonces, agrupaciones de todo el mundo se han estado reuniendo de forma online y offline para entrenar la habilidad de leer código.
En este artículo, Rupert Redington, arquitecto de soluciones de DataArt, explica cómo funciona el mencionado club, cómo puedes beneficiarte de la práctica consciente y además ofrece un pequeño vistazo de las técnicas involucradas.
¿Qué es?
En esencia, un club de lectura de código es un poco como un club de lectura y un poco como una sala de escape.
Un pequeño grupo se reúne de manera regular para leer y discutir piezas de código cortas. Cada sesión es facilitada por un miembro del grupo, que ha seleccionado la muestra de código para la ocasión y que guía al grupo mediante una serie de ejercicios exploratorios.
Con el tiempo, el grupo mejora su técnica a través de la práctica y la experimentación de nuevos enfoques.
Los clubes de lectura de código han surgido en una amplia variedad de entornos, desde sesiones públicas introductorias en conferencias, pasando por grupos de larga duración en empresas, hasta clubes centrados en bases de código específicas, como el compilador Rust.
¿Cómo es la experiencia?
"No esperaba que fuera tan parecida a una historia de detectives".
"Fue genial cómo trabajamos juntos para resolver las cosas. Aprendí mucho".
El feedback de los participantes es muy positivo. Las personas encuentran las sesiones inclusivas y de apoyo, y a menudo se sorprenden de lo involucradas que se vuelven y de lo rápido que pasa el tiempo asignado.
Lidiar con un fragmento breve de código desconocido y descontextualizado, a través de una secuencia de ejercicios cortos, muchas veces da lugar a una experiencia similar a un juego. Los grupos se enfrentan juntos a la sintaxis y a los patrones desconocidos, e intentan deducir la función de la muestra e incluso el software del que proviene.
Al final de la sesión, el facilitador suele revelar el proyecto del que se extrajo la muestra, con un poco de contexto (lo que hace que sea un desenlace emocionante).
Para obtener una impresión más detallada de cómo se siente, puedes consultar la excelente reseña de Marit van Dijk sobre sus experiencias.
Práctica de lectura de código
¡Inténtalo! A continuación, podrás encontrar tres ejercicios para que puedas darte una idea sobre cómo funciona la práctica de lectura de código.
1. Ejercicio "Primer Vistazo" (3 minutos)
La mayoría de las sesiones del Club de Lectura de Código comenzarán con un ejercicio llamado "Primer Vistazo".
El mismo consiste, básicamente, en abrir la siguiente muestra de código y echarle un vistazo durante no más de 30 segundos. Luego debes cerrar esa página y darte un minuto para reflexionar. ¿Qué fue lo primero que llamó tu atención? ¿Y qué fue lo segundo? ¿Por qué crees que esas cosas se destacaron para ti? ¿Y puedes generar alguna conexión entre ellas?
En un club discutiríamos las impresiones de los demás, recordándonos a nosotros mismos y al resto de abstenernos a conjeturar sobre lo que el código hace en este punto. Buscamos respuestas a preguntas tales como:
- ¿De qué forma ayudan esas observaciones iniciales a decidir qué mirar a continuación?
- ¿Qué líneas, hechos o conceptos fueron elegidos por todos versus solo por algunas personas?
- ¿Qué conocimiento surgió en este proceso? ¿Conocimiento del dominio del lenguaje de programación? ¿De un marco de trabajo?
- ¿Qué conocimiento crees que podría ser necesario para entender mejor este código?
2. Ejercicio de "Anotación Estructural" (10 minutos)
La Anotación Estructural es un ejercicio visual agradable que tiende a generar una vibra muy meditativa en las sesiones del club de lectura de código.
Abre la Muestra de Código y esta vez tómate tu tiempo. Puedes utilizar la herramienta de anotación para hacer doble clic en palabras del código y darles color; y luego conectarlas con flechas. Una vez más, en esta etapa, trata de no enfocarte en el propósito del código, ni en su lógica, sino más bien en su estructura y flujo.
Puedes utilizar esta herramienta (o lápiz y papel) como prefieras para explorar la estructura del código. Pero generalmente las personas eligen centrarse en la declaración y uso de:
- Variables
- Funciones / Métodos
- Clases
- Dependencias
3. Ejercicio de "Líneas Importantes" (5 minutos)
En este ejercicio, harás tu primer acercamiento para formular tus puntos de vista sobre el propósito del código. Poniendo en práctica lo que has comprendido durante los dos ejercicios anteriores, intenta seleccionar de 3 a 5 líneas que consideres las "más importantes" en la muestra.
Puedes abrir la Muestra de Código de nuevo y utilizar los puntos de colores en el margen izquierdo para marcar las líneas que te llamen la atención.
Por supuesto, hay mucho que debatir en este ejercicio... ¿Qué constituye una "línea"? ¿Qué significa realmente "importante" en este contexto? Pero esas discusiones son mejor abordadas con amigos. Si te interesan, ¡quizás deberías profundizar en el Code Reading Club!
Mientras tanto, te sentirás curiosa/o acerca de la muestra de código que acabas de leer... Desplázate hacia abajo del artículo para ver los spoilers.
¿Cuáles son los beneficios de la práctica?
- Los desarrolladores experimentados saben que su trabajo implica inevitablemente leer más código que escribirlo, pero se presta poca atención a la técnica de lectura. Al entrenar activamente estos músculos, obtenemos beneficios inmediatos cuando hacemos lo siguiente:
- Trabajamos con código heredado.
- Refactorizamos para mejorar la legibilidad y mantenibilidad.
- Participamos en revisiones de código.
- Exploramos ejemplos y documentación densa en código.
- Los clubes de lectura de código se encuentran constantemente con lenguajes y patrones desconocidos. Pero lo hacen en un entorno seguro. Esto disminuye el temor al cambio y es un medio para la introducción de nuevas ideas.
- Los desarrolladores novatos obtienen información valiosa sobre cómo otros aprovechan su experiencia para manejar lo desconocido, lo que acelera el aprendizaje de manera considerable.
- Pueden participar personas de otras disciplinas, como de Diseño y Gestión de Productos. Esto elimina parte de la mística en torno al código y desarrolla la capacidad de un equipo para mantener conversaciones interdisciplinarias fluidas.
- Convertirse en un facilitador de una sesión es una manera -de bajo riesgo- de desarrollar habilidades como líder servidor. Estas habilidades contribuyen a democratizar las ceremonias ágiles.
¿Dónde está la ciencia?
El Club de Lectura de Código tiene sus raíces en el trabajo de la Dra Felienne Hermans, especialmente en su libro “The Programmer’s Brain”. Su posteo en el blog de los primeros días del club contiene una gran cantidad de teoría y muchos enlaces interesantes a fuentes académicas.
¿Cómo empiezo?
La mejor manera de experimentar un club de lectura de código es reunirse con amigos y colegas, y probar una o dos sesiones. Facilitar tu primera sesión puede parecer intimidante, pero de esta forma tu grupo crecerá junto y tomará posesión del proceso.
¡Pero no estás sola/o! La comunidad en codereading.club tiene recursos para guiarte paso a paso en tus primeras sesiones y algunas herramientas para que las sesiones online sean más fluidas. También hay un canal de Discord, que tiene un ritmo tranquilo, donde puedes obtener más consejos.
Además, la comunidad de codereading.club organiza sesiones públicas online de vez en cuando, como así también en conferencias relevantes. Sumado a esto, pueden ponerte en contacto con facilitadores expertos si te gustaría recibir ayuda para introducir clubes de lectura de código en un entorno comercial.
Entonces, si encuentras útil esta práctica y deseas mejorar tus habilidades de lectura de código, ¡únete al club!
¡ALERTA DE SPOILER! ¡ALERTA DE SPOILER! ¡ALERTA DE SPOILER! ¡ALERTA DE SPOILER! ¡ALERTA DE SPOILER!
Es parte de Microsoft's VisualStudio Code, está escrito en TypeScript, y se encarga de colorear los pares de corchetes coincidentes en el código fuente con resaltado de sintaxis. Puedes verlo en contexto aquí: colorizedBracketPairsDecorationProvider.ts.









