Skip to content

Latest commit

 

History

History
337 lines (223 loc) · 17 KB

onboarding_0.md

File metadata and controls

337 lines (223 loc) · 17 KB

image

🚀 Onboarding Mission

1. ⭐️ Detalles image

🗺 Mapa de navegación

  1. ⭐️ Detalles: Aquí encontrarás la descripción del propósito de esta práctica.
  2. 🔥 Checkpoint: Sección de la parte práctica descrita paso a paso. En las mentorías vamos a profundizar en esto.
  3. 📕 Refencias: Listado de referencias para profundizar en algunos temas de la misión.

⭐️ Objetivo

Conocer y discutir la importancia de las herramientas básicas del desarrollo de software y porque debemos invertir tiempo en dominarlas.

🏆 Aventuras por descubrir

  • 🎯 Explorar los usos y entender los conceptos del control de versiones Git.
  • 🎯 Uso de GitHub como plataforma para hospedar código, Pull Requests y Forks.
  • 🎯 Elaboración de un blog propio.
  • 🎯 Contribución a un repo a través de un Pull Request.

🎁 Entregables

  • 🎁 Crear tu blog personal y agregar los primeros dos post.
  • 🎁 Enviar tu primer PR a un repositorio de GitHub.
2. 🔥 Checkpoint image

La importancia de las herramientas en el desarrollo de software

You're here because you know you can become a better developer and help others become better as well. What distinguises Pragmatic Programmers? We feel it's an attitude, a style, a philosophy of approaching problems and their solutions. 📕 The Pragmatic Programmer

Las herramientas son parte esencial de cualquier profesión. Nos ayudan a ahorrar tiempo, esfuerzo, facilitar y mejorar nuestra ejecución. En desarrollo de software suele darse mayor importancia a la solución lógica de problemas mediante código, y normalmente el uso y dominio de herramientas es algo que se considera obvio.

Si bien la solución lógica es muy importante, no podría llevarse a la ejecución sin herramientas, por lo que su dominio y practica también impactan en la forma en cómo encontramos las soluciones. Es por esto que te recomiendo mucho invertir tu tiempo en conocer tus herramientas principales.

¿Cuáles considerarías que son las herramientas de un desarrollador de software?

  1. 📍 Conocer tu Sistema Operativo a través de la Línea de Comando.
  2. 📍 Comprender el sistema de control de versiones (guiño, guiño, git y GitHub).
  3. 📍 Uso de tu editor de texto favorito y sus plugins.

Las siguientes exploraciones son una guía de objetivos y temas que deberás revisar como recomendación y complemento de tu aprendizaje.

Sistema Operativo y la línea de comando

Existen diferentes SO, sin embargo para este acompañamiento haremos énfasis en el uso de los sistemas *nix. (Unix y Linux)

Si ya usas un SO basado en linux como Ubuntu, Fedora, CentOS, o bien en Unix como MacOS o Solaris, bastará con abrir la terminal que viene por defecto. Si estas en windows puedes instalar y usar el subsistema de linux.

🗒 Nota: Esto lo puedes realizar en tu línea de comando, o bien en la siguiente web: https://bellard.org/jslinux/.

Es muy importante tener claro algunos conceptos:

  • 💡 Sistema de archivos de Linux/Unix.
  • 💡 Qué es una Shell/Terminal y diferentes tipos de terminales.
  • 💡 Mover la ubicación de tu shell a directorios específicos.
  • 💡 Manipulación de archivos por línea de comando: crear, modificar, eliminar, mover.
  • 💡 Listar archivos y ver su contenido.
  • 💡 Instalación de programas desde la línea de comando.

📌 Lista de comandos prácticos

- man
- uname
- whoami
- cd
- ls
- mkdir
- touch
- cat
- echo
- rm

Editor de Texto

Aunque parezca una obviedad, es necesario señalar la importancia de un buen editor de texto. Aunque tenemos IDE's sofisticados y herramientas como GitHub Copilot, para nuestro viaje necesitaremos usar un editor de texto y nada más.

Recomiendo evitar los IDE's de momento, ya que a veces su autocompletado ayuda tanto que te obliga a omitir ciertas partes importantes.

Te recomendamos elegir el editor de texto de tu preferencia:

Aquí es una cuestión practica y de gusto, opta por probar la lista, o probar otros que te interesen aunque no estén listados. Y revisa sus opciones de plugins, que te brindarán más herramientas.

Control de Versiones

Cualquier desarrollador de software necesita de un control de versiones. Aunque existen varias alternativas, la más usada y común es git. Comúnmente se suele confundir que git es lo mismo que GitHub, es muy importante aclarar que son dos conceptos diferentes y complementarios que usaremos en nuestro día a día.

