<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lara Díaz</title>
    <description>The latest articles on DEV Community by Lara Díaz (@selene_l21).</description>
    <link>https://dev.to/selene_l21</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F458719%2Ff719307a-db1f-4480-83c9-53fee56e9e88.jpg</url>
      <title>DEV Community: Lara Díaz</title>
      <link>https://dev.to/selene_l21</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/selene_l21"/>
    <language>en</language>
    <item>
      <title>GOTTA GO FAST!</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Thu, 28 Nov 2024 19:55:16 +0000</pubDate>
      <link>https://dev.to/selene_l21/gotta-go-fast-4cb2</link>
      <guid>https://dev.to/selene_l21/gotta-go-fast-4cb2</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2u1umsaynz6c1t5ffxw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2u1umsaynz6c1t5ffxw.gif" alt="windows xp" width="220" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Allá por el año 2005, uno de mis profes de informática nos dijo que la mayoría de los estudiantes abandonan una página si demoraba más de 12 segundos en cargarse. Esto se quedó conmigo por mucho tiempo, pero le empecé a prestar más atención en los últimos 2 años, desde que di la charla de Web Vitals en la WebConf.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsq09304v9mfeq70f1fw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsq09304v9mfeq70f1fw.gif" alt="scrolling" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hoy en día, las personas tienen una capacidad de atención extremadamente corta donde necesitamos el acceso a contenido de forma rápida y constante. No solo por la cantidad de contenido sino también por cómo avanzó la tecnología. Debido a esto, los desarrolladores web deben obsesionarse con el rendimiento de la carga inicial de la página. Porque, spoiler alert: cuando tu sitio es lento, tus usuarios se van.&lt;/p&gt;

&lt;p&gt;Repasemos un cachito antes de seguir, por si no fueron a la WebConf:&lt;br&gt;
Google usa las métricas de Core Web Vitals para determinar el ranking de tu sitio.&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Qué son los Core Web Vitals?
&lt;/h3&gt;

&lt;p&gt;Son métricas que miden la experiencia del usuario en términos de velocidad, interactividad y estabilidad visual. Por ejemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2c03wtzn6jc9q5i3j55.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi2c03wtzn6jc9q5i3j55.png" alt="web core vitals" width="800" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LCP (Largest Contentful Paint):
Mide cuánto tarda en aparecer lo más importante de la página (como una imagen grande o un título).&lt;/li&gt;
&lt;li&gt;FID (First Input Delay):
Mide cuánto tarda la página en responder al primer clic o interacción del usuario.&lt;/li&gt;
&lt;li&gt;CLS (Cumulative Layout Shift):
Mide si los elementos de la página se mueven inesperadamente mientras carga.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Por qué importa el rendimiento
&lt;/h3&gt;

&lt;p&gt;Ahora, ¿por qué debería importarte el rendimiento en el frontend? Bueno, te doy algunas razones rápidas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Los usuarios odian esperar. Si tu página tarda más de 3 segundos en cargar, más del 50% de las personas se van.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google también odia la lentitud. Las métricas de Web Vitals son clave para el SEO.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Afecta tu negocio. Un retraso en la carga de la app puede reducir las ventas.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;¿Te convencí? Bien. Sigamos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Optimización de recursos
&lt;/h3&gt;

&lt;p&gt;El primer paso es reducir el tiempo de carga de los recursos.&lt;/p&gt;

&lt;h4&gt;
  
  
  Imágenes
&lt;/h4&gt;

&lt;p&gt;¿Sabías que las imágenes suelen ser el recurso más pesado en una página? Usa formatos modernos como WebP para ahorrar espacio sin perder calidad, y no cargues todas las imágenes de golpe: aplica lazy loading para que se descarguen solo cuando el usuario las necesita.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2dlb7ob6wu4un1ab9r8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2dlb7ob6wu4un1ab9r8.png" alt="Image optimization" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Fuentes
&lt;/h4&gt;

&lt;p&gt;¿Te encantan las fuentes personalizadas? A mí también. Pero pueden ser un problema. Limita la cantidad de fuentes que usas, precarga las esenciales, y considera usar fuentes del sistema si es posible.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhsxnwc6hekyiixzwi1o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuhsxnwc6hekyiixzwi1o.png" alt="fonts optimization" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Videos
&lt;/h4&gt;

&lt;p&gt;Si tienes videos en tu sitio, asegúrate de optimizarlos. Usa placeholders en lugar de cargarlos inmediatamente y, si se puede, mejor incrustarlos desde servicios externos como YouTube.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ngw8whx0gwrot96zark.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ngw8whx0gwrot96zark.png" alt="video optimization" width="800" height="513"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Técnicas de carga eficiente
&lt;/h3&gt;

&lt;p&gt;Aquí es donde las cosas se ponen interesantes. Hay un montón de formas de mejorar cómo y cuándo se cargan los recursos de tu página.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos el siguiente ejemplo que queremos optimizar:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqvusqthti6d1rzuqzo5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqvusqthti6d1rzuqzo5.png" alt="ejemplo 1" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code Splitting: divide tu JavaScript en partes más pequeñas y carga solo lo necesario.
Por ejemplo, usa un loader que importe los componentes de forma asincrónica, permitiendo que se carguen solo cuando se accede a la ruta.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5x2tigt3ho8vfcsengi7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5x2tigt3ho8vfcsengi7.png" alt="ejemplo Code Splitting" width="800" height="1112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lazy Loading: aplica esta técnica a todo lo que puedas: imágenes, scripts, componentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1eo7bxwc6g0htshitoe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1eo7bxwc6g0htshitoe.png" alt="ejemplo Lazy Loading" width="800" height="1283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prefetching: carga recursos que el usuario podría necesitar más adelante, antes de que los pida.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgg20r2fmqzyfhjub6dv9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgg20r2fmqzyfhjub6dv9.png" alt="ejemplo Prefetching" width="800" height="1134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reducción de JavaScript
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86dkzzfetm7mdj8vzrv2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F86dkzzfetm7mdj8vzrv2.jpg" alt="one does not simply just get rid of js" width="651" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JavaScript es genial, pero demasiado puede ser un problema. Tree Shaking elimina del código final las partes que no se usan, como funciones o módulos. Utiliza herramientas como Webpack o Rollup para analizar el código y detectar automáticamente lo que realmente se necesita, haciendo que las aplicaciones sean más ligeras y rápidas.&lt;br&gt;
Puede que tu framework ya esté haciendo esto por ti si usas Next o Angular Universal.&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos este archivo products.js en la carpeta Utils&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fny68ypxvqev795j03cgk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fny68ypxvqev795j03cgk.png" alt="code example" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pero en el archivo cart.js solo llamamos dos funciones del archivo products.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e686ouzc801rtr6589m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e686ouzc801rtr6589m.png" alt="code example 1" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lo que se buildeara sera solo el codigo utilizado, descartando las funciones que no estamos llamando en cart.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fafou7mara5x7rn70fv6n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fafou7mara5x7rn70fv6n.png" alt="code example 3" width="800" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Caché
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uvvk6wb6iovuzl6hrrp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1uvvk6wb6iovuzl6hrrp.png" alt="cache image" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Usar el caché del navegador es como darle al usuario un atajo. Configura tus recursos estáticos para que no se descarguen cada vez que alguien visite tu página. Puedes usar el almacenamiento local del navegador (localStorage) o el almacenamiento en memoria para guardar datos como productos, detalles del carrito o páginas cargadas previamente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmo2k3r0zhddi6wwkxso2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmo2k3r0zhddi6wwkxso2.png" alt="code example 4" width="800" height="663"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhbk6tx4vwak8klbogyt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhbk6tx4vwak8klbogyt1.png" alt="code example 5" width="800" height="748"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  SSR, SSG y CSR
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdwwqctcu02gsz21gy2z.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsdwwqctcu02gsz21gy2z.gif" alt="cooking nightmare" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mientras buscamos diversas formas de optimizar el rendimiento, debemos contemplar también tres estrategias: SSR (Server-Side Rendering), SSG (Static Site Generation) y CSR (Client-Side Rendering).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SSR: el servidor genera el HTML completo en el momento en que el usuario visita la página.&lt;br&gt;
Es como un chef que cocina todo a último momento. Si hay muchas órdenes, se puede saturar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SSG: genera las páginas de HTML durante el tiempo de compilación.&lt;br&gt;
Es como si preparara todo por adelantado para tenerlo listo en cuanto se lo pidan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CSR: el servidor envía un documento HTML vacío (o casi vacío) al navegador, junto con un montón de JavaScript, que construye la interfaz completa directamente en el navegador.&lt;br&gt;
Es como si te dieran los ingredientes y una receta, y te dijeran: "cocínalo tú mismo".&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;¿Cuándo usar cada uno?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SSR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cuando necesitas datos dinámicos que cambian por usuario (carritos de compra, dashboards, resultados de búsqueda).&lt;/li&gt;
&lt;li&gt;Cuando el SEO es fundamental para contenido cambiante.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SSG:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para sitios con contenido que cambia poco o de forma predecible (blogs, landing pages, documentación), aprovechando la caché para entregar contenido extremadamente rápido.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CSR:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cuando necesitas una experiencia interactiva, como en dashboards o aplicaciones complejas.&lt;/li&gt;
&lt;li&gt;Nota: puede necesitar complementos para mejorar el SEO o reducir el tiempo de carga inicial.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Optimizando llamadas a la API
&lt;/h3&gt;

