Github forma parte del proceso de reclutamiento de la mayoría de perfiles técnicos. Además de su curriculum, Github es la carta de presentación para un desarrollador: cualquiera puede ver su nivel de código a través de una plataforma abierta.
Pero Github es una plataforma mucho más compleja que un simple escaparate de código. Se usa para que equipos de desarrollo de software trabajen de forma conjunta manteniendo distintas versiones de código. La complejidad de la herramienta, las implicaciones que tiene en la forma de hacer código, y su papel en el proceso de encontrar trabajo, hacen que profundizar mucho en Github sea troncal en ISDI Coders desde finales del año 2017. Es una materia que introducimos el primer día de curso de desarrollo web y sobre la que trabajamos cada día hasta terminar el curso.
Hay cuatro niveles de uso de Github que detallamos a continuación. En ISDI Coders llegaremos al último con nuestros alumnos.
Nivel básico: Github para el programador solitario
Muchos programadores no cuelgan su código en Github. Por razones de privacidad, no pueden hacer público el trabajo que realizan para sus empresas, pero hay otras formas de demostrar su experiencia.
Para un estudiante de ISDI Coders es una plataforma a través de la cual puede mostrar el nivel adquirido en el curso, enseñar los proyectos que ha realizado, como aprende nuevas tecnologías después del curso, etc. Es en el código donde se puede ver el nivel al que podemos llevar a nuestros estudiantes y Github es la mejor forma de enseñarlo.
En la siguiente imagen vemos el código con el que Nacho estuvo practicando Angular. Él realizó el bootcamp con React, pero quiso aprender este nuevo framework al terminar. Este código le sirvió para poder mostrar el nivel al que había llegado, su facilidad para incorporar nuevo conocimiento y conseguir un trabajo a las pocas semanas de terminar.
Para poder hacerlo, es necesario saber crear un repositorio de código y subir el código mediante comandos en el terminal del ordenador.
$ git init
$ git remote add origin urlDeGithub
$ git add rutaDeLosArchivos
$ git commit -m "Éste es mi código!"
$ git push
Hasta aquí podemos ver el uso que un programador solitario podría hacer de la herramienta. Si tu objetivo es ser un programador autónomo, llegar a este punto es suficiente:
-
- crear tus repositorios remotos y locales
-
- mantener distintas versiones de tu trabajo.
La mayoría de escuelas que introducen Github en sus temarios llevan hasta este punto a sus estudiantes. Si tu objetivo es trabajar en un equipo de desarrollo, debes explorar la herramienta en todo su potencial. Para ello, durante los cursos de ISDI Coders llegamos más lejos en Git.
Nivel intermedio: trabajar a partir del código de otros
Algunas escuelas utilizan Github para que los estudiantes se descarguen plantillas de ejercicios durante el curso. Es un paso importante para ser consciente que un programador puede utilizar código de otros. Saber trabajar en distintas versiones de un código y mantenerlo ordenado significa un gran paso en la complejidad del uso de Github.
El siguiente paso es coordinar un proyecto donde haya distintos programadores trabajando en un mismo código.
Nivel alto: otros opinan sobre tu código
El siguiente nivel implica que los alumnos son los responsables de gestionar la integridad del código común. Necesitamos que nuestros alumnos no solo sepan hacer código sino que sepan hacerlo de la forma que la industria espera. Al salir de ISDI Coders deben conocer la forma profesional de hacer código y, para ello, Github es una «excusa» muy útil para que entiendan que otros van a trabajar sobre su código.
En un primer nivel, es importante colaborar con el código de los compañeros, sugiriendo mejoras y revisando su funcionamiento. Es una práctica habitual durante el curso el tener que revisar el código de otro. Programar al lado de un compañero se llama pair programming (programar en parejas), pero saber hacerlo con Github como plataforma colaborativa es un paso más en esta forma de trabajar. Esto permite a nuestros alumnos poder trabajar en equipos más grandes o con compañeros en remoto.
Algunos de nuestros alumnos trabajan en compañías donde el code review está a la orden del día. Ningún código nuevo avanza en el proceso hacia producción si no tiene un determinado número de revisiones y aceptaciones por parte de otros programadores. el proceso es, aparentemente, más lento, pero asegura la reducción de errores a medio y largo plazo.
Nivel pro: todos trabajando con el mismo código
El trabajo común entre distintos miembros de un equipo formará parte del día a día de nuestros alumnos cuando llegan al mercado laboral. Necesitamos prepararles para que, en su primer día de trabajo, nuestros estudiantes dominen todo el flujo de trabajo de Github:
-
- Entender la estructura del código
-
- Crearse una rama de trabajo
-
- Ser capaces de bajarse el código a sus máquinas
-
- Poder realizar su trabajo y subir sus propuestas al repositorio común
-
- … sin romper el trabajo de todos
-
- Gestionar los conflictos que generan las distintas versiones.
La gestión de sus repositorios de código locales y remotos debe hacerse con comandos desde el terminal, para ganar velocidad y productividad.
Saber visualizar y controlar el estado del código de las distintas personas que trabajan juntas es importante. Así podemos distribuir el trabajo, asegurarnos que los cambios de uno no se solapan con los cambios de otro, y conseguir avanzar más deprisa juntos. Aquí podemos encontrarnos con una de las principales dificultades. Para ello no solo es necesario saber utilizar comandos como fork
(para trabajar en una nueva versión), pull
request
(para pedir al propietario que revise los cambios), fetch
(bajar las nuevas versiones a tu máquina), merge
(combinar las distintas versiones) sino entender como se gestionan las distintas versiones y los conflictos.
Habiendo practicado Github a este nivel, nuestros alumnos pueden entrar en cualquier empresa y ser productivos desde el primer día, haciéndoles juniors con un plus.