Como leer y entender el código de otro developer es una tarea sumamente inmersiva y enriquecedora. Leer código es parte de nuestra carrera día a día y es una habilidad crítica en el campo de la ingeniería del software. Para actualizar motores de aplicaciones, para hacer upgrades de juegos, webs, o lo que sea que te guste trabajar relacionado con código.
Aunque la mayoría de las veces el código de otros puede ser bastante artístico, organizado y legible (como los de Laravel — amo el core de Laravel por encima de cualquier cosa) hay otras veces en las que nos encontramos el famoso código espaguetti que no es para nada agradable. Sin embargo siguiendo una serie de tácticas organizadas, puedes estar haciéndote lógicamente experto del código del otro developer.
**Fuera del tema pero envuelto en él. En serio, dedicar al menos 1 hora a leer código de aplicaciones de developers que admires puede darte un incremento en tus conocimientos que si leyeras 3 libros por semana o 1000 tutoriales en un mes.**
Encuentra algo que sepas que hace y retrocede desde allí.
Digamos que por su nombre o por sus parámetros logras identificar lo que hace una función. Ahora, ¿que tal si una vez que entiendas brevemente esa función y lo que hace das un paso atrás? ¿De donde se llama esa función? ¿Por que se hace el llamado de ésta función?
Inevitablemente hacer esto muchas veces te llevará a clases, archivos, funciones que quizás no tendrán nada que ver, pero ten presente que haciendo esto adquirirás a corto plazo varias cosas:
- La forma en la que está organizado el cuerpo y la estructura del código.
- El estilo que usó el otro developer para desarrollar. Esto es importante porque el estilo con el que te encuentras en un programa dice mucho del nivel de experiencia que tenía el developer en ese entonces. Con eso puedes ver si hace buen uso de los estándares, la programación orientada a objetos, etc.
**La programación es una habilidad progresiva en la que aumentas la calidad mientras más programas, entender el estilo es importante sí porque sí. Te encontrarás con que la calidad del código de una aplicación depende de muchas cosas, entre las más importantes el ánimo y actitud que el developer tenía en ese momento. Por eso empleadores, mantengan felices a sus devs si quieren un código libre de bugs xD.**
- Como el developer pensó que sería la mejor forma de solucionar cada problema o requerimiento. Esto es importante porque esclarece un poco mas el punto anterior. De hecho van juntos.
Es similar a ir armando un rompecabezas de a poco. Al principio solo tienes la imagen mental porque lo viste en el modelo. En nuestro caso sabemos lo que hace la aplicación o programa. Entonces no podemos armar el rompecabeza uniendo automáticamente las piezas porque no tenemos aún idea del orden como con el programa.
Si tomas cada ficha y comienzas uniendo cada una tomando como hilo las otras, al poco tiempo tendrás una pista mucho mas clara de la posición de las otras. De esta forma también vas leyendo y entendiendo el código de otro developer. No hay excusa, comienza a leer más código. Terminarás acostumbrandote y ganando mucha experiencia, lo que llaman calle.
Exponerte constantemente a código de calidad y bien hecho.
Aunque leer libros y ver tutoriales es una parte importante del aprendizaje de cualquier profesional también lo es exponerte constantemente a la mayor cantidad de código de calidad. Te sigo recomendando por ejemplo que veas como está estructurado y programado Laravel si eres apasionado con Php.
Lo que hace al maestro es la práctica, no la cantidad de libros que puedas leer. Si no dedicas suficiente tiempo a practicar no aprenderás los verdaderos detalles que te hacen un Senior. Para ser tratado como tal, entra al agua del código con tu lenguaje favorito.
Si no trabajas o no te gusta PHP, igual puedes encontrar muchos repositorios en github para usar. Sólo asegúrate de que el repositorio o programa que vas a analizar tenga ciertas condiciones mínimas. Lo ideal es que tenga una comunidad fuerte y al menos una buena popularidad. Ya que lo ideal es que vayas ganando experiencia como pro, lógicamente busca y entiende código pro.
Como última pero no menos importante sugerencia, si te decides modificar o usar alguno de los códigos en el repositorio que elijas, fíjate en las licencias. Algunas tienen restricciones para uso comercial y sería bastante desagradable meterse en problemas por el derecho que otro dev tiene a hacer lo que quiera con su código.
Cuéntame, ¿que otros trucos usas para aprender a programar o ganar mucha mas experiencia?