&lt;p&gt;No solo mejoramos el rendimiento y la interacción desde el front, también debemos prestar atención a cómo nos comunicamos con el back. Optimizar la forma en la que hacemos requests es esencial para mejorar la performance, ya que podemos crear cuellos de botella, incrementar la demora de respuesta y sobrecargar el servidor.&lt;/p&gt;

&lt;p&gt;Qué podemos hacer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Batching: combinar varias solicitudes en una sola. En vez de mandar múltiples requests, agrúpalas en una sola llamada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frf025yvi4lgea1w42xof.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frf025yvi4lgea1w42xof.png" alt="code example 4" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Desde el front podemos hacer:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmv7ohuosww5arp3isi1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmv7ohuosww5arp3isi1.png" alt="code example 5" width="800" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y desde el back si tenemos acceso y podemos modificarlo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt4k3bo25m6esnsut0bh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flt4k3bo25m6esnsut0bh.png" alt="code example 6" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Caching: guardar datos comunes en memoria/local (como mencionamos antes, pero en este caso cacheamos data en vez de assets).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lazy loading: cargar datos solo cuando son necesarios, igual que con las imágenes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Herramientas para medir y mejorar
&lt;/h3&gt;

&lt;p&gt;Ahora que ya sabes qué hacer, necesitas herramientas para saber si estás haciendo las cosas bien. Mis favoritas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chrome DevTools: una herramienta esencial para identificar cuellos de botella en el rendimiento de tu sitio. Con su pestaña Performance, puedes analizar qué tareas están tardando más de lo necesario, como la ejecución de scripts o el renderizado de elementos.&lt;br&gt;
Además, Throttling te permite simular condiciones reales como conexiones lentas o dispositivos menos potentes, ideal para diagnosticar problemas en escenarios del mundo real.&lt;br&gt;
Finalmente, Lighthouse no solo te da un puntaje de rendimiento, sino que también ofrece recomendaciones claras y accionables para mejorar métricas clave como LCP, FID y CLS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WebPageTest: para analizar el tiempo de carga desde diferentes ubicaciones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UnLighthouse: una herramienta de código abierto que ejecuta informes de Lighthouse en todas las páginas de tu sitio web de manera paralela.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusión
&lt;/h3&gt;

&lt;p&gt;El rendimiento en el frontend no es solo un tema técnico. Si tu sitio no es rápido, pierdes usuarios, dinero y oportunidades. Pero lo bueno es que con pequeños cambios puedes marcar una gran diferencia.&lt;/p&gt;

&lt;p&gt;Mi consejo final: no intentes hacer todo a la vez. Empieza con un cambio. Optimiza esas imágenes pesadas o elimina scripts innecesarios.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>performance</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Optimizando tu día laboral: creando Comandos.</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Wed, 15 May 2024 16:33:06 +0000</pubDate>
      <link>https://dev.to/selene_l21/optimizando-tu-dia-laboral-creando-comandos-2jaa</link>
      <guid>https://dev.to/selene_l21/optimizando-tu-dia-laboral-creando-comandos-2jaa</guid>
      <description>&lt;p&gt;Cuando comenzamos en un proyecto, muchas veces tenemos que levantar varios repos, Docker, bases de datos, etc. y se vuelve bastante tedioso andar escribiendo y abriendo tabs en la terminal. &lt;/p&gt;

&lt;p&gt;No sé ustedes, pero más de una vez me quedé dormida el día que tenía que dar una demo y ya se pueden imaginar, tartamudeando medio dormida en inglés mientras trataba de setear todo para poder compartir pantalla. &lt;/p&gt;

&lt;p&gt;Y casi como Pepe grillo, lo tenía a Santi diciéndome: “Si te hubieses configurado los aliases, en dos segundos tendrías todo listo.” &lt;/p&gt;

&lt;p&gt;Antes de poder explicarles como crear sus propios comandos hay que empezar por el principio y ver algunos conceptos. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frl7t4if5xpspv7q6p3lq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frl7t4if5xpspv7q6p3lq.png" alt="Disclaimer" width="293" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DISCLAIMER ESTA CHARLA ESTÁ ORIENTADA A MAC, LINUX O WSL. SORRY WINDOWS&lt;/p&gt;

&lt;h3&gt;
  
  
  ¿Qué es un SHELL?
&lt;/h3&gt;

&lt;p&gt;Un sistema operativo hace uso de programas que se encargan de interpretar los comandos que introduce el usuario en una terminal y realizan las acciones en respuesta. Estos programas se denominan SHELL (Intérprete de Comandos).   &lt;br&gt;
Existen varios tipos, pero los más utilizados son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bsh:&lt;/strong&gt; bourne SHELL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bash:&lt;/strong&gt; bourne again SHELL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zsh:&lt;/strong&gt; Z SHELL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Los SHELL admiten comandos que pueden ser archivos o funciones ejecutables, por lo que cada usuario puede construir archivos combinando comandos base de Linux, paquetes de npm o ciertas estructuras especiales que le permita ser ejecutados desde una terminal.&lt;/p&gt;

&lt;p&gt;Voy a asumir que usan la terminal y conocen algunos de los comandos básicos como &lt;strong&gt;ls&lt;/strong&gt; para listar archivos y carpetas, &lt;strong&gt;cd&lt;/strong&gt; para movernos entre los directorios y &lt;strong&gt;rm&lt;/strong&gt; para borrar archivos o directorios. &lt;/p&gt;

&lt;h3&gt;
  
  
  PROGRAMACIÓN DEL SHELL
&lt;/h3&gt;

&lt;p&gt;El SHELL puede aceptar no solo órdenes simples, desde la línea de comandos, sino también secuencia de órdenes, grupo de órdenes y órdenes condicionales. &lt;br&gt;
Piensen que un SHELL es como Node, pero en vez de interpretar JavaScript interpreta el lenguaje de comandos.&lt;/p&gt;

&lt;p&gt;Permite construir programas y comandos llamados SHELL SCRIPTS que nos dejan automatizar diversas tareas. &lt;/p&gt;

&lt;p&gt;Yo uso como SHELL ZSH, que tiene un archivo para configurar que se llama .zshrc. ¿Qué tengo acá, aparte de los comandos? Personal tokens de GitHub, credenciales de mi trabajo, y alguna que otra configuración para el theme de la terminal.&lt;/p&gt;

&lt;p&gt;Lo más importante para empezar a escribir comandos es que creemos un archivo, en este caso se va a llamar .ZSH_ALIASES en la misma carpeta donde tenemos el .zshrc que suele estar en la carpeta user. ¿Por qué? Como lo tenemos que llamar en ese archivo, entonces lo vamos a importar escribiendo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyf4d7ulmnf902id5kxx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyf4d7ulmnf902id5kxx.png" alt="Como importar el archivo de aliases" width="640" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;¿Y ahora podemos empezar a escribir, no? Acá me topé con un par de cosas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;En mi proyecto para abrir una de las apps dependo de otra para loguearme. ¿Cómo hago para que se levanten en simultáneo usando la misma tab?&lt;/li&gt;
&lt;li&gt;Tenemos distintas versiones de node en cada repo y lo tengo que setear antes de correrlo. &lt;/li&gt;
&lt;li&gt;Tengo que levantar Docker porque si no, no tengo data.&lt;/li&gt;
&lt;li&gt;¿Cómo quiero que se abra? ¿Todo en una misma tab o quiero que cada proceso se abra en una tab distinta?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mientras yo me hacía estas preguntas, una vocecita me decía: “Vos no usas todos los containers de Docker, si necesitas ver los logs de uno solo ¿cómo haces?”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbf8x8k3ncpeo7j2uzybd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbf8x8k3ncpeo7j2uzybd.gif" alt="Bugcat Capoo error" width="700" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y para que no anden googleando o discutan con &lt;a href="https://twitter.com/spersico"&gt;Santi&lt;/a&gt; en Twitter (o X, ya no tengo idea), 3 horas para encontrar la respuesta, se las doy yo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalar concurrently para poder correr comandos al mismo tiempo compartiendo la misma tab.
-  ttab -  Abre una nueva tab en la terminal (se recomienda en macOS instalarlo con brew). &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ya contenta de que tenía todo listo para arrancar, escribí mi primera función ^^&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8jkmfu8xkuypu7gxhtsw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8jkmfu8xkuypu7gxhtsw.png" alt="Mi primera funcion" width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Navegamos hasta la carpeta, &lt;strong&gt;nvm&lt;/strong&gt; para setear la versión de node, &lt;strong&gt;npx&lt;/strong&gt; para que instale concurrently si no lo encuentra, &lt;strong&gt;-k&lt;/strong&gt; para que corte todos los procesos cuando hacemos &lt;strong&gt;ctrl+c&lt;/strong&gt; y &lt;strong&gt;yarn&lt;/strong&gt; para que levante el proyecto (Nosotros necesitamos levantar dos en simultáneo)&lt;/p&gt;

&lt;p&gt;Todo muy lindo, muy lindo hasta que voy a la terminal y veo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbinb0o5mtnm7xwzleg3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbinb0o5mtnm7xwzleg3t.png" alt="Error en consola" width="800" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Revisé el archivo, el import, todo y no daba con la tecla de porque no andaba. &lt;/p&gt;

&lt;p&gt;Quiero que quede claro que esto fue hecho a propósito para el ejemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawe0yttsz6avzdqac7bk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawe0yttsz6avzdqac7bk.png" alt="autogenerando errores en el alias" width="800" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resulta que no le gustan los espacios, así que &lt;strong&gt;NO DEJAR ESPACIOS ENTRE EL = Y EL COMANDO DEL ALIAS&lt;/strong&gt; (Esto no estaba en Google).&lt;/p&gt;

&lt;p&gt;Sigamos, con respecto a lo de Docker, se solucionó de la siguiente forma: &lt;/p&gt;

&lt;p&gt;Esa &lt;strong&gt;-d&lt;/strong&gt; significa &lt;strong&gt;detach&lt;/strong&gt;. Levanta el container y lo corre en segundo plano dejando que el segundo conteiner que no tiene el &lt;strong&gt;-D&lt;/strong&gt; corra en la ventana de la terminal y podamos leer los logs (que en este caso es lo que me interesaba) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiyu5uov560wnru9dbuli.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiyu5uov560wnru9dbuli.png" alt="Funcion para levantar docker" width="800" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ya casi terminamos, lo prometo. Ahora como hago para correrlo todo de un solo comando?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit3qpbknkzi5gze1nob8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit3qpbknkzi5gze1nob8.png" alt="comando final" width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ttab -a iTerm2 es un comando predeterminado de ttab para los que tienen iTerm2.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;El nombre de la función o funciones que declaramos antes, en este caso la de Docker y la del proyecto que son las que uso día a día. Y ahora sí corro el comando frontendUp, que me levanta en dos tabs distintas cada comando (en una docker y en otra las dos apps)&lt;/p&gt;

&lt;p&gt;En conclusión, si bien me llevó un par de días de investigación, es una buena forma de optimizar el comienzo del día laboral y de paso renegamos con otra cosa que no es JS. &lt;/p&gt;

&lt;p&gt;Muchas gracias y vuelva prontos. &lt;/p&gt;

</description>
      <category>bash</category>
      <category>programming</category>
      <category>productivity</category>
      <category>learning</category>
    </item>
    <item>
      <title>Laburanding: como trabajar para afuera</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Thu, 24 Feb 2022 15:08:15 +0000</pubDate>
      <link>https://dev.to/selene_l21/laburanding-como-trabajar-para-afuera-2ojc</link>
      <guid>https://dev.to/selene_l21/laburanding-como-trabajar-para-afuera-2ojc</guid>
      <description>&lt;p&gt;Bueno la idea de esta charla surge un poco de mi experiencia trabajando remoto con una empresa de afuera y de comentarios/consejos que fueron saliendo de dailys y charlas con amigos/colegas. &lt;br&gt;
Les voy a hablar de mi experiencia, lo que yo hice y lo que a mi me sirvio, no lo tomen como que es palabra santa 😅&lt;br&gt;
Mi carrera en It comienza en febrero 2020 en una start up de aca de cba donde solo fui a la oficina dos semanas antes de encerrarme en casa, donde me pasé año y medio corriendo, durmiendo poco y ganándome un burn out por no saber parar. A esto sumemosle que me largue a dar clases de programación (gracias docta por el aguante) y conseguí mi primer laburo para USA.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;👉Ahora vamos por partes diría Jack:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Como con tan poca experiencia conseguí trabajar para USA? &lt;br&gt;
Esto se dio gracias a una sumatoria de cosas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manija -&amp;gt; Tengo la “suerte” que herede la locura de estudiar y sentarme por horas a investigar y leer de mi vieja y eso me permitió aprender bastante en poco tiempo. &lt;/li&gt;
&lt;li&gt;Comunidad/amigos: me metí en comunidad donde hice proyectos y fui aprendiendo de pares. Y mis amigos que también me pasaban cosas, me incentivaron y recomendaron para encontrar trabajo.
OJO -&amp;gt; esto no quiere decir que solo porque te recomienden, pum encontras el remoto.&lt;/li&gt;
&lt;li&gt;Estudio y práctica. A pesar de ya estar trabajando seguir haciendo proyectos propios, me metí en hackatones y el enseñar un curso de programacion me permitió retomar conceptos básicos de javascript  y vocabulario técnico que a la hora de las entrevistas es clave( desde mi punto de vista) &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwja4pt3oety19ynshzus.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwja4pt3oety19ynshzus.jpg" alt="Manija time"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hablemos de trabajo remoto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;El trabajo remoto es cada vez más común ya que cada vez más personas quieren tener un horario de trabajo flexible, y “gracias” a la pandemia más empresas se están sumando a esta modalidad.&lt;/p&gt;
&lt;h3&gt;
  
  
  PROS Y CONTRAS DEL REMOTO
&lt;/h3&gt;

&lt;p&gt;✅ Los horarios y lugares de trabajo flexibles suelen aumentar la productividad y el rendimiento.&lt;br&gt;
✅ Te permite viajar y trabajar desde cualquier parte del mundo y convertirte en un nómada digital, creando tu propio horario de trabajo.&lt;br&gt;
✅ No tenes que viajar al trabajo todos los días y ahorras no solo plata sino también tiempo&lt;br&gt;
❌Mala conexión de internet, muchos ruidos ambiente, una compu no tan buena y sin servicio técnico por parte de la empresa te pueden arruinar el día.&lt;br&gt;
❌Al no tener horarios y un espacio dedicado para trabajar pueden hacer que seamos más propensos que otros a procrastinar, a distraerse fácilmente y no aprovechar el tiempo de manera eficiente&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AHORA A LO QUE VINIERON
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Lo primero es tener claro qué queremos hacer y en base a eso armar un plan. En mi caso, el remoto es porque quiero viajar y seguir trabajando de lo que me gusta. &lt;br&gt;
Obviamente la suerte juega un papel importante en toda búsqueda, pero estos puntos pueden ayudar a mostrar tus habilidades a los posibles empleadores cuando no tienes tanta experiencia.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssimrg87az4fico3iei3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssimrg87az4fico3iei3.gif" alt="Get your head in the game"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Conoce tus puntos débiles
&lt;/h2&gt;

&lt;p&gt;Soy pésima en algoritmos y en varias entrevistas me tocó hacer un challenge técnico donde tenía problemas lógicos, de algoritmos, etc. Si sabemos dónde fallamos podemos mejorarlo.&lt;/p&gt;

&lt;p&gt;Aca les dejo algunas páginas donde pueden practicar 😉&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;Codewars&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn4z5lj3ritzz59abaug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjn4z5lj3ritzz59abaug.png" alt="Codewars"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codingame.com/home" rel="noopener noreferrer"&gt;Codingame&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp286xfw7ww6rl8xjnwso.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp286xfw7ww6rl8xjnwso.png" alt="Codingame"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://app.codility.com/programmers/" rel="noopener noreferrer"&gt;Codility&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8wzn95c6k8ff6a0p4p5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8wzn95c6k8ff6a0p4p5.png" alt="Codility"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Repasa conceptos
&lt;/h2&gt;

&lt;p&gt;Si bien sabemos que no vamos día a día recitando conceptos de programación, tener en claro las definiciones nos pueden ayudar muchísimo. No necesariamente tiene que ser con vocabulario ultra técnico pero mientras puedas expresarlo de manera simple o explicárselo a otra persona es suficiente.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/es/" rel="noopener noreferrer"&gt;Developer Mozilla&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mwat6sznqcsgyx9o7cr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mwat6sznqcsgyx9o7cr.png" alt="Developer Mozilla"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jstips.co/" rel="noopener noreferrer"&gt;JS Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bzgon8fqj2ylcogukzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2bzgon8fqj2ylcogukzz.png" alt="JS Tips"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lenguajejs.com/" rel="noopener noreferrer"&gt;Lenguaje JS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdz4keokvy5rwz7xgmwql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdz4keokvy5rwz7xgmwql.png" alt="Lenguaje JS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://refactoring.guru/es" rel="noopener noreferrer"&gt;Refactoring Guru&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz0q957e7k1wijb37hiey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz0q957e7k1wijb37hiey.png" alt="Refactoring Guru"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Date a conocer
&lt;/h2&gt;

&lt;p&gt;Para mi lo mejor es tener un github donde tengamos proyectos propios copados donde aprendimos y renegamos para mostrar en entrevistas y contar estas anécdotas.&lt;/p&gt;

&lt;p&gt;Aparte permite que otros devs de las empresas en donde postulamos puedan ver nuestro código de antemano y muestra nuestro proceso de aprendizaje.&lt;/p&gt;

&lt;p&gt;👉 Podés encontrar ideas acá:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codementor.io/projects" rel="noopener noreferrer"&gt;Codementor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlmeawgl9q58968xpri9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlmeawgl9q58968xpri9.png" alt="Codementor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://50reactprojects.com/" rel="noopener noreferrer"&gt;50 React Projects&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F70n7kfy8ueunab0w5i01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F70n7kfy8ueunab0w5i01.png" alt="50 React Projects"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En LinkedIn podés crear tu propio perfil en donde pones tu historial laboral, destaques tus habilidades y resumas tus logros y experiencias laborales anteriores.&lt;/p&gt;

&lt;p&gt;Una buena forma de destacarse es compartir cualquier artículo que hayas escrito y otros contenidos interesantes e informativos. Participar en Discord junto a otras personas y comunidades también es una buena forma de hacer networking.&lt;/p&gt;
&lt;h2&gt;
  
  
  Contribuir al código abierto
&lt;/h2&gt;

&lt;p&gt;Al principio cuando no tenemos tanta experiencia puede resultar difícil o incluso que nos de vergüenza meternos en un repositorio de otra persona, pero esto es algo que a muchos recruiters les llama la atención. &lt;br&gt;
Podemos empezar haciendo pequeñas contribuciones, como corregir errores gramaticales y de tipeo o  crear/traducir documentación para proyectos que carezcan de ella.&lt;br&gt;
Esto demuestra que sabemos comunicarnos bien y colaborar con otros desarrolladores de forma remota y asíncrona para resolver un problema. Y todo eso es público.&lt;/p&gt;

&lt;p&gt;👉 Podés encontrar una guia de como empezar acá:&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/selene_l21" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F458719%2Ff719307a-db1f-4480-83c9-53fee56e9e88.jpg" alt="selene_l21"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/selene_l21/introduccion-a-github-que-es-eso-se-come-1af1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Github para Open Source&lt;/h2&gt;
      &lt;h3&gt;Lara Díaz ・ Oct 15 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  Gana experiencia trabajando de forma remota
&lt;/h2&gt;

&lt;p&gt;Esto no es cien por ciento necesario pero hacer trabajos freelance ayuda muchísimo a la hora de encontrar trabajo estable como contractor, en comparación con alguien que no tenga esa experiencia y conocimientos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.workana.com/es/" rel="noopener noreferrer"&gt;Workana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwn8xgwxotql4xmqqmp42.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwn8xgwxotql4xmqqmp42.png" alt="IWorkana"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.upwork.com/" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizb99jo1ltkiut034o00.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizb99jo1ltkiut034o00.png" alt="Upwork"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.freelancer.es/" rel="noopener noreferrer"&gt;Freelancer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlre96eisngb47roqxwp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlre96eisngb47roqxwp.png" alt="Freelancer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Dónde encontrar empresas que contraten remoto?
&lt;/h2&gt;

&lt;p&gt;Yo siempre le pregunto a mis amigos si en las empresas donde trabajan están contratando y que experiencia tuvieron y con qué stack están trabajando. &lt;br&gt;
También probé otras páginas donde encontrar varias opciones en distintos países, no solo USA. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://remoteok.com/" rel="noopener noreferrer"&gt;RemoteOK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0yhhrklexz89dt56f0oh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0yhhrklexz89dt56f0oh.png" alt="RemoteOK"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://weworkremotely.com/" rel="noopener noreferrer"&gt;We Work Remotly&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9z9ibfwmsvckswbpzymz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9z9ibfwmsvckswbpzymz.png" alt="We Work Remotly"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://angel.co/" rel="noopener noreferrer"&gt;Angel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4y6pjinr92ch8ldw21fb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4y6pjinr92ch8ldw21fb.png" alt="Angel landing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jobs.hirewithnear.com/" rel="noopener noreferrer"&gt;Near&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmz1mq3ibsd587ljxano5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmz1mq3ibsd587ljxano5.png" alt="Near landing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ar.indeed.com/?from=gnav-homepage" rel="noopener noreferrer"&gt;Indeed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5fccz3dzdutt8i7firn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5fccz3dzdutt8i7firn.png" alt="Indeed landing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Todo este post, lo podes encontrar en forma de charla acá:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/WuDBbAPYetE?t=5328" rel="noopener noreferrer"&gt;BeerJS Cba 61&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Asi que, si estas recien empezando y queres ganar experiencia o queres hacer el salto a remoto, animate y espero te sirva el post 😁&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>productivity</category>
      <category>career</category>
      <category>spanish</category>
    </item>
    <item>
      <title>Inglés en entrevistas? Mirá 👇🏻</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Fri, 29 Oct 2021 16:49:36 +0000</pubDate>
      <link>https://dev.to/selene_l21/ingles-en-entrevistas-mira-3loc</link>
      <guid>https://dev.to/selene_l21/ingles-en-entrevistas-mira-3loc</guid>
      <description>&lt;p&gt;Este es un pequeño post para entender qué significan los niveles de inglés que aparecen en las búsquedas de IT. Cuando se abre un nuevo puesto de trabajo y quieren contratar a un nuevo desarrollador, el primer filtro es el idioma (inglés). El nivel de inglés que enseñan las escuelas no es suficiente a veces; por lo que es difícil encontrar a alguien que tenga un buen nivel de inglés y habilidades técnicas que no haya ido a una academia/profe particular.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmguzekfm4lggqg4cy6v9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmguzekfm4lggqg4cy6v9.png" alt="meme" width="793" height="662"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vamos por partes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El CFRL* es una guía estándar que sirve para medir la comprensión que tiene una persona, de un determinado idioma. Se distinguen en:&lt;br&gt;
Interpretar&lt;br&gt;
Hablar &lt;br&gt;
Escribir&lt;/p&gt;

&lt;p&gt;Esta guía se divide en 7 niveles:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Principiante&lt;/strong&gt;: Se supone que no hay estudios previos de inglés.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A1 (Elemental)&lt;/strong&gt;: Puedes desenvolverte en actividades cotidianas muy limitadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A2 (Intermedio bajo)&lt;/strong&gt;: Puedes desenvolverte en actividades cotidianas.Todavía no tienes suficiente conocimiento para enfrentarte solo a algunos problemas, pero puedes manejar interacciones simples.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B1(Intermedio)&lt;/strong&gt;: Puedes hacer un uso eficaz e independiente de la lengua en situaciones familiares. Todavía hay muchos errores y carencias de vocabulario, pero puedes comunicar y comprender mensajes generales en la mayoría de los contextos. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B2(Intermedio Superior)&lt;/strong&gt;: Puedes enfrentarte a tareas sencillas. Te desenvuelves con bastante facilidad en situaciones bastante complejas y exigentes. Hay carencias de vocabulario en situaciones complejas, pero la comunicación se restablece con facilidad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C1 (Avanzado)&lt;/strong&gt;: Puedes ocuparte de tareas de trabajo complejas. Tienes un excelente dominio del idioma, con fluidez y precisión constantes y bien organizado. Te enfrentas bien a situaciones exigentes y complejas. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C2 (Competencia)&lt;/strong&gt;: Puedes utilizar el idioma con fluidez, precisión y adecuación. Has alcanzado un nivel excepcional de fluidez que se corresponde con el de un hablante nativo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76ft1igl1q0l0kybuj7b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76ft1igl1q0l0kybuj7b.jpg" alt="meme 1" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Así que, si estás empezando tu carrera de desarrollador, o si tienes un tiempo libre, ¡aprende inglés! Espero te sirva el post  😁&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>career</category>
      <category>spanish</category>
    </item>
    <item>
      <title>HACKTOBERFEST 2022</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Tue, 05 Oct 2021 14:23:41 +0000</pubDate>
      <link>https://dev.to/selene_l21/hacktoberfest-2021-3blj</link>
      <guid>https://dev.to/selene_l21/hacktoberfest-2021-3blj</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r5zmxa8r167whpvtzqi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r5zmxa8r167whpvtzqi.png" alt="Hacktoberfest 2022 banner" width="800" height="538"&gt;&lt;/a&gt;Comienza octubre y lo único que vas a escuchar es “Hacktoberfest”,pero...&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Qué es Hacktoberfest?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Es un evento anual de un mes durante octubre organizado por Digital Ocean por octavo año consecutivo, que anima a los desarrolladores de cualquier seniority a participar en proyectos de código abierto (Open Source).&lt;/p&gt;

&lt;p&gt;Digital Ocean fomenta la participación de la comunidad, para que la misma contribuya mediante Pull Requests, participando en eventos y donando a proyectos Open Source.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Qué es Open Source?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Es todo código fuente que se pone a disposición del público para su posible modificación y redistribución.&lt;br&gt;
Los proyectos Open Source que se alojan en repositorios públicos, se benefician de las contribuciones realizadas por la comunidad de desarrolladores en general y suelen gestionarse a través de Github.&lt;/p&gt;

&lt;p&gt;Si queres conocerlo en detalle, podes ver este vídeo del evento que hicimos con &lt;a href="https://twitter.com/somoscodear?lang=es"&gt;CoDeAr&lt;/a&gt;, en el que charlamos del Hacktoberfest 2020 y algunos proyectos Open Source. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lsgIXVhnLuQ"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Cómo participar? 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;🔹 Inscribite en &lt;a href="https://hacktoberfest.digitalocean.com/register"&gt;Hacktoberfest&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpidefdzjg2s9lvdykjy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpidefdzjg2s9lvdykjy.png" alt="Pagina de Inscripcion" width="800" height="538"&gt;&lt;/a&gt;&lt;/p&gt;
 Podes ver tu progreso de PRs desde tu perfil 



&lt;p&gt;🔹 Haz al menos cuatro pull requests (PRs) antes del 31 de octubre en cualquier repositorio/proyecto participante alojado en GitHub. &lt;/p&gt;

&lt;p&gt;Podes ver en este post como hacer tu primer PR 😄&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/selene_l21" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_aHgonpW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://media.dev.to/cdn-cgi/image/width%3D150%2Cheight%3D150%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto/https%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F458719%252Ff719307a-db1f-4480-83c9-53fee56e9e88.jpg" alt="selene_l21"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/selene_l21/introduccion-a-github-que-es-eso-se-come-1af1" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Github para Open Source&lt;/h2&gt;
      &lt;h3&gt;Lara Díaz ・ Oct 15 '20&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;



&lt;p&gt;🔹 Tus PRs contarán para tu participación en el evento si están en un repositorio con el hashtag(#) hacktoberfest y una vez que hayan sido mergeados, aprobados por un mantenedor, o etiquetados como aceptados.&lt;/p&gt;

&lt;p&gt;El objetivo es contribuir de manera responsable y que se eviten &lt;br&gt;
&lt;a href="https://twitter.com/shitoberfest"&gt;shit pull-requests&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Una vez aprobados todos los PRs tenes la posibilidad de elegir entre dos premios: Una remera de edición limitada o que se plante un árbol en tu nombre.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zlng4c53909jd978umu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9zlng4c53909jd978umu.png" alt="Remera del 2020" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;
 La remera del 2020 



&lt;p&gt;&lt;strong&gt;¡¡Feliz contribución!! 👩‍💻👩‍💻&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>hacktoberfest</category>
      <category>github</category>
      <category>community</category>
    </item>
    <item>
      <title>Intro Git and github 💻</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Tue, 13 Jul 2021 21:23:45 +0000</pubDate>
      <link>https://dev.to/selene_l21/intro-git-and-github-3jk4</link>
      <guid>https://dev.to/selene_l21/intro-git-and-github-3jk4</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Qué es git y github?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git es un sistema de control de versiones distribuido que utilizan los desarrolladores de software que contribuyen a un mismo proyecto o software. Básicamente ayuda a los usuarios a rastrear los diferentes cambios realizados en el software por diferentes usuarios.&lt;/p&gt;

&lt;p&gt;Github es una plataforma que proporciona alojamiento y control de versiones para su código y cualquiera puede colaborar en cualquier proyecto en todo el mundo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cómo empezar a usar Github
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lo primero que tenemos que hacer es configurar el entorno, por lo que necesitamos descargar git. Para cualquier sistema operativo podemos descargarlo &lt;a href="https://git-scm.com/downloads"&gt;aqui&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqnvytq6vfbix6deqju0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqnvytq6vfbix6deqju0.jpg" alt="git page" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhavt639p809xjbjm3stl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhavt639p809xjbjm3stl.png" alt="Alt Text" width="663" height="659"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez que hayamos instalado correctamente git, podemos abrir la terminal y escribir el siguiente comando para comprobarlo. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvkq012xbwb8sox1eex7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvkq012xbwb8sox1eex7.png" alt="Alt Text" width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Después de esto podemos ir al sitio web de &lt;a href="https://github.com/"&gt;Github&lt;/a&gt; y crear una cuenta si no tenemos. &lt;/p&gt;

&lt;p&gt;La cuenta se verá similar a algo como esto:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcffjwn9scljpdorh56n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbcffjwn9scljpdorh56n.png" alt="Alt Text" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Configurar git con nombre de usuario y correo electrónico.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora que tenemos Git en el sistema, queremos  personalizar el entorno de Git. Sólo es necesario hacer estas cosas una vez; se mantendrán entre actualizaciones. También podemos cambiarlas en cualquier momento volviendo a ejecutar los comandos correspondientes.&lt;/p&gt;

&lt;p&gt;Lo primero que debemos hacer cuando instalamos Git es establecer nuestro nombre de usuario y dirección de correo electrónico. Esto es importante porque las confirmaciones de cambios (commits) en Git usan esta información, y es introducida en cada commit que hagamos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abrir un terminal/shell:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyjizx8o4krngxbwxtoe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcyjizx8o4krngxbwxtoe.png" alt="Alt Text" width="800" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si queremos comprobar la configuración, podemos usar el comando git config --list para listar todas las propiedades que Git ha configurado:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfaq7ovl7yrqq1fm5vej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjfaq7ovl7yrqq1fm5vej.png" alt="Alt Text" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Listo! Ya tenes github configurado!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fftdh9khwp7h2d4e1kgil.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fftdh9khwp7h2d4e1kgil.jpeg" alt="Alt Text" width="720" height="596"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Hay ciertos pasos que debemos seguir para empezar a contribuir en tu trabajo, proyectos propios u Open Source:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Creación de un repositorio.&lt;/li&gt;
&lt;li&gt;Fork de un repositorio.&lt;/li&gt;
&lt;li&gt;Clone de un repositorio.&lt;/li&gt;
&lt;li&gt;Creando commits.&lt;/li&gt;
&lt;li&gt;Push código.&lt;/li&gt;
&lt;li&gt;Creando una rama(branch).&lt;/li&gt;
&lt;li&gt;Creando issues.&lt;/li&gt;
&lt;li&gt;Crear un pull request.&lt;/li&gt;
&lt;li&gt;Actualizando el contenido del repo.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Creación de un repositorio.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Un repositorio es una carpeta única que contiene los archivos necesarios para el proyecto, podemos decir que es un nombre alternativo para directorio. Para crear un repositorio podemos ver la esquina superior derecha de tu ventana donde tenemos una opción para crear repositorio como se muestra en la imagen de abajo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgzfhruwsbku22ppy3uz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqgzfhruwsbku22ppy3uz.png" alt="Alt Text" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez que hayamos hecho click, tendremos que ingresar información sobre el repositorio, como su nombre, si queremos incluir el archivo Readme (archivo de nuestro repositorio en donde podríamos contarle a la comunidad de GitHub de que trata nuestro proyecto.), o incluir algún archivo, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0g2n74rb1h73ke06rye.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0g2n74rb1h73ke06rye.png" alt="Alt Text" width="800" height="787"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Otra forma de hacerlo es con Git Init&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este comando se usa para crear un nuevo repositorio en Git. Nos crea un repositorio de manera local y lo hará en la carpeta donde estamos posicionados o se le puede pasar [nombre_de_la_carpeta] y creará la carpeta con ese nombre.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F73mclcl53gj8dbtazyuo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F73mclcl53gj8dbtazyuo.png" alt="Alt Text" width="800" height="110"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Fork de un repositorio.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Un fork es un clon del repo en github y que funciona como un branch del original y es la forma principal por la cual alguien puede proponer cambios a un repositorio que no creo.&lt;/p&gt;

&lt;p&gt;Si queremos contribuir en algún proyecto de otra persona, el primer paso es hacer un fork del proyecto para crear una copia de los archivos de ese proyecto en nuestra cuenta de github. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa5sk7tf6pfs94sjg9sk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa5sk7tf6pfs94sjg9sk6.png" alt="Alt Text" width="800" height="798"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Clone de un repositorio.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para poder trabajar y modificar un proyecto, el primer paso es descargar los archivos en su PC para ejecutarlos. Este proceso se conoce como &lt;strong&gt;clonación de un repo&lt;/strong&gt;. Debemos abrir la terminal, posicionarnos en la carpeta donde queremos descargar los archivos (Ej: desktop) y ejecutar el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fouj54mxj8p9epm2w43lq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fouj54mxj8p9epm2w43lq.png" alt="Alt Text" width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hecho esto, tendremos una copia del proyecto en nuestra PC.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Creando commits.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El comando "commit" guardará todos los cambio hechos en la zona de montaje o área de preparación (staging area), junto con una breve descripción del usuario, en un "commit" al repositorio local.&lt;/p&gt;

&lt;p&gt;Para agregar el o los archivos al Staging Area vamos a usar el comando add:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn77ex0aak5n87hv8mm4z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn77ex0aak5n87hv8mm4z.png" alt="Alt Text" width="800" height="275"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora en verde nos indica que tenemos un archivo o mas listos para hacer un commit en nuestro repositorio, hasta que no hagamos un commit nuestros archivos permanecerán en “el limbo” en el estado Ready justo antes de enviar nuestro archivo a nuestros repositorio.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zhm0e5jb7vqst9pzey7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zhm0e5jb7vqst9pzey7.png" alt="Alt Text" width="800" height="134"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Push código.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nuestro repositorio local ya tiene nuestros cambios, ahora si queremos enviarlos a nuestro repositorio remoto (ya sea un fork, clone o propio), vamos a usar un comando llamado git push, vamos a empujar nuevos cambios. Podemos hacerlo con el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy71rj6y5rume3eiuqrxq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy71rj6y5rume3eiuqrxq.png" alt="Alt Text" width="800" height="136"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Creando una rama(branch).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como sabemos, cada vez que desarrollamos cualquier software o proyecto, a menudo creamos nuevas features o corregimos un error(&lt;strong&gt;fix&lt;/strong&gt;), por lo que utilizamos ramas para ello. &lt;br&gt;
Las ramas son caminos que puede tomar cualquier desarrollador dentro del proyecto, que agrupan commits y que pueden volver a unirse al camino principal de la aplicación. &lt;br&gt;
Es básicamente una manera de mantener la diferencia en el código original con respecto a la nueva features o fix. &lt;/p&gt;

&lt;p&gt;Para comprobar la rama existente en el proyecto podemos escribir el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldolb0lyep46viotiuq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldolb0lyep46viotiuq3.png" alt="Alt Text" width="800" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para crear una nueva rama podemos ejecutar el siguiente comando en el terminal: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2yg6ps6710sgrsknzl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2yg6ps6710sgrsknzl6.png" alt="Alt Text" width="800" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para comprobar o cambiar la rama actual puede utilizar el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4w3y4voiehohx910dsd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4w3y4voiehohx910dsd.png" alt="Alt Text" width="800" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Es una buena práctica crear una nueva rama para cada issue creado.&lt;/em&gt;&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Creando issues.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;En la solapa "Issues” los diferentes colaboradores del proyecto pueden remarcar y alertar acerca de diferentes “bugs” o “problemas” dentro del proyecto.&lt;br&gt;
Si queremos trabajar en alguna issue podemos comentar en ese mismo que estamos interesados en trabajar. El administrador del proyecto o los maintainers nos asignarán el issue, y entonces podremos empezar a trabajar en él.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyme14q83hmuhmrofffu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyme14q83hmuhmrofffu.png" alt="Alt Text" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En el caso del Open Source, suele haber una guia para contribuidores que explica el formato preferido de Issues, pull request y commits.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Crear un pull request.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para que los colaboradores revisen los cambios que hemos hecho y los aprueben en el repositorio original, necesitamos crear una solicitud de revisión o &lt;strong&gt;pull request&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gaicoolwgckatxpg08y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9gaicoolwgckatxpg08y.png" alt="Alt Text" width="800" height="719"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Actualizando el contenido del repo.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Al ser git un sistema donde múltiples personas colaboran, puede ser que necesitemos mantener nuestro repositorio local actualizado.&lt;br&gt;
Para ello hay dos maneras en que podemos hacerlo:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Usando git pull.&lt;/li&gt;
&lt;li&gt;Usando rebase.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;En la opción 1, usamos el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1i9ax91029whdfauuin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1i9ax91029whdfauuin.png" alt="Alt Text" width="800" height="136"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;aquí upstream es la ubicación desde la que necesitamos actualizar el contenido y main es la rama de la que hay que hacer &lt;strong&gt;pull&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Para la opción 2, podemos utilizar el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwl4d3vgbvyteblh7btgu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwl4d3vgbvyteblh7btgu.png" alt="Alt Text" width="800" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Rebase es preferible en comparación con pull, ya que pull es una combinación de git fetch y git merge que fusiona los cambios locales con las actualizaciones.&lt;/p&gt;




&lt;p&gt;Compartí tu opinión o escribime!&lt;br&gt;
&lt;a href="https://github.com/selenel21"&gt;Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://twitter.com/selene_nr"&gt;Twitter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>beginners</category>
      <category>spanish</category>
    </item>
    <item>
      <title>“Como C@*+^ … con Git y no romper producción.”</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Thu, 14 Jan 2021 15:12:17 +0000</pubDate>
      <link>https://dev.to/selene_l21/como-c-con-git-y-no-romper-produccion-afp</link>
      <guid>https://dev.to/selene_l21/como-c-con-git-y-no-romper-produccion-afp</guid>
      <description>&lt;p&gt;Todos alguna vez pusheamos un commit que no era, rompimos todo y sentimos pánico. Por suerte, git nos permite reparar esos errores y volver el tiempo atrás a donde todo funcionaba perfectamente.&lt;br&gt;
Hoy vamos a hablar de &lt;strong&gt;CHERRY-PICK&lt;/strong&gt; un comando que permite elegir uno o más commits de una rama y aplicarla en otra.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4y7ayxk49fer78hb2osk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4y7ayxk49fer78hb2osk.png" alt="Alt Text" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Cómo usar git cherry-pick?
&lt;/h2&gt;

&lt;p&gt;Lo único que necesitamos es saber el hash del commit específico que queremos aplicar a nuestra rama. ¿Cómo hacemos eso? en la terminal vamos a revisar  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Famly8djl896qy683ry9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Famly8djl896qy683ry9f.png" alt="Alt Text" width="639" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Vamos a buscar el hash (número del commit) que acabamos de hacer y lo vamos a anotar en un block. En ese mismo log, buscamos el hash del commit al que queremos traer a nuestra rama.También lo podemos buscar en github/gitlab/&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn9uuj071tvx3kcc7acov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn9uuj071tvx3kcc7acov.png" alt="Alt Text" width="800" height="263"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ahora en la terminal, vamos a escribir:&lt;br&gt;
→ git reset --hard &lt;strong&gt;n° commit que necesitamos&lt;/strong&gt;&lt;br&gt;
→ git checkout tu-rama&lt;br&gt;
→ git cherry-pick &lt;strong&gt;n° commit que hicimos --no-commit&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;¡Y ya podemos volver a trabajar! Aunque no se trata de una de las herramientas más usadas de git, puede resultar muy práctica y nos puede ahorrar mucho tiempo cuando trabajamos en varias ramas. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Github para Open Source</title>
      <dc:creator>Lara Díaz</dc:creator>
      <pubDate>Thu, 15 Oct 2020 15:47:14 +0000</pubDate>
      <link>https://dev.to/selene_l21/introduccion-a-github-que-es-eso-se-come-1af1</link>
      <guid>https://dev.to/selene_l21/introduccion-a-github-que-es-eso-se-come-1af1</guid>
      <description>&lt;p&gt;Git y Github cumplen un rol importante, no solo para el Software de Código Abierto (Open Source) sino también en la vida cotidiana de desarrolladores y compañías. Pero, entendemos la diferencia entre ambos y cómo funcionan?&lt;/p&gt;

&lt;p&gt;Git es un “Distributed Version Control System” (DVSC) que permite observar y controlar los cambios en el código. Es muy usado en proyectos porque es multiplataforma, gratuito, eficiente y fácil de usar. Un sistema de control de versión permite monitorear, revisar y manejar las versiones de nuestro proyecto e incluso revertir errores que pueden ocurrir durante el desarrollo. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fay4v7aoxcxqg11mxelhk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fay4v7aoxcxqg11mxelhk.png" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pero, cómo empiezo??? Vamos a ver los comandos principales de un flujo de trabajo con Git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para crear un nuevo repositorio&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7zo40rj913xime0gomuj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7zo40rj913xime0gomuj.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crear una copia local del repositorio que se está ejecutando&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu7unr5321pie7xbz06bd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu7unr5321pie7xbz06bd.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clona un repositorio remoto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9lbwi3nd31gmstw938c5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9lbwi3nd31gmstw938c5.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                       Flujo de trabajo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi5uhmj84ycqp3tqxjoi3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi5uhmj84ycqp3tqxjoi3.jpg" alt="Alt Text" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Directorio --&amp;gt; Contiene los archivos&lt;br&gt;
Index --&amp;gt; Zona intermedia.&lt;br&gt;
Main (antes conocido como Master) --&amp;gt; Apunta al último commit realizado.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         Add y Commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Para registrar todos los cambios (Index) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffaacy06a4bf8idzgva24.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffaacy06a4bf8idzgva24.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para registrar un solo archivo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe596ma76glvtfk91yz14.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fe596ma76glvtfk91yz14.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para hacer commit de estos cambios, incluyendolos en el “Main”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgc75z7bkek6cokb79ucw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fgc75z7bkek6cokb79ucw.png" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                       Envío de cambios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Envía los cambios a tu repositorio remoto (Main o la rama a la que se desee mandar los cambios)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu11emx9bkh9jp9u13tvf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fu11emx9bkh9jp9u13tvf.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para conectar tu repositorio local a un repo remoto.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4di4v5vxrj3z2hskmt1h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4di4v5vxrj3z2hskmt1h.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                            Ramas
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Son utilizadas para desarrollar funcionalidades aisladas de otras ramas. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Crea tu rama&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frz2rwcgmvu4cd8o6dcls.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Frz2rwcgmvu4cd8o6dcls.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cambia a la rama principal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmjh8sl9fbtnrpfpollrc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmjh8sl9fbtnrpfpollrc.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Borra la rama&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fid3v5zijv5z6mkrx2134.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fid3v5zijv5z6mkrx2134.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para subir la nueva rama y hacerla visible en el repo remoto&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuo71sqeripfrvxgumuwd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuo71sqeripfrvxgumuwd.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Actualiza el repo con los cambios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjo5wpunys1v5fj9xl1c4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjo5wpunys1v5fj9xl1c4.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fusiona otra rama con la rama activa (Main)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzix89pmcgikmpcpjztpy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fzix89pmcgikmpcpjztpy.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Muestra los cambios en el repo (nuevos, viejos y modificados)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6fsekzieq0jriagxgs2d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6fsekzieq0jriagxgs2d.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Muestra todos los commits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Faidas7dinov9ljmfiwt6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Faidas7dinov9ljmfiwt6.jpg" alt="Alt Text" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  ¿Y entonces qué es Github?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Es una plataforma creada en 2008 que nos permite manejar y almacenar los repositorios de git en la nube. Eso es todo, podes optar por mantener tus proyectos con git localmente, ya que github actúa como intermediario para mantener un backup de git externamente, además de hacer mucho más fácil el colaborar y compartir tus proyectos con otros desarrolladores. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                      ¿Qué es un fork?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Un fork es un mecanismo propio de GitHub que existe por que no todo el mundo puede editar sobre tu repositorio; un fork es un clon del repo en github y que funciona como un branch del original y es la forma principal por la cual alguien puede proponer cambios a un repositorio que no creo.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          ¿Y en qué se diferencia un fork de un clon?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Cuando hacemos un clon de un repositorio, te bajas una copia del mismo a tu máquina. Empiezas a trabajar, haces modificaciones y haces un push. Cuando haces el push estás modificando el repositorio que has clonado.&lt;/p&gt;

&lt;p&gt;Cuando haces un fork de un repositorio, se crea un nuevo repositorio en tu cuenta, con una URL diferente (fork). Acto seguido tienes que hacer un clon de esa copia sobre la que empiezas a trabajar de forma que cuando haces push, estás modificando TU COPIA (fork). El repositorio original sigue intacto. El uso más común es el de permitir a los desarrolladores contribuir a un proyecto de forma segura.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  ¿Qué es un pull request?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;El pull request es un pedido de merge, y si bien puede usarse dentro de un mismo repositorio donde la persona que lo crea tiene poder para hacer merge, este es el mecanismo que se usa para mandarlos cambios de un fork al repo original.&lt;br&gt;
El objetivo de los PR es la validación y/o documentación de los cambios, ya que permite pedir review de otras personas o, si es dentro del mismo repo y ni reviewers, se puede usar para documentar por que entran X cambios a master.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  --------------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Por ahora, esto es lo básico, en la próxima entrada veremos Github CLI en su versión desktop y terminal. Espero les sirva =)&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