Para este viaje necesitarás:

Sobre git es necesario que puedas hacer esto por tu cuenta usando solo comandos de git:

  • 💡 Instalar git localmente y agregar tu usuario (nombre y correo).
  • 💡 Comprender qué es el branch principal (master o main).
  • 💡 Crear y eliminar un nuevo repositorio local en un directorio.
  • 💡 Entender cómo opera git, a través de los stages: working area, staging, local repository & remote repository.
  • 💡 Realizar un commit: comandos add y commit.
  • 💡 Ver el log de commits.
  • 💡 Ver el contenido de un commit.
  • 💡 Realizar rollback sobre un commit en particular.
  • 💡 Crear tu llave ssh y agregarla a GitHub.
  • 💡 Crear un repositorio en GitHub y descargarlo a tu equipo local.
  • 💡 Actualizar el repositorio remoto push.
  • 💡 Actualizar tu repositorio local pull.

Si no sabes nada de esto, no te preocupes, entra a la mentoría porque ahí desarrollaremos estos temas.

Realiza la siguiente práctica:

Herramientas que vamos a usar:

Antes de comenzar a realizar lo siguiente, lee y comprende los pasos a seguir.

1) Realiza un fork del proyecto.

El repo original es un proyecto creado y configurado con GoHugo para ti.

Ve al siguiente repo en GitHub y hazle un fork: https://github.com/visualpartnership/super-duper-memory Esto deberá crear una copia de este repositorio en tu cuenta de GitHub para uso personal. Recuerda esta es una copia para ti.

Untitled

El fork que acabas de crear es una copia para ti, este será el blog que montarás y llenarás de contenido en nuestras sesiones.

2) Activa GitHub Pages y obtén la url donde publicarás tu blog.

Habilita GitHub Pages, para ello ve a Settings y del lado izquierdo selecciona Pages. Obtén la url del sitio que te da de la siguiente forma:

Recuerda seleccionar master como el branch principal y la carpeta docs. Sigue lo siguiente:

week1-2

Reserva la url, espera unos minutos y si entras por tu navegador podrás ver algo así (esto puede tardar un tiempo en mostrarse):

image

Esto se ve así porque el proyecto no esta configurado correctamente.

3) Modifica la configuración.

Regresa al repo de tu fork, da click sobre el archivo conf.toml y modifica los valores mostrados con tu información y tu url. No olvides guardar este cambio con un commit.

week1-3

Ahora agregaremos tu información personal en los archivos de data/social.json y data/social.json, a continuación te muestro cómo:

week1-3-2

4) Agrega un GitHub Action para construir tu blog y publicarlo.

Haremos uso de GoHugo para publicar el blog. Todo este archivo es un proyecto hecho con esta herramienta, mediante un GitHub Action construiremos el sitio y lo podrás ver en tu url.

Copia el siguiente contenido:

name: Build Personal Blog
on: push

jobs:
  build:

    name: Build and update website
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true
        fetch-depth: 0
    - name: Setup GoHugo
      uses: peaceiris/actions-hugo@v2
      with:
        hugo-version: '0.92.0'
    - name: Commit Update
      run: |
        echo ":: Eliminando versión previa ::"
        rm -rf docs
    - name: Build drafts
      run: hugo -D
    - name: Commit Update
      run: |
        echo ":: Renombrando nueva version ::"
        mv public/ docs/
        git config --global user.email "launchx@innovaccion.mx"
        git config --global user.name "Launch X Backend Node JS"
        git add .
        git commit -m "GitHub Actions: Build ok"
    - name: Push changes
      uses: ad-m/github-push-action@master
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        branch: ${{ github.ref }}

Aquí puedes ver este mismo snippet de código: GitHub Action yml

Ve al repo, y crea el siguiente archivo: .github/workflows/build_launchx_blog.yml y ahí pega el contenido anterior. Guarda tus cambios con un commit.

week1-4

Al guardar esto, enseguida ve a la pestaña de Actions y verás algo así, esto quiere decir que dos jobs se están ejecutando: la construcción del proyecto de Hugo y la publicación de GitHub Actions.

image

Una vez que los indicadores amarillos pasen a verde, visita de nuevo el sitio web:

image

5) Modifica la descripción.

Modifica la descripción que aparece en la página de tu nuevo blog. Agregar una descripción de ti, y haz un listado de tus propias expectativas de aprendizaje para este módulo de Backend en Launch X.

Para esto modifica el archivo en content/_index.md

week1-5

