2. Un Github bien cuidado.
Tags: programming, beginners, github, git
Published: 2023-11-14 17:24:54

> Este post es la versión escrita del episodio [3.2. Un Github bien cuidado (reedición)](https://podcasters.spotify.com/pod/show/quniverse-academy/episodes/3-2--Un-Github-bien-cuidado-reedicin-e2bsv7n) del podcast [Sensei: tu guía en el mundo de la programación](https://podcasters.spotify.com/pod/show/quniverse-academy).

Photo by <a href="https://unsplash.com/@awcreativeut?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Adam Winger</a> on <a href="https://unsplash.com/photos/a-storage-building-with-red-doors-and-a-sky-background-OpV94f2edwE?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>

El día de hoy vamos a hablar acerca de Github, a conocerlo y conocer su importancia para que refleje de la mejor manera nuestra experiencia y conocimientos.
Esta será una importante carta cuando nos presentemos como programadores o cuando otras personas quieran ver un poco de lo que hacemos.

Antes de entender cómo podemos aprovechar Github, vamos a entender qué es.

## ¿Qué es Github?

Github es un servicio de alojamiento de repositorios Git. Es decir, una página dónde podemos subir nuestros respositorios Git, compartirlos, colaborar en repositorios con equipos y descubrir repositorios de otras personas y empresas. Y es que Github es elegido por muchas empresas y proyectos para almacenar sus repositorios de código debido a su facilidad de uso y su amplia funcionalidad. Actualmente Github es un servicio propiedad de Microsoft quien lo compró en junio de 2018 por 7.500 millones de dólares. Y si te preguntas qué es un repositorio Git. Bueno, Git es un sistema de control de versiones, que es básicamente un software que nos permite trabajar en nuestro código guardando puntos en el tiempo a los cuales poder volver en un futuro si lo necesitamos. Una explicación rápida y no muy completa por lo que si quieres profundizar más en qué es sistema de control de versiones y por qué es tan importante para un programador te recomiendo escuchar el episodio correspondiente del podcast, y si aún te quedan dudas, puedes enviarme un mensaje directo, más información en la descripción.

Aclarado entonces que es Github, podemos continuar.
Y aunque hay alternativas a Github como Bitbucket, Gitlab o incluso montar nuestro propio servidor Git, Github es la opción más popular y es en la que nos centraremos el día de hoy, pero aplica igualmente lo que veremos para cualquier alternativa.

## Buenas prácticas

Si estás empezando a programar, desde este mismo momento, deberías empezar a procuparte por adquirir unas buenas prácticas que te faciliten crecer tus proyectos si quieres o lo necesitas y te van a preparar para trabajar con otras personas en un lenguaje común y claro, y no me refiero a tener las mejores prácticas desde los primeros días, pero sí a preocuparte por irlas aprendiendo.
Y sin duda un buen hábito que es muy útil aprender pronto es a usar un control de versiones en el código que escribas y a usarlo correctamente.
 
Entre las ventajas de usar adecuadamente Github está que nos permite mostrar nuestra constancia a lo largo del tiempo que vamos programando, ver un historial de lo que hemos producido, de nuestro avance, de los lenguajes y tecnologías que hemos trabajado, y también para mostrar nuestro manejo de git y que a través de los commits y el historial de commits, puedan ver en una forma mucho más general nuestro proyecto y cómo hemos ido avanzando en él.
Otra de las ventajas es poder tener un sitio para almacenar y compartir tus proyectos, sea un proyecto pequeño o grande, que este no solo viva en tu computador personal con riesgo de perderse, sino que puedes usar Github para alojar tus proyectos y ver tu progreso en el tiempo o retomar un proyecto viejo para incorporar algo nuevo que aprendiste.

Y aunque nos interesa mostrar nuestros avances conforme vamos aprendiendo, debes tener cuidado de no usar Github simplemente para subir las tareas o asignaciones de los cursos o clases y olvidarlos por siempre, sino usarlos como un punto de partida para seguir construyendo tu conocimiento sobre ellos y darles tu toque personal adicional que los diferencie de una simple tarea.

## Consintiendo tu Github

Entonces, una buena estrategia para conseguir un Github bien cuidado es ir puliendo constantemente tu perfil, que se vea que los proyectos que montamos ahí tienen un sentido y que los vamos actualizando o que vamos mejorando su documentación para incluir detalles de qué hicimos y por qué lo hicimos y con eso demostrar una mejora constante en nuestro aprendizaje. 

Y es que debes tener en cuenta que cuando escribes código, vas transformando las ideas, o codificándolas en un lenguaje de programación que es más complejo y abstracto que el lenguaje natural, por lo que cuando quieres entender qué hace un fragmento de código debes hacer en tu cabeza un proceso inverso de decodificación para entenderlo al llevarlo de nuevo a un lenguaje natural. Ese proceso de decodificación no es gratuito, y muchas veces no es rápido ni sencillo. Es por eso que un buen proyecto debe estar documentado. La documentación es esa explicación en lenguaje natural de qué hace el código y qué no hace, sus configuraciones, limitaciones, intención de uso, entre otros detalles que están en el código pero no de una forma clara y entendible para cualquier persona que quiera acercarse a nuestro proyecto sin necesidad de que sea otro programador o que conozca el proyecto de antemano. Para documentar nuestro proyecto podemos usar un archivo README, que verán las personas que visiten nuestro repositorio, un README no es más que un archivo .md o Markdown, que nos permite escribir documentación con un formato sencillo. En él podemos también incluir detalles como los participantes, las tecnologías usadas, las motivaciones o si el proyecto sigue activo o no. Aunque es adicional al código que escribiste, el hecho de llevar una documentación ayuda a que un proyecto tenga una vida más larga ya que explica a las personas la intención del proyecto, cómo pueden correrlo en su computadora o por qué el proyecto es interesante sin necesidad de estudiar el código en profundidad.

En Github podemos tener repositorios públicos y privados. Por lo que debes tener en cuenta si el repositorio que subes tiene información que pueda ser accesible para todos o no. Por ejemplo si tienes un contrato que te impide publicar el código o si es un emprendimiento personal que no quieres exponer puedes usar un repositorio privado, al que solo tú y personas con invitación puedan acceder. Y si lo que quieres es montar un proyecto que te gustaría mostrar al mundo, por el motivo que sea, usarías un repositorio público.

Como parte del mantenimiento regular a nuestro Github debemos estar revisando nuestros repositorios para retocarlos, o también si vemos que hay un proyecto que quedó medio iniciado, o que no le vemos mucho más futuro, por lo menos no el corto plazo y queremos sacarlo de nuestra lista pública de repositorios podemos archivarlo, volverlo privado, o en últimas podemos eliminarlo, siempre teniendo en cuenta que esta última es una acción irreversible.

Adicional a esto podemos destacar o marcar como favoritos hasta 6 repositorios que serán lo que queremos que las personas vean al entrar a nuestro perfil de Github y por los que nos conozcan los demás.
Y es que no debes olvidar que Github es también una red social donde puedes conocer y conectar con otros desarrolladores, ver sus proyectos, marcarlos como favoritos, e incluso colaborar en ellos.

## Conclusión

Con esto en mente espero que empieces a profundizar en el control de versiones, una herramienta indispensable como programador, que empieces a familiarizarte con las herramientas, a tomar constancia y a escribir commits y documentación pensando en que otras personas pueden verla, sin duda esto te motivará a hacerlo un poco mejor, un poco más limpio cada vez.

Recuerda que la mejora es un proceso continuo simentado en la constancia, así que nunca es tarde para conseguir el objetivo de tener un github bien cuidado. Espero te haya gustado el capítulo.