NOTA: Al guardar estos cambios con un commit, automáticamente GitHub Actions ejecutará los dos jobs para construir el proyecto y publicarlo en GitHub Pages. Por lo que resta decir que cualquier cambio desde aquí ejecutará inmendiatamente ambos procedimientos. Puedes ver la pestaña de Actions y cuando los indicadores estén en verde, puedes visitar tu sitio actualizado.

6) Agrega el contenido de tu primer post: La cultura en el desarrollo de software.

Es tiempo de agregar el primer post de tu blog. Modificaremos el archivo markdown que ya esta ahí.

Piensa en la cultura de un profesional de software y redacta a tu manera un post donde nos muestres qué valores, prácticas, sentimientos, emociones, y demás, valoras en un desarrollador de software.

Agrega ese contenido en el post, usando el formato markdown, de la siguiente forma:

week1-6

Al guardar tus cambios, podrás ver tu nuevo post en la sección de posts:

image

7) Agrega un nuevo blog post: Mi ruta de aprendizaje.

Ve a la siguiente carpeta en content/posts/ 📁. Ahí crea un nuevo archivo y nombralo post_1.md. Copia el siguiente template de markdown y sustituye los valores, pon la fecha actual, un título y una descripción adecuada.

---
title: "Título de tu blog post"
date: 2022-03-01
description: 'Descripción de tu blog post'
---

Hey! Este es el contenido del nuevo post, borra esto y llena tu contenido.

Aquí podrás agregar todo el contenido en formato markdown que necesites para escribir tu segundo blog post.

Escribe un recuento de todo lo que has aprendido en Launch X desde la semana de inducción, hasta el módulo de Frontend. El cielo es el límite, puedes contarnos qué te ha gustado más, qué te ha gustado menos, qué te ha parecido más difícil. Recuerda que comunicar es una habilidad que se desarrolla con mucha práctica y tiempo.

Al agregar el contenido, guarda con un commit y espera a que el build del GitHub Actions termine para ver tus cambios en la página. Si esto pasa y no ves tus cambios, borra las cookies, o bien abre tu blog en una ventana de incógnito.

week1-7

Plus ⭐️

Puedes agregar una descripción de ti en content/pages/about.md.

8) Comparte tu nuevo blog en LaunchX.

Para tener un lugar donde ver los blogs creados en esta sesión tendrás que actualizar un repositorio de GitHub que no es tuyo, para esto nos sirven los Pull Request.

CREA UN FORK

  • 📌 Ve al siguiente repositorio de GitHub 🔗
  • 📌 Crea una copia de ese proyecto en tu cuenta. Para esto da click en el botón de fork.
  • 📌 Copia esta línea, pon tu nombre, pon tu username de GitHub, y agregar el link a tu blog:
| Nombre del Explorer | [Blog de @explorer](https://carlogilmar.xyz/blog/) |
  • 📌 En el archivo readme.md en la línea 12 agregar la línea de arriba con tus datos y guarda con un commit.

week1-8

MANDA TU PRIMER PR

  • 📌 Regresa al repositorio de GitHub 🔗
  • 📌 Ve a la pestaña de Pull requests y da click en el botón verde New pull request
  • 📌 Da click en el link azul que dice compare across forks y debajo cambiarán las opciones
  • 📌 Da click en el botón que inicia con head repository y elige el repositorio que inicie con tu usuario.
  • 📌 Al seleccionar tu fork, verás los cambios hechos, que deberán ser solo una línea. Da click en el botón verde Create pull request
  • 📌 Agrega una descripción, y da click en el botón verde Create pull request
  • 📌 Listo, una vez creado tu blog post espera a que el maintainer del repositorio original lo acepte.

week1-10

En este repo podrás ver las contribuciones de tus compañeros.

Revisa la primera sección de esta Weekly Mission y corrobora que se ha cumplido el objetivo y los logros. Si tienes dudas asiste a las mentorías y participa en los foros.

El envío de tu Pull Request con el link a tu blog con los posts solicitados será la entrega de esta sesión.

Es necesario aclarar que es mucho lo que hemos desarrollado aquí, pero no es necesario que lo domines al 100%, es importante dedicarle tiempo a esto porque serán nuestras herramientas en las próximas semanas. A lo largo de las siguientes Weekly Missions usaremos los conceptos de esta sesión, por lo que será un requisito necesario para comprender los temas que veremos, así como los iremos retomando y practicando varias veces.

3. 📕 Referencias image

Si te quedaste con ganas de más, te dejo algunos enlaces a sitios donde podrás apoyarte y profundizar el contenido de esta sesión: