<?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: Julia  Maschion</title>
    <description>The latest articles on DEV Community by Julia  Maschion (@jumaschion).</description>
    <link>https://dev.to/jumaschion</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%2F567658%2F1c4d63bb-67c8-4b20-bd88-f56b36605fee.jpeg</url>
      <title>DEV Community: Julia  Maschion</title>
      <link>https://dev.to/jumaschion</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jumaschion"/>
    <language>en</language>
    <item>
      <title>Desempenho no React: Passagem por valor e referência e o poder do useMemo</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Fri, 08 Mar 2024 01:32:33 +0000</pubDate>
      <link>https://dev.to/jumaschion/desempenho-no-react-passagem-por-valor-e-referencia-e-o-poder-do-usememo-1lal</link>
      <guid>https://dev.to/jumaschion/desempenho-no-react-passagem-por-valor-e-referencia-e-o-poder-do-usememo-1lal</guid>
      <description>&lt;p&gt;As pessoas usam useMemo no React por alguns motivos específicos relacionados à otimização de desempenho e à gestão eficiente de recursos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Otimização de Cálculos Intensivos:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Quando um componente realiza cálculos computacionais ou operações intensivas, usar useMemo pode ajudar a evitar a recálculo desnecessário.&lt;br&gt;
Memoizando o resultado, o React reutiliza a computação anterior, economizando tempo e recursos durante as renderizações subsequentes.&lt;br&gt;
Isso é particularmente útil em situações onde os cálculos são custosos e não precisam ser refeitos a cada renderização.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evitar Renderizações Desnecessárias:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O useMemo é eficaz para evitar a renderização desnecessária de componentes filhos. Se o resultado do useMemo não mudar entre as renderizações, o componente associado não será re-renderizado.&lt;/p&gt;

&lt;p&gt;Isso é valioso em casos onde a renderização não é requerida, economizando tempo e melhorando o desempenho geral da aplicação. &lt;/p&gt;

&lt;p&gt;Em componentes que re-renderizam frequentemente, o uso criterioso do useMemo pode contribuir para melhorias perceptíveis de desempenho, reduzindo a carga computacional associada a cálculos repetitivos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preservação de Referências:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Em situações em que é importante preservar referências específicas na memória, como em temas dinâmicos ou em manipulação direta de objetos complexos, o useMemo é útil.&lt;br&gt;
Ao memoizar objetos, arrays ou funções, você evita a recriação dessas estruturas em cada renderização, garantindo consistência nas referências, o que pode ser crucial em certos contextos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redução do Consumo de Recursos:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Memoizando valores que não mudam frequentemente, você evita alocações desnecessárias de recursos, como memória, contribuindo para um uso mais eficiente dos recursos disponíveis na aplicação.&lt;/p&gt;

&lt;p&gt;Mas é importante exercer cuidado ao usar useMemo, pois seu uso indiscriminado pode levar a uma complexidade desnecessária no código e, em alguns casos, até mesmo impactar negativamente o desempenho, especialmente se não houver um ganho real na economia de cálculos. Deve-se sempre considerar a relação custo-benefício ao decidir onde aplicar o useMemo em um componente React.&lt;/p&gt;

&lt;p&gt;E por que ele causaria isso ? Daí entra em outro ponto importante:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Passagem por Valor:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na passagem por valor, uma cópia do valor da variável é passada para a função ou componente. As alterações feitas dentro da função ou componente não afetam diretamente o valor original.&lt;br&gt;
Tipos primitivos, como números, strings e booleanos, são geralmente passados por valor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Exemplo de passagem por valor
function dobrarNumero(numero) {
  numero = numero * 2;
  console.log("Dentro da função:", numero);
}

let meuNumero = 5;
dobrarNumero(meuNumero);

console.log("Fora da função:", meuNumero);
// Saída: Dentro da função: 10
//        Fora da função: 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Passagem por Referência:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na passagem por referência, o endereço de memória da variável é passado para a função ou componente. Isso significa que qualquer modificação feita dentro da função ou componente afeta diretamente o valor original.&lt;br&gt;
Objetos e arrays em muitas linguagens de programação, incluindo JavaScript, são passados por referência.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Exemplo de passagem por referência
function adicionarElemento(array, elemento) {
  array.push(elemento);
  console.log("Dentro da função:", array);
}

let minhaLista = [1, 2, 3];
adicionarElemento(minhaLista, 4);

console.log("Fora da função:", minhaLista);
// Saída: Dentro da função: [1, 2, 3, 4]
//        Fora da função: [1, 2, 3, 4]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A relação com useMemo no React está relacionada ao conceito de "referential equality" (igualdade referencial). Quando o React decide se deve re-renderizar um componente, ele compara as referências dos objetos, não os valores internos. Se as referências forem diferentes, o React assume que algo mudou e desencadeia uma re-renderização.&lt;/p&gt;

&lt;p&gt;Ao memoizar um valor com useMemo, você está efetivamente memorizando a referência desse valor. Isso é útil para evitar re-renderizações desnecessárias, pois o React pode verificar se a referência permanece inalterada entre as renderizações. Se a referência permanecer a mesma, o React assume que o valor interno não mudou e evita re-renderizações.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React, { useMemo } from 'react';

const MeuComponente = ({ dados }) =&amp;gt; {
  const resultadoCalculado = useMemo(() =&amp;gt; {
    // Algum cálculo baseado nos dados
    return dados.reduce((acc, val) =&amp;gt; acc + val, 0);
  }, [dados]); // Memoiza com base nas referências dos dados

  return &amp;lt;div&amp;gt;{resultadoCalculado}&amp;lt;/div&amp;gt;;
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste exemplo, useMemo é usado para memoizar o resultado do cálculo com base na referência do array dados. Se dados não mudar entre as renderizações, o React evita re-executar o cálculo e re-renderizar o componente, proporcionando uma otimização de desempenho.&lt;/p&gt;

&lt;p&gt;Esse foi o resumo de hoje e espero ter ajudado alguém &amp;lt;3&lt;/p&gt;

&lt;p&gt;Referência: &lt;a href="https://www.youtube.com/watch?v=-hBJz2PPIVE"&gt;https://www.youtube.com/watch?v=-hBJz2PPIVE&lt;/a&gt; &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cache, Session Storage, Local Storage e Cookies</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Thu, 07 Mar 2024 00:43:37 +0000</pubDate>
      <link>https://dev.to/jumaschion/-cache-session-storage-local-storage-e-cookies-360p</link>
      <guid>https://dev.to/jumaschion/-cache-session-storage-local-storage-e-cookies-360p</guid>
      <description>&lt;p&gt;Vamos explorar brevemente os conceitos de local storage, cookie, cache e session storage, destacando as diferenças entre eles em termos de segurança.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Local Storage:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Armazena dados no navegador do usuário de forma persistente.&lt;/li&gt;
&lt;li&gt;Os dados permanecem mesmo após fechar e reabrir o navegador.&lt;/li&gt;
&lt;li&gt;Pode ser acessado por scripts em páginas diferentes do mesmo domínio.&lt;/li&gt;
&lt;li&gt;Geralmente mais vulnerável a ataques devido à persistência dos dados.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cookies:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Armazena pequenas quantidades de dados no navegador.&lt;/li&gt;
&lt;li&gt;Possui um tempo de expiração e pode ser persistente ou de sessão.&lt;/li&gt;
&lt;li&gt;Limitado a cerca de 4 KB de dados.&lt;/li&gt;
&lt;li&gt;Pode ser acessado por scripts e é enviado para o servidor em cada requisição.&lt;/li&gt;
&lt;li&gt;Pode ser vulnerável a ataques devido à transmissão frequente dos dados entre cliente e servidor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Armazena temporariamente recursos, como imagens e scripts, para acelerar o carregamento de páginas.&lt;/li&gt;
&lt;li&gt;Pode ser controlado pelo servidor (cache HTTP) ou pelo navegador.&lt;/li&gt;
&lt;li&gt;Geralmente seguro, pois não armazena dados sensíveis, mas pode ser explorado para ataques como cache poisoning.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session Storage:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Similar ao local storage, mas os dados são temporários e são destruídos quando a sessão do navegador é encerrada.&lt;/li&gt;
&lt;li&gt;Apenas acessível na mesma janela ou guia do navegador que o originou.&lt;/li&gt;
&lt;li&gt;Menos vulnerável a ataques, pois os dados são efêmeros e não persistem além da sessão.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Segurança:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mais seguro:&lt;/strong&gt; Session storage é geralmente considerado mais seguro para armazenamento temporário de dados, pois os dados são específicos da sessão e são descartados quando a sessão é encerrada.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Menos seguro:&lt;/strong&gt; Local storage e cookies persistentes são mais suscetíveis a ataques, especialmente se utilizados para armazenar informações sensíveis, devido à persistência dos dados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Por quê:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local storage e cookies persistentes podem ser explorados por invasores se não forem gerenciados corretamente, resultando em roubo de informações.&lt;/li&gt;
&lt;li&gt;Session storage é mais seguro porque os dados são destruídos automaticamente quando a sessão do navegador é encerrada, reduzindo a janela de oportunidade para possíveis ataques.&lt;/li&gt;
&lt;li&gt;O cache é geralmente seguro, mas cache poisoning é uma preocupação se não for configurado adequadamente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A escolha entre eles depende dos requisitos específicos do aplicativo e das preocupações de segurança associadas a cada método&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é cache poisoning?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Cache poisoning refere-se a uma técnica maliciosa na qual um atacante manipula o conteúdo armazenado em um cache para induzir o servidor ou o cliente a usar informações falsas ou comprometidas. Essa técnica pode ter consequências sérias, como a disseminação de dados incorretos, ataques de injeção de código e até mesmo a execução de ataques de phishing.&lt;/p&gt;

&lt;p&gt;Existem várias formas de cache poisoning, mas um cenário comum envolve a manipulação do cache de um servidor proxy, intermediário ou do próprio navegador do cliente. Aqui estão alguns métodos comuns:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Injeção de Conteúdo Malicioso:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Um atacante insere conteúdo malicioso no cache, aproveitando-se de falhas nas políticas de validação ou manipulação do cache. Isso pode levar a usuários finais recebendo versões adulteradas de páginas web, scripts ou outros recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manipulação de Cabeçalhos HTTP:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;O atacante pode enviar solicitações manipuladas com cabeçalhos HTTP maliciosos para forçar o cache a armazenar informações incorretas. Isso pode ser especialmente problemático em caches compartilhados por vários usuários ou sistemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cache Poisoning de DNS:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Em ataques mais avançados, os atacantes podem explorar vulnerabilidades no sistema de DNS para redirecionar as solicitações de um domínio legítimo para um servidor malicioso. Isso pode resultar na armazenagem de informações falsas no cache.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Os efeitos do cache poisoning podem variar, mas geralmente incluem a propagação de conteúdo falso, a execução de código malicioso e o comprometimento da integridade dos dados. As organizações e os desenvolvedores precisam implementar práticas sólidas de segurança, como validação rigorosa de entrada, atualização regular de sistemas e monitoramento constante do tráfego para mitigar os riscos associados ao cache poisoning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que armazenar no Session Storage?&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dados de Sessão:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Informações temporárias específicas da sessão do usuário, como identificadores de sessão, preferências temporárias e configurações de interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dados de Navegação:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Informações sobre o estado da navegação, como histórico de navegação temporário, para aprimorar a experiência do usuário.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tokens de Autenticação Temporários:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Se necessário, você pode armazenar temporariamente tokens de autenticação no Session Storage para facilitar a navegação dentro do site durante a sessão do usuário.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dados de Formulário Temporários:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Informações inseridas pelo usuário em formulários que precisam ser mantidas temporariamente para fornecer uma experiência de usuário mais suave.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preferências Temporárias do Usuário:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Configurações temporárias ou preferências que o usuário escolheu durante a sessão e que não precisam ser persistidas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Ataques que o Session Storage pode sofrer:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Injeção de Scripts (XSS):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Se um atacante conseguir injetar scripts maliciosos em sua aplicação, ele pode acessar e manipular os dados armazenados no Session Storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roubo de Sessão (Session Hijacking):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Caso um atacante consiga obter acesso aos dados de sessão armazenados no Session Storage, ele pode tentar assumir a sessão do usuário.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ataques de CSRF (Cross-Site Request Forgery):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Se não forem tomadas medidas adequadas, um atacante pode explorar a vulnerabilidade CSRF para forçar um usuário autenticado a realizar ações indesejadas em sua aplicação.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ataques de Manipulação de Dados:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Um atacante pode tentar manipular os dados armazenados no Session Storage para alterar o comportamento da aplicação ou obter informações indevidas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Dicas para Mitigação:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Validação de Entrada e Saída:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Valide e sanitize dados antes de armazená-los ou exibi-los no Session Storage para prevenir ataques de injeção.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uso de HTTPS:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Utilize uma conexão segura (HTTPS) para proteger a transmissão de dados entre o cliente e o servidor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controle de Acesso:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Implemente medidas de controle de acesso adequadas para garantir que apenas scripts autorizados tenham acesso ao Session Storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tokens de Segurança:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Utilize tokens de segurança e evite armazenar informações sensíveis no Session Storage sempre que possível.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ao seguir boas práticas de segurança e ser consciente sobre o tipo de dados que são armazenados no Session Storage, é possível reduzir significativamente os riscos associados a possíveis ataques.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>"Faça acontecer". O livro que mudou minha visão sobre carreira.</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Fri, 14 Apr 2023 22:52:06 +0000</pubDate>
      <link>https://dev.to/jumaschion/faca-acontecer-o-livro-que-mudou-minha-visao-sobre-carreira-4l2k</link>
      <guid>https://dev.to/jumaschion/faca-acontecer-o-livro-que-mudou-minha-visao-sobre-carreira-4l2k</guid>
      <description>&lt;p&gt;Ano novo fresquinho vem com aquela lista de promessas e na minha lista em especial, a leitura está como uma das metas. Comecei com um livro bem interessante para mim que já mudou minha visão de algumas coisas, reforçou outras e me deu coragem para mais outras: "Faça Acontecer".&lt;/p&gt;

&lt;p&gt;Um livro sobre trabalho, mulheres e a vontade de liderar. Sheryl Sandberg, diretora de operações do Facebook, conta suas experiências, visões e aprendizados ao longo dos anos de carreira, entre Google e Facebook.&lt;/p&gt;

&lt;p&gt;Fui marcando o que me interessou em cada capítulo, então esse resumo é uma visão pessoal sobre a leitura. Se outra pessoa fizer o resumo do mesmo livro, talvez seria totalmente diferente do que eu achei legal e importante para mim.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A ambição profissional é algo esperado para os homens, mas opcional — ou, pior, às vezes até algo negativo — para as mulheres. "Ela é muito ambiciosa" não é um elogio em nossa cultura"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O que você faria se não tivesse medo ?&lt;br&gt;
O livro mostra diversos exemplos e vivências de como somos minadas pelo nosso medo e querer ser uma mulher ambiciosa nem sempre é trazido como algo bom.&lt;/p&gt;

&lt;p&gt;Nós somos alertadas o tempo todo do quanto é difícil lidar com carreira + família, isso também nos da medo de aceitar responsabilidades maiores na empresa. E principalmente em ambientes predominantemente masculinos ficamos mais recuadas e não deixamos transparecer nosso lado forte.&lt;/p&gt;

&lt;p&gt;Um lugar à mesa.&lt;br&gt;
Sheryl comenta para "sentarmos à mesa", ou seja, não podemos nos recuar, precisamos participar e ganhar essa batalha interna desse desconforto. Com certeza você já teve momentos em que confiava mais em si mesmo e as coisas saiam totalmente diferentes, inclusive, a visão ou sensação das pessoas sobre você. Opine e se imponha.&lt;/p&gt;

&lt;p&gt;Sucesso e simpatia.&lt;br&gt;
Mulheres em cargos altos não são muito estimadas e podem ser vistas como agressivas demais, muito políticas ou que não dá para confiar. Mas não devemos sacrificar nossa carreira para que gostem da gente. Devemos seguir em frente apesar das críticas. Todos vão sofrer com críticas. É aquela história, que quando nós ficamos nervosas somos hitéricas e loucas, já para os homens é outra coisa.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"É fácil não gostar de mulheres em cargos altos porque são pouquíssimas. Se as mulheres ocupassem 50% dos cargos mais altos, simplesmente seria impossível desgostar de tanta gente"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;É um trepa-trepa, não uma escada.&lt;br&gt;
Um dos meus capítulos favoritos. Para ser curta e objetiva, a carreira não é uma escada e sim um trepa-trepa. Escada limita e trepa-trepa é mais criativo, com diveresas maneiras de chegarmos ao topo. Aqui também é comentado para darmos prioridade ao potencial de crescimento rápido e missão da empresa e não ao título do cargo. Mas precisamos ser mais abertas ao risco em nossas carreiras.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O custo da estabilidade muitas vezes consiste em menores oportunidades de crescimento…Às vezes, continuar na mesma área e na mesma empresa cria inércia e reduz boa preparação para a liderença.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Outro ponto que me chamou MUITA atenção.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As mulheres tendem a se adaptar à carreira do companheiro do que o inverso. Se a mudança de emprego inclui a mudança para outra cidade, pode ser um impedimento para uma mulher que esteja num relacionamento.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;E mais dicas preciosas nesse capítulo maravilhoso.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;As mulheres precisam parar de pensar "Não estou preparada para fazer isso" e passar a pensar "quero fazer isso — e vou aprender fazendo"…Aceitar riscos, optar pelo crescimento, desafiar a nós mesmas e pedir promoção (com um sorriso no rosto, claro) são elementos importantes para gerir nossa carreira. Uma de minhas citações favoritas é da escritora Alice Walker, que observou: "A maneira mais habitual de renunciar ao poder é pensar que não se tem nenhum poder". Não espere que lhe ofereçam poder. Como aquela coroa, talvez nunca se materialize. De qualquer fomra, quem usa coroa num trepa-trepa?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Busque e diga a verdade como você a vê&lt;br&gt;
Outro capítulo que gostei bastante! Sempre sermos transparentes e diretos principalmente na gestão. Também saiba escutar bem e entender os pontos de vista.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Comunicação eficiente começa pelo entendimento de que existe meu ponto de vista (minha verdade) e o ponto de vista do outro (a verdade dele). Raramente existe uma verdade absoluta, de modo que as pessoas acham que dizem a verdade impõe muito silêncio às outras.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sempre ser claro, por mais que não seja muito confortável. Sabemos que dar ou levar um feedback mais duro não é agradável, por que é um retorno da visão que causamos nos outros. Mesmo com pessoas mais difíceis de lidar, temos que adquirir um jogo de cintura para dar feedback. É por isso que todos nós preferímos dar feedback para alguém que aceita numa boa.&lt;/p&gt;

&lt;p&gt;Sempre questionarmos o que podemos melhorar e saber que a verdade dói, mas Sheryl comenta que: "o lado positivo da verdade é bem maior do que o lado feliz da ignorância".&lt;/p&gt;

&lt;p&gt;Outro ponto que vejo acontecer bastante é que as pessoas evitam misturar vida profissional e pessoal. Mas a verdade é que ambas andam muito juntas.&lt;/p&gt;

&lt;p&gt;Tomar decisões por exemplo, muitas delas são colocadas em uma balança entre a vida pessoal e profissional e isso não é tratado com normalidade, mas deveria. É óbvio que a vida pessoal afeta a profissional.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Talvez um dia não se considere mais chorar no trabalho um sinal de fraqueza ou uma situação constrangedora…E talvez a compaixão e a sensibilidade que têm historicamente refreado algumas mulheres venham a torná-las líderes mais naturais no futuro. Enquanto isso, todos podemos acelerar essa mudança empenhando-nos em procurar-e falar- a verdade, tal como nos parece.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Não saia antes de sair&lt;br&gt;
Acho que amei muitos capítulos, por que esse também está como um dos meus favoritos. Me marcou muito por ser uma situação comum em que mulheres evitam cargos altos, desafios maiores, por receio sobre cuidar da casa e da família. Sempre vem aquela voz na cabeça "será que vou dar conta?".&lt;/p&gt;

&lt;p&gt;Mas o que vemos ao longo do capítulo é que devemos aceitar o desafio, por que podemos dar conta sim. E se não aceitarmos, podemos nos arrepender depois. Então não devemos sair antes de sair.&lt;/p&gt;

&lt;p&gt;Deveria ser mais comum o apoio entre homens e mulheres e não ser um tabu ou um problema a questão da preocupação com a casa, família e filhos principalmente.&lt;/p&gt;

&lt;p&gt;Esse assunto se encaixa bastante no assunto do próximo capítulo que também gostei bastante (sem novidades).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Peggy Orenstein, autora de Cindera comeu minha filha, conta a história de uma menina de cinco anos de idade, que chegou meio aflita em casa depois de uma atividade extrtacurricular e disse à mãe que ela e o menino de quem gostava queriam ser astronautas. Quando a mãe perguntou qual era o problema, a menina respondeu: "Quando formos juntos para o espaço, quem vai cuidar dos nosso filhos?". Aos cincos anos, ela pensava que o aspecto mais complicado numa viagem especial era ter alguém de confiança para cuidar dos filhos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Faça de seu companheiro um companheiro de verdade&lt;br&gt;
Hoje o assunto está bem mais comum do que antigamente. Mas a verdade nua e crua é que se o parceiro faz as coisas de casa também, o peso e a carga mental para as mulheres diminui MUITO e a consequência disso é uma melhora na parte profissional.&lt;/p&gt;

&lt;p&gt;Não é legal ficar como gestora do lar, designando tarefa para que o parceiro faça as coisas. Cada um precisa se encarregar das aitvidades, se não, acaba achando que está fazendo um favor e não sua parte que deve se feita.&lt;/p&gt;

&lt;p&gt;Sheyrl comenta:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Não conheço nenhuma mulher em posição de liderança cujo companheiro não dê apoio total — e digo total mesmo- à sua carreira. Nenhuma. E, ao contrário da ideia difundida de que apenas mulheres solteiras conseguem chegar ao topo, as líderes empresarias mais bem-sucedidas, em dua maioria têm um companheiro.&lt;br&gt;
…Muitas dessas altas executivas disseram que não teriam sucesso que tiveram sem o apoio dos maridos, ajudando com os filhos e as tarefas domésticas e aceitando tranferências com boa vontade…&lt;br&gt;
…Não admira que quando lhe perguntaram numa conferência o que os homens poderiam fazer para ajudar a promover o avanço das mulheres, a professora Rosabeth moss Kanter, da Escola de Administração de Harvard, tenha respondido: "Lavar a roupa". Tarefas como lavar a roupa, comprar comida, cuidar da limpeza e cozinhar são triviais e obrigatórias. É típico que recaiam sobre as mulheres.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O mito de fazer tudo&lt;br&gt;
Ningúem da conta de tudo, mas sempre vão mandar você fazer tudo. Se você não colocar um limite, continuarão pedindo. Saiba estabelecer os seus.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Estou pagando pela qualidade do trabalho, não pelas horas que cumprem. Esse tipo de ambiente sempre me rendeu os melhores resultados.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sigo aprendendo bastante sobre liderança, mulheres na liderança e trabalho. Quero que as pessoas sempre se apoiem e sejam transparentes. E que como diz também no livro, não tenha mais isso de "líder mulher" e "líder homem" e sim apenas "líder". Quando deixarmos de ser raridade em cargos de liderança.&lt;/p&gt;

&lt;p&gt;Por último mais um recado muito bom do livro.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Todos queremos a mesma coisa: nos sentir bem com nossas escolhas, nos sentir legitimados pelos que nos cercam. Então vamos começar nos legitimando mutuamente. As mães que trabalham fora devem considerar as mães que trabalham em casa trabalhadoras de verdade. E as mães que trabalham em casa devem ter o mesmo respeito pelas que escolheram outra opção.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Liderança para mim é isso e muito mais. E para chegar lá é preciso encarar situações (evitar medos), ter confiança (sentar-se à mesa), ter simpatia transparência, equílibrio, apoio (do parceiro ou parceira), é saber que a vida pessoal afeta sim, é saber mentorar também e também ter humildade pra ser mentorada(o) quando precisa.&lt;/p&gt;

&lt;p&gt;Espero que tenhamos em mente que não precisamos ser heróis ou heróinas e abraçar tudo, espero que a gente se conheça o suficiente pra estabelecer limites também e que a gente não saia antes de sair.&lt;/p&gt;

&lt;p&gt;Sheryl também espera:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Espero que ambos cheguem exatamente aonde querem chegar. E quando descobrirem onde residem suas verdadeiras paixões, espero que ambos façam acontecer-sempre.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Lições valiosas: aprendizados no meio do caminho</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Fri, 14 Apr 2023 22:37:04 +0000</pubDate>
      <link>https://dev.to/jumaschion/licoes-valiosas-aprendizados-no-meio-do-caminho-2n9h</link>
      <guid>https://dev.to/jumaschion/licoes-valiosas-aprendizados-no-meio-do-caminho-2n9h</guid>
      <description>&lt;p&gt;Durante algumas entrevistas de emprego, decidi fazer anotações das perguntas que me foram feitas para resumir meu conhecimento e identificar minhas lacunas de conhecimento, a fim de revisá-las posteriormente. &lt;/p&gt;

&lt;p&gt;Com isso em mente, surgiu a ideia de compartilhar essas perguntas em um artigo para ajudar outras pessoas que estejam se preparando para entrevistas de emprego. &lt;/p&gt;

&lt;p&gt;Embora eu não tenha sido capaz de explicar algumas das perguntas detalhadamente na hora, revisei o conteúdo posteriormente para fortalecer minha compreensão.&lt;/p&gt;

&lt;p&gt;Portanto, neste artigo, compartilharei algumas dessas perguntas e respostas, com o objetivo de ajudar outras pessoas a se prepararem melhor para entrevistas de emprego.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é CORS?&lt;/strong&gt;&lt;br&gt;
 O CORS, ou Cross-Origin Resource Sharing, é uma política de segurança que impede que scripts em uma página da web acessem recursos em outra origem sem permissão explícita. Quando digitamos um site, uma série de processos acontecem nos bastidores, incluindo a resolução do nome de domínio, a solicitação e o recebimento de recursos do servidor e a renderização da página.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é POST, GET, PUT e PATCH?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O POST e o GET são métodos HTTP usados para enviar e receber dados de um servidor, enquanto o PUT é usado para atualizar recursos existentes. &lt;/p&gt;

&lt;p&gt;O método PATCH é um método usado para atualizar parcialmente um recurso em um servidor. É semelhante ao método PUT, que é usado para atualizar um recurso completo, mas, em vez disso, o método PATCH é usado quando apenas uma parte do recurso precisa ser atualizada.&lt;/p&gt;

&lt;p&gt;Ao contrário do método PUT, que envia todo o recurso atualizado para o servidor, o método PATCH envia apenas as alterações necessárias no formato de um objeto JSON. O servidor, em seguida, aplica essas alterações ao recurso existente, mantendo o restante do recurso intacto.&lt;/p&gt;

&lt;p&gt;O método PATCH é usado em situações em que a atualização completa do recurso não é necessária ou em que é importante minimizar a quantidade de dados enviados pela rede. Por exemplo, pode ser usado para atualizar apenas uma propriedade de um usuário em um banco de dados, como seu nome ou endereço de e-mail, sem precisar enviar novamente todo o objeto do usuário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qual a diferença de LocalStorage, SessionStorage e Cookies?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O localStorage, sessionStorage e cookies são recursos usados para armazenar dados no navegador, mas cada um tem diferenças importantes em relação ao escopo, tempo de vida e segurança.&lt;/p&gt;

&lt;p&gt;O localStorage e o sessionStorage são objetos que permitem armazenar dados no navegador. O localStorage armazena os dados permanentemente, mesmo após o navegador ser fechado, enquanto o sessionStorage armazena os dados apenas durante a sessão atual do navegador. Ambos são armazenados localmente no navegador e têm um limite de cerca de 5-10 MB de armazenamento. Esses dados são acessíveis apenas para a mesma origem que os criou e podem ser acessados via JavaScript.&lt;/p&gt;

&lt;p&gt;Já os cookies são pequenos arquivos de texto que são armazenados no navegador e contêm informações, como preferências de usuário e informações de login. Os cookies têm um tempo de vida determinado, definido pelo desenvolvedor, e podem ser acessados ​​pelo servidor e pelo navegador do usuário. Os cookies podem ser usados para fins de rastreamento e publicidade, mas também podem ser usados para salvar informações importantes para o usuário, como informações de login e preferências de idioma.&lt;/p&gt;

&lt;p&gt;Em resumo, a principal diferença entre o localStorage e o sessionStorage é o tempo de vida dos dados armazenados, enquanto os cookies são mais versáteis e podem ser usados para armazenar informações no lado do servidor e do cliente. É importante lembrar que os dados armazenados nesses recursos podem ser acessíveis por meio de scripts maliciosos e devem ser usados com cuidado para proteger a privacidade e a segurança do usuário.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é um SPA?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SPA (Single Page Application) é um tipo de aplicação web que funciona em uma única página, em que todo o conteúdo é carregado dinamicamente sem a necessidade de recarregar a página. Em uma SPA, a navegação entre as diferentes seções do site é realizada por meio de chamadas AJAX (Asynchronous JavaScript and XML), que atualizam apenas as partes necessárias da página, sem recarregar a página inteira.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quais as formas de iterar um array? E objetos?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para iterar um array, existem várias formas, incluindo o uso de loops for e for...of e os métodos forEach, map e filter. Para iterar objetos, a função Object.keys pode ser usada para obter as chaves do objeto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é programação funcional?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A programação funcional é um paradigma de programação que enfatiza o uso de funções puras, que não têm efeitos colaterais, para criar programas mais claros e fáceis de entender. Funções puras são aquelas que não alteram nenhum estado externo e produzem resultados exclusivamente com base em seus argumentos, enquanto funções impuras podem ter efeitos colaterais e/ou dependem de estados externos para produzir seus resultados.&lt;/p&gt;

&lt;p&gt;Função pura: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;function soma(a, b) {&lt;br&gt;
  return a + b;&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Função impura: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;let contador = 0;&lt;br&gt;
function incrementa() {&lt;br&gt;
  contador++;&lt;br&gt;
  console.log(contador);&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Esta é uma função impura porque ela tem um efeito colateral: ela altera a variável contador a cada vez que é chamada. Além disso, ela depende da variável contador para produzir o resultado. Ou seja, o resultado depende do estado da variável contador no momento em que a função é chamada e, portanto, pode ser diferente a cada vez que a função é chamada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diferença dos operadores == e === ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O operador "==" compara valores, enquanto o operador "===" compara valores e tipos de dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quais são true e quais são false?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const a = 3&lt;br&gt;
const b = new Number(3)&lt;br&gt;
const c = 3&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Das constantes dadas, "a" e "c" são iguais a 3 e, portanto, verdadeiros, enquanto "b" é um objeto Number e, portanto, falso.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é Promise?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As Promises são usadas para lidar com operações assíncronas em JavaScript, enquanto o async/await é uma maneira mais fácil de lidar com as Promises. O try/catch é usado para manipular erros em um bloco de código.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quais métodos de debugar uma aplicação?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os modos de debugar uma aplicação incluem o uso de ferramentas do navegador, como o console e o debugger, bem como o uso de ferramentas de desenvolvimento externas. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é High Order Function? Dê um exemplo.&lt;/strong&gt;&lt;br&gt;
Uma High Order Function é uma função que recebe outra função como argumento ou retorna uma função. &lt;/p&gt;

&lt;p&gt;Como o método filter em JavaScript, pois recebe uma função como argumento. Essa função é usada para definir um critério de filtragem para os elementos de um array.&lt;/p&gt;

&lt;p&gt;`const numeros = [1, 2, 3, 4, 5];&lt;/p&gt;

&lt;p&gt;const numerosPares = numeros.filter(function(numero) {&lt;br&gt;
  return numero % 2 === 0;&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;console.log(numerosPares); // [2, 4]`&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que são pseudo-classes e pseudo-elementos?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As pseudo-classes e pseudo-elementos em CSS são seletores especiais usados para estilizar elementos em diferentes estados e contextos.&lt;/p&gt;

&lt;p&gt;Uma pseudo-classe é um seletor CSS que seleciona elementos com base em um estado ou condição especial, em vez de apenas em seu nome ou atributos.&lt;/p&gt;

&lt;p&gt;Um pseudo-elemento é um seletor CSS que permite estilizar partes específicas de um elemento, em vez do elemento inteiro.&lt;/p&gt;

&lt;p&gt;Pseudo-classe &lt;/p&gt;

&lt;p&gt;&lt;code&gt;a:hover {&lt;br&gt;
  color: red;&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Pseudo-elemento &lt;/p&gt;

&lt;p&gt;&lt;code&gt;p::first-letter {&lt;br&gt;
  font-size: 2em;&lt;br&gt;
  font-weight: bold;&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Espero ter conseguido ajudar a fortalecer o conhecimento de vocês também! Caso tenham ficado com alguma dúvida ou queiram aprofundar ainda mais nesses conceitos, não hesitem em buscar mais informações e praticar. Agradeço por lerem este artigo e até a próxima!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Trabalhando com JsPdf com React</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Sun, 10 Apr 2022 23:05:02 +0000</pubDate>
      <link>https://dev.to/jumaschion/trabalhando-com-jspdf-1gki</link>
      <guid>https://dev.to/jumaschion/trabalhando-com-jspdf-1gki</guid>
      <description>&lt;p&gt;Neste domingo tive uma experiência que causou uma dor de cabeça bem grande em relação ao JsPdf. Para quem não conhece, é uma biblioteca que gera em PDF's. Alguns problemas que tive: imagem jpeg não funciona, textos estavam sendo quebrados pela metade e não adicionava um outra página automaticamente quando acaba o A4. &lt;/p&gt;

&lt;p&gt;Infelizmente o problema da imagem ainda não descobri como resolver e se você souber fico feliz que comente neste post para ajudar mais pessoas da comunidade. Mas, o problema do texto + adicionar outra página automaticamente, após MUITA pesquisa, consegui uma solução. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { jsPDF as JsPDF } from 'jspdf';
import html2canvas from 'html2canvas';


const generatePdf = (): any =&amp;gt; {
const htmlSource = document.getElementById('profile');
const filename = `Currículo ${fields.name}`;

if (!htmlSource) {
  return;
}

html2canvas(htmlSource).then(function (canvas) {
  const imgData = canvas.toDataURL('image/png');
  const imgWidth = 180;
  const pageHeight = 297;

  const imgHeight = (canvas.height * imgWidth) / canvas.width;
  let heightLeft = imgHeight;
  let position = 5;
  const pdf = new JsPDF('p', 'mm');

  pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight);
  heightLeft -= pageHeight;

  while (heightLeft &amp;gt;= 0) {
    position = heightLeft - imgHeight;
    pdf.addPage();
    pdf.addImage(imgData, 'PNG', 10, position, imgWidth, imgHeight);
    heightLeft -= pageHeight;
  }
  pdf.save(filename);
});}; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Use onClick={() =&amp;gt; generatePdf()} no componente que deseja baixar o PDF.&lt;/p&gt;

&lt;p&gt;Se no seu caso continuar cortando o texto em algum local que não está bom, modifique o &lt;code&gt;const pageHeight = 297;&lt;/code&gt;, para o meu caso 297 ficou bom.&lt;/p&gt;

&lt;p&gt;Documentação: &lt;a href="http://raw.githack.com/MrRio/jsPDF/master/docs/index.html" rel="noopener noreferrer"&gt;http://raw.githack.com/MrRio/jsPDF/master/docs/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero ter ajudado!&lt;/p&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%2Fphgq8tbabmbdx2kh8gib.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%2Fphgq8tbabmbdx2kh8gib.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>12 Extensões para o Visual Studio Code que você precisa conhecer</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Wed, 10 Mar 2021 01:35:04 +0000</pubDate>
      <link>https://dev.to/jumaschion/12-extensoes-para-o-visual-studio-code-que-voce-precisa-conhecer-5afg</link>
      <guid>https://dev.to/jumaschion/12-extensoes-para-o-visual-studio-code-que-voce-precisa-conhecer-5afg</guid>
      <description>&lt;p&gt;Olá, textinho bem direto ao ponto para ajudar vocês com mais configurações no VS Code :) &lt;/p&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%2Fdx5czhcepgftqhf61upt.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%2Fdx5czhcepgftqhf61upt.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Extensão que deixa os brackets do código coloridos, assim a gente não fica tão perdido(a) quando o código é grande e está faltando fechar alguns parênteses. &lt;/p&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%2Flzfo3nplp7gcvm65rnfv.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%2Flzfo3nplp7gcvm65rnfv.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa extensão cria um servidor online para que você não precise ficar salvando o arquivo e atualizando a página do projeto toda hora. É usada mais pra projetos simples. Clique com o botão direito no arquivo html e coloque para abrir com Live Server.&lt;/p&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%2Fq3q4oc1ly2m1q49xsqw1.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%2Fq3q4oc1ly2m1q49xsqw1.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa daqui você consegue codar junto com alguém, ambos mexendo no mesmo projeto. Como se tivesse dividindo tela e a pessoa acessando seu computador.&lt;/p&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%2Fsnhk9wqxi9sncjjn127r.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%2Fsnhk9wqxi9sncjjn127r.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dá uma prévia de como está seu arquivo markdown. Muito útil para fazer aquele READ.ME bacana! Clica com o botão direito em cima do arquivo markdown e seleciona para ver prévia.&lt;/p&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%2Ftyjzoxg0lf1pci8ob6mk.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%2Ftyjzoxg0lf1pci8ob6mk.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa deixa ícones do lado dos arquivos bem bonitinhos com os símbolos de cada um. Tem ícone de html, css, js e vários outros!&lt;/p&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%2F28c1k08f823a117ynlmm.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%2F28c1k08f823a117ynlmm.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adoro essa! Ajuda demais a dar o caminho das pedras, digo, caminhos das pastas! Muitas vezes meu intellisense não funcionava para achar o caminho e resolvi o problema baixando essa extensão. &lt;/p&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%2Fi9sc7mal0ws79nd8v936.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%2Fi9sc7mal0ws79nd8v936.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa é sensacional para quem trabalha com muitos projetos. Ela deixa o VS Code da cor que você quiser, cada repositório com a cor que você definir. Nesse caso eu coloquei roxo, por exemplo!  &lt;/p&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%2F7qvur1r1kp9bvdv3n7hp.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%2F7qvur1r1kp9bvdv3n7hp.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Destaca as cores no arquivo de estilos para facilitar a visualização de que cor você está usando em x local.&lt;/p&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%2F0rigvs97exxr9nsxbemg.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%2F0rigvs97exxr9nsxbemg.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa facilita a renomear as tags!&lt;/p&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%2Fvlfa6e0r4urkkpdjgz7i.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%2Fvlfa6e0r4urkkpdjgz7i.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Essa você clica na classe css que está no html e te leva direto pro local onde ela está no arquivo de estilos.&lt;/p&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%2F842wdvnv5jwwitqeabhc.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%2F842wdvnv5jwwitqeabhc.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Muuuito utilizada, ajuda a formatar o código e possui várias regras que você pode configurar para deixar o código mais organizado. &lt;/p&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%2Fzieksgxvtgdudl48kswq.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%2Fzieksgxvtgdudl48kswq.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E por último essa que eu amo de paixão! Também para quem trabalha com muitos projetos e tem um trabalho enorme de ficar abrindo eles toda hora. Ela favorita vários projetos que você quer dentro do próprio VS Code. Isso facilita abrir e fechar os projetos.  &lt;/p&gt;

&lt;p&gt;Espero que tenha ajudado e se você conhece mais extensões úteis, comenta aqui pra gente!&lt;/p&gt;

&lt;p&gt;;*&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Programar é muito fácil</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Tue, 09 Mar 2021 00:27:03 +0000</pubDate>
      <link>https://dev.to/jumaschion/programar-e-muito-facil-4kd2</link>
      <guid>https://dev.to/jumaschion/programar-e-muito-facil-4kd2</guid>
      <description>&lt;p&gt;Eu duvido que você nunca ouviu alguém falando as seguintes frases: "ah, mas isso é simples", "mas programar é fácil" , "mas isso é um cafezinho", "isso daí é rapidinho, só por ali e não sei o que aqui e pronto", "essa task é 1 pontinho" quando na verdade não é… &lt;/p&gt;

&lt;p&gt;Isso começou a me incomodar demais, por que essas frases entram na nossa cabeça de um jeito que impregna e os neurônios começam a se conectar e levar para o "departamento" da síndrome do impostor. Logo você estará pensando: "poxa, mas isso é fácil, como não sei fazer isso? Já deveria estar sabendo, como sou burra(o), não sirvo pra isso".&lt;/p&gt;

&lt;p&gt;Programação NÃO é fácil. Repita comigo "programar NÃO é fácil". Por mais que algumas coisas estejam mais mastigadas conforme o tempo, NÃO É FÁCIL. Quando você estava na escola e precisava estudar pra uma prova de qualquer matéria que seja, é por que não era simples ir lá e tirar um 7 ou um 10, não é? Você tinha que aprender balanceamento em química, genética em biologia, geometria, rochas, guerras, economia e um compilado de matérias, assuntos e informações… Então por que um assunto totalmente diferente de tudo isso, com MUITA informação nova e complexa seria fácil?&lt;/p&gt;

&lt;p&gt;Hoje tem além de diversas linguagens do mundo frontend, backend e fullstack, tem para aprender também: arquiteturas, patterns, bibliotecas, frameworks, semântica pra aprender, regras, lógica, acessibilidade, estrutura de dados, segurança…&lt;/p&gt;

&lt;p&gt;Então por que as pessoas ficam rotulando essas coisas de fáceis sem saber o repertório do outro?&lt;/p&gt;

&lt;p&gt;Ficar classificando algumas coisas de fáceis é simples para algumas pessoas que já tem um entendimento das coisas ou que simplesmente quer julgar.&lt;/p&gt;

&lt;p&gt;Essa ansiedade, essa mania de achar que nunca está bom, que não consegue, que não entende, que outras pessoas tem facilidade e você não, isso tudo vem dessas frases terríveis que ouvimos por aí também e que nosso cérebro resolve guardar lá no fundinho, disfarçado, pronto para atacar quando precisar e de forma discreta e indireta. Entenda que ninguém nasceu sabendo as coisas. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;Nós temos a mania de olhar as pessoas como estão hoje mas nunca vemos tudo que elas passaram. E desse jeito, às vezes automaticamente soltam que algo é fácil, mas ninguém conta que já fez o "fácil" trezentas vezes.&lt;/b&gt; ;)&lt;/p&gt;

&lt;p&gt;Minha irritação com esse tipo de frase ou comportamento, não é a toa.&lt;/p&gt;

&lt;p&gt;Valorize cada passo, cada evolução que você der na vida ela sendo pequena, média ou grande. Não se compare jamais. E fique tranquila(o), tudo no seu tempo. &lt;/p&gt;

&lt;p&gt;Outra coisa: dificilmente alguém se abre sobre este tema, então não se sinta sozinha(o). Se você acha algo fácil, legal, você chegou lá! Mas tente levar isso para a pessoa que não sabe, de uma forma menos presunçosa, que tal? Tenha paciência com a(o) coleguinha que sabe menos.&lt;/p&gt;

&lt;p&gt;Mas olha só como é fácil!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://roadmap.sh/frontend" rel="noopener noreferrer"&gt;https://roadmap.sh/frontend&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como me tornei desenvolvedora Front End</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Mon, 01 Mar 2021 13:42:13 +0000</pubDate>
      <link>https://dev.to/jumaschion/como-me-tornei-desenvolvedora-front-end-ep4</link>
      <guid>https://dev.to/jumaschion/como-me-tornei-desenvolvedora-front-end-ep4</guid>
      <description>&lt;p&gt;Senta que lá vem história… Nesse texto contarei muitas coisinhas da minha trajetória profissional que não é tão longa assim, da minha vida pessoal e de todo o meu passado em relação ao que eu queria ser.&lt;/p&gt;

&lt;p&gt;Durante bons anos da minha vida, em 2007 acredito, eu queria cursar Letras. Meu sonho era ser tradutora naquelas reuniões importantes da ONU, algo assim. Mas não de inglês, nem espanhol, eu queria ser tradutora de japonês. Desde criança eu me identificava muito com a cultura japonesa e com uns 12 anos entrei em uma escola de bairro, bem tradicional e estudei japonês por uns 3 a 4 anos. &lt;/p&gt;

&lt;p&gt;Depois em 2011, entrei no ensino técnico de Vestuário no SENAI e eu não tinha mais tempo pro japonês, comecei a fazer aos sábados, mas já não conseguia ir e acabei saindo pra focar no técnico + colégio.&lt;br&gt;
Nisso eu cogitei trabalhar como modelista, mas a ideia não durou muito e fiz 1 ano e 6 meses do curso. Faltando 6 meses pra me formar eu desisti. Aprendi a costurar, fazer moldes, desenhar roupas, gestão de pessoas, moulage e foi bem legal a experiência.&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%2Fxgw5ul6giiwkittqgw0k.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%2Fxgw5ul6giiwkittqgw0k.png" alt="image escrito " width="700" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em 2013 entrei no cursinho e estava na cabeça que queria Letras na USP. Você pode pensar "nossa ela entrou no cursinho pra prestar Letras?", pois é, você não imagina a dificuldade que eu tinha com matemática, eu não passaria nem em Letras, mesmo sendo um curso com poucos inscritos. Porém, teve um dia no cursinho que fiquei para estudar e eu estava numa sala e do meu lado tinha algumas revistas "Guia do Estudante". Peguei uma revista e fiquei vendo sobre várias profissões. Você deve estar pensando que foi aí que eu vi sobre Tecnologia. Mas não. &lt;/p&gt;

&lt;p&gt;Quando eu bati o olho em "Relações Públicas" e li que lidava com idiomas, eventos (poderia mexer com fotografia também ❤) e comunicação, foi amor a primeira vista! Eu amava tudo isso que a profissão pedia e eu enfiei na cabeça que eu queria Relações Públicas.&lt;br&gt;
Mas a vida não é justa, não é mesmo? Eu me importava em ter uma faculdade de nome e queria a Cásper Libero, que era só R$1500 no mês. Mas eu não tinha passado em uma faculdade pública e não tinha grana.&lt;/p&gt;

&lt;p&gt;2013 foi um ano tão horrível para mim, que mal lembro das coisas que aconteceram nesse ano, e olha que minha memória é muito boa. Mas é como se tivesse uma nuvem em cima e eu não enxergasse nada. Não lembro quase nada da época do cursinho, foi terrível.&lt;br&gt;
Em 2014 eu comecei a trabalhar na lavanderia da mãe de uma amiga. Eu ficava na recepção e foi meu primeiro emprego na vida. Foi lá que eu vi a inscrição pro vestibular da FATEC em Gestão Empresarial. E como era um curso amplo e uma faculdade com nome, eu me inscrevi. Minha ideia era começar a trabalhar com a faculdade de Gestão Empresarial e tentar ir pra área que eu queria, pagando pós algo assim. Esse era meu pensamento na época. Em Março de 2015 comecei e trabalhar no administrativo do restaurante de um amigo.&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%2F7uvv33cgl6asv5xzh0zd.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%2F7uvv33cgl6asv5xzh0zd.png" alt="image escrito " width="700" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E foi em Agosto de 2015 que recebi uma proposta de estágio em um multinacional muito boa. Aquilo me deixou muito feliz!&lt;br&gt;
Durante o estágio eu sempre comentava que queria ir pra área de comunicação, ainda queria Relações Públicas, mas também me brilhava os olhos Marketing Digital. Eu estava na área de TI, mais especificamente com projetos de TI, mas trabalhava com SAP e foi um trabalho bem operacional.&lt;/p&gt;

&lt;p&gt;Nessa época eu tentei ir para marketing digital, mas o gerente da área não aceitou, por que eu só tomei coragem pra falar que queria mudar de área quando eu já tinha 1 ano de estágio. E ele queria alguém que ficasse 2 anos… Eu gostava muito de lá, mas na real eu estava acomodada por que a empresa era boa, mas não tinha nada a ver comigo e eu nem gostava do que eu fazia lá. Na minha entrevista já tinham avisado que efetivação era bem raro. Dito e feito, acabou em Agosto 2017 o estágio, pé na bunda, tchau e bença.&lt;br&gt;
Foi aí que começou o sofrimento, que para mim foi um divisor de águas.&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%2F2iy3fb52th4z3m4p5u3z.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%2F2iy3fb52th4z3m4p5u3z.png" alt="image mostrando " width="700" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Já tinha passado 1 mês e nada de emprego, 2 meses e nada, 3 meses e nada, 4 meses e nada, 5 meses e nada, 6, 7, 8…Começava a me questionar, poxa tenho inglês, faculdade boa, estágio em empresa boa…O que falta? Comecei a procurar vagas em Marketing Digital e via que pedia SEO, HTML, CSS… Que diabos era isso? Conversei com um amigo que trabalhava na área, tirei um certificado de Google Adwords, estudava sobre Analytics e fui atrás de uma bolsa no curso do SENAC de HTML, CSS e Javascript, que eu nem sabia o que era.&lt;/p&gt;

&lt;p&gt;O curso ia começar no final de Março de 2018, era aos sábados e ia até o final de Maio. E em Março de 2018 arrumei um emprego. Mas o emprego era tão terrível que assinei a proposta sentindo que estava assinando minha morte. Mas eu queria trabalhar! E trabalhei. Durante 1 mês fazendo CTRL + C e CTRL + V o dia inteiro. Aproveitava pra ouvir podcasts sobre tecnologia. O curso já tinha começado e eu estava curtindo demais! Foi nesse curso que comecei a ver o mundo front-end, mas nem sabia ainda desse nome: "Front-end".&lt;/p&gt;

&lt;p&gt;Bom, no dia 22 de abril de 2018, eu tive um acidente e quebrei a clavícula. Tive que me afastar do trabalho e faltar muito no curso. :(&lt;br&gt;
Mas foi graças a esse acidente que eu pensei mais na vida e na época eu soube da inscrição do bootcamp Reprograma pelo meu namorado, que já tinha me mostrado antes até, mas ainda não estava com inscrições abertas.&lt;br&gt;
A Reprograma é um curso intensivo para mulheres que queriam entrar na área de tecnologia para virarem desenvolvedoras Front-End. A inscrição era dia 27 de junho, se não me engano. Esperei ansiosamente.&lt;br&gt;
Voltei para o trabalho no dia 23 de Junho e pedi demissão no dia que abriu a inscrição para a Reprograma, dia 27. ❤&lt;br&gt;
Eu saí daquele lugar tão aliviada, tão feliz, batia o vento no meu cabelo eu estava como num filme. Só faltava tocar a música Journey — Don’t Stop Believin’ kkkkkk…&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%2Ft2tpohao582dq6lyzhe9.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%2Ft2tpohao582dq6lyzhe9.png" alt="image de uma cachorrinha pegando metrô com as orelhinhas voando, dando sensação de liberdade" width="700" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bom, enviei um vídeo, fiz uma entrevista e uma provinha e fui uma das 30 selecionadas de 300 mulheres que se inscreveram. Foi um puta de um privilégio participar disso e mudou muito a minha vida!&lt;br&gt;
Image for post&lt;br&gt;
Pois é, e foi assim que me tornei desenvolvedora. E foram os incríveis 5 meses da minha vida estudando conteúdos para entrar na área. E em Fevereiro de 2019, comecei a jornada oficialmente!!! ❤ ❤&lt;/p&gt;

&lt;p&gt;Tudo que aconteceu na minha vida foi se encaixando para chegar aqui, por mais que eu tenha passado por momentos que foram tristes para mim, eu sei que cada acontecimento estava sendo construído para hoje. Podia ter sido antes? Podia ter sido mais rápido? Talvez, mas tudo tem um motivo e acredito fortemente nisso. &lt;/p&gt;

&lt;p&gt;Eu era "de humanas", distraída, com dificuldade em exatas, e é super possível com amor e dedicação aprender coisas diferentes e que sejam desafiadoras. &lt;/p&gt;

&lt;p&gt;Então se você está lendo esse texto e acha que não serve pra área por que "é de humanas", rótulo idiota que criaram, não desanime, por que eu sou de "humanas", sou de "exatas", sou de "artes" e principalmente sou de "brisas", por que eu "briso" bastante e falo várias merdas! hahahahah…. Viva a espontaneidade!! Seja quem você quiser, sem medo de rótulos ;)&lt;/p&gt;

&lt;p&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%2F84ebt92g2m0ios6b6vfq.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%2F84ebt92g2m0ios6b6vfq.png" alt="image do " width="700" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>webdev</category>
      <category>writing</category>
    </item>
    <item>
      <title>Como entrar para a área de desenvolvimento Front-End</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Mon, 01 Mar 2021 12:59:38 +0000</pubDate>
      <link>https://dev.to/jumaschion/como-entrar-para-a-area-de-desenvolvimento-front-end-1nel</link>
      <guid>https://dev.to/jumaschion/como-entrar-para-a-area-de-desenvolvimento-front-end-1nel</guid>
      <description>&lt;p&gt;#beginners&lt;/p&gt;

&lt;p&gt;Se você já sabe a diferença entre Frontend, Backend e Full-stack, se apaixonou por uma dessas frentes e quer saber como entrar realmente na área, não deixe de ler esse texto!&lt;/p&gt;

&lt;p&gt;Quando eu descobri a área de Front, a primeira coisa que fiz foi pesquisar qual faculdade eu precisava fazer. Eu achava que existia uma formação específica pra isso, o que descobri que não era verdade.&lt;/p&gt;

&lt;p&gt;Muitas pessoas que entram na área de programação fizeram faculdades de TI , Análise e desenvolvimento de sistemas, Ciência da computação ou Engenharias (não restrita a computação). O legal desses cursos é que eles dão uma base teórica de cálculo e de linguagens de programação de baixo nível ( C♯, VB.NET, Java, Objective-C, PHP, etc…), e é a partir dessas matérias que as pessoas começam a se interessar pela programação e decidem ser programadores focando em Front, Back ou Full-Stack, etc.&lt;/p&gt;

&lt;p&gt;Resolvi escrever esse texto por que muitas pessoas me perguntam como cheguei até aqui, ainda mais sendo uma mulher que não veio da área de TI (o que gera uma curiosidade maior). No meu caso, descobri a programação porque queria trabalha com Marketing Digital, mas essa história contarei em outro momento.&lt;/p&gt;

&lt;p&gt;Vou falar aqui de algumas maneiras de entrar na área de programação frontend para além de fazer uma faculdade. Em qualquer graduação ou tecnólogo, raramente veremos uma matéria focada nas linguagens frontend e por isso as pessoas acabam aprendendo sozinhas, em suas experiências profissionais ou cursos dos mais diversos.&lt;/p&gt;

&lt;p&gt;Um detalhe importante é que você pode ser formado em outra área que não seja de tecnologia, e por isso esses cursos criam oportunidades para as pessoas entrarem nessa área. As habilidades técnicas são mais valorizadas do que sua formação (ou a inexistência dela).&lt;/p&gt;

&lt;p&gt;Você está pronta(o)? Algumas maneiras de começar são:&lt;/p&gt;

&lt;h2&gt;1. Cursos Online&lt;/h2&gt;

&lt;p&gt;Recomendo procurar por cursos em plataformas como &lt;a href="https://www.udemy.com/"&gt;Udemy&lt;/a&gt;, &lt;a href="https://www.coursera.org/"&gt;Coursera&lt;/a&gt;, &lt;a href="https://rocketseat.com.br/"&gt;Rocketseat&lt;/a&gt;, &lt;a href="https://www.alura.com.br/"&gt;Alura&lt;/a&gt; e até alguns canais no Youtube com aulas gratuitas.&lt;/p&gt;

&lt;p&gt;Na Udemy, onde os cursos tem preços mais acessíveis, gosto muito dos cursos do Fernando Daciuk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://queroser.ninja/promocoes"&gt;queroser.ninja - Promoções&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fique ligado nessa página para aproveitar as promoções dos cursos Ninja!&lt;/p&gt;

&lt;p&gt;No youtube, muitos programadores já viram e aprenderam com os vídeos do &lt;a href="https://www.youtube.com/user/cursosemvideo"&gt;Professor Guanabara do Curso em Vídeo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tanto em português quanto em inglês, há muitos canais e vídeos bons para você entender melhor alguns conceitos, seguir tutoriais ou aprender alguma linguagem nova.&lt;br&gt;
É o jeito mais acessível para você começar a aprender uma linguagem ou até mesmo a programar suas primeiras páginas online.&lt;/p&gt;

&lt;h2&gt;2. Especializações&lt;/h2&gt;

&lt;p&gt;Existe também a possibilidade de você cair de cabeça na área e procurar cursos presenciais, pagos e imersivos para sair com uma certificação de pessoa programadora frontend, como por exemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.digitalhouse.com/br/"&gt;Digital House&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mastertech.com.br/"&gt;Mastertech&lt;/a&gt;&lt;br&gt;
Na Mastertech você pode aprender habilidades como tecnologia, design, marketing digital e negócios. &lt;/p&gt;

&lt;h2&gt;{Especial Mulheres}&lt;/h2&gt;

&lt;h2&gt;3. Bootcamps&lt;/h2&gt;

&lt;p&gt;Bootcamps são cursos intensivos que podem ter uma duração mais longa de meio período ou mais curta em período integral, dependendo da instituição.&lt;/p&gt;

&lt;p&gt;Aqui falarei dos bootcamps exclusivos para pessoas que se identificam como mulheres, porque a gente merece um ambiente inclusivo e seguro para aprender a programar! ❤&lt;/p&gt;

&lt;p&gt;&lt;a href="https://reprograma.com.br/"&gt;{Reprograma}&lt;/a&gt;&lt;br&gt;
Sou filha da {reprograma} e super indico para todas as mulheres que tiverem a oportunidade de participar dessa iniciativa. Prego a palavra dela pois foi o que mudou minha vida.&lt;br&gt;
É gratuito❤&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.laboratoria.la/br"&gt;Laboratória&lt;/a&gt;&lt;br&gt;
Laboratoria - Bootcamp intensivo só para mulheres e você sai de lá empregada e depois paga uma % para eles só quando tiver empregada.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.programaria.org/cursos/euprogramo/"&gt;Progra{m}aria&lt;/a&gt;&lt;br&gt;
São cursos pagos porém super acessíveis as mulheres que desejam começar a programar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://desprograme.com.br/pt/3"&gt;[Des]programe&lt;/a&gt;, &lt;a href="http://minasprogramam.com/"&gt;MinasProgramam &lt;/a&gt;e diversas outras iniciativas que você pode encontrar na sua região através de meetups e eventos voltados para mulheres na tecnologia❤&lt;/p&gt;

&lt;p&gt;É sempre bom dizer que nem todas as iniciativas são gratuitas e a maioria está presente na cidade de São Paulo, e por isso recomendo consultar as informações nos sites sobre pagamentos, pré-requisitos, como participar, etc.&lt;br&gt;
Há muitas maneiras de entrar para a área de desenvolvimento frontend. Claro que você pode sentir que é mais fácil fazer uma faculdade ou um bootcamp que te direciona, te dá mais apoio, estabelece uma rotina, etc, mas essas não são as únicas formas de chegar lá.&lt;/p&gt;

&lt;p&gt;Se você quiser ou puder estudar apenas com os cursos online ou de algumas plataformas gratuitas não tem problema! Esse será um caminho um pouco mais difícil no sentido de montar sua própria rotina de estudos, mas não é impossível!&lt;/p&gt;

&lt;p&gt;A maioria das empresas mandam testes para você fazer, testando seus conhecimentos de código. Se você estiver focado nos estudos, aprendendo legal e de forma constante, é bem provável que consiga uma oportunidade e depois ir crescendo na área dentro da empresa.&lt;/p&gt;

&lt;p&gt;Aliás, nessa área é preciso estudar sempre e se atualizar sempre. A tecnologia muda rápido e para não ficar para trás, precisamos acompanhar as tendências. É uma área de muito esforço e aprendizado contínuo, e por isso mesmo quem já está na área está sempre estudando.&lt;br&gt;
Espero ter dado uma luz para quem quer mudar de carreira! Fico a disposição para dúvidas ou comentários&lt;/p&gt;

&lt;p&gt;Até a próxima! ❤&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Programando com Ramda JS</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Mon, 01 Mar 2021 12:46:01 +0000</pubDate>
      <link>https://dev.to/jumaschion/programando-com-ramda-js-cbl</link>
      <guid>https://dev.to/jumaschion/programando-com-ramda-js-cbl</guid>
      <description>&lt;p&gt;Algumas coisas que aprendi depois de conhecer o Ramda, uma excelente biblioteca de programação funcional.&lt;/p&gt;

&lt;p&gt;O Ramda facilita diversos métodos que a gente utiliza no dia a dia, além de melhorar performance e evitar erros. A dificuldade de achar conteúdos em português sobre o Ramda fez com que eu tivesse a ideia para este texto.&lt;br&gt;
Mesmo lendo a documentação, confesso que ainda tem coisas que me deixam boiando. Não sou uma especialista, mas quero compartilhar e comentar alguns métodos bem bacanas que ele permite usar!&lt;/p&gt;

&lt;h2&gt;Programação Funcional&lt;/h2&gt;

&lt;p&gt;Antes de focarmos no Ramda, vale uma breve explicação sobre programação funcional, que tem tudo a ver com ele. O que é? Onde vive? O que come?&lt;/p&gt;

&lt;p&gt;Ela é baseada na aplicação de funções matemáticas e utiliza o conceito de imutabilidade. Nela, o código tem funções/passos para chegar à resolução de um problema.&lt;/p&gt;

&lt;blockquote&gt;"Já existem várias bibliotecas excelentes com um sabor funcional. Normalmente, elas devem ser kits de ferramentas de uso geral, adequadas para trabalhar em vários paradigmas.
Ramda tem um objetivo mais focado. Queríamos uma biblioteca projetada especificamente para um estilo de programação funcional, que facilite a criação de pipelines funcionais, que nunca modifique os dados do usuário"&lt;/blockquote&gt;

&lt;p&gt;O Ramda é justamente uma ótima biblioteca de programação funcional.&lt;/p&gt;


&lt;h2&gt;Alguns recursos do Ramda&lt;h2&gt;

&lt;/h2&gt;
&lt;/h2&gt;
&lt;p&gt;Abaixo veremos alguns métodos do Ramda. Você também pode verificá-los na &lt;a href="https://ramdajs.com/docs/#"&gt;documentação&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;ANY, EQUALS, VALUES&lt;/h3&gt;

&lt;p&gt;Com esse recurso, podemos procurar um valor específico dentro de um array ou objeto.&lt;/p&gt;

&lt;pre&gt;import {any, equals, values} from 'ramda'
const array = [1,2,3,6,7,8,0]
any(equals(0))(values(array))
//true&lt;/pre&gt;

&lt;p&gt;Assim, se algum (any) valor do array (values) for igual (equal) a zero, ele retornará true. :D&lt;/p&gt;

&lt;h3&gt;PATH, PIPE, MAP&lt;/h3&gt;

&lt;p&gt;Agora vamos supor que você tem um objeto e gostaria de pegar os nomes de autores de livros.&lt;/p&gt;

&lt;pre&gt;let library= {
     “books”: {
      “authors”: [
       {“authorName”:”Kyle Simpson”,”book”:”you don’t know JS”}, 
      {“authorName”:”David Flanagan”,”book”:”O guia definitivo JS”}
    ]
  }
}&lt;/pre&gt;

&lt;p&gt;Com o Ramda, podemos fazer:&lt;/p&gt;

&lt;pre&gt;//react component
import {path, pipe, map} from 'ramda'
const getAuthors = pipe(
  path(["book" , "authors"] ),
  map(item =&amp;gt; item.authorName)
 );
getAuthors(library);
//["Kyle Simpson", "David Flanagan"]&lt;/pre&gt;

&lt;p&gt;Confesso que, usando o pipe no dia a dia, às vezes é mais chatinho de entender. Ele cria a sequência de funções que você quiser, então entender a construção que cada dev faz pode ser complicado.&lt;br&gt;
Um outro detalhe muito importante, o PIPE executa a composição da esquerda pra direita e o COMPOSE executa da direita pra esquerda. O COMPOSE é a mesma coisa do PIPE, porém em outro sentido de execução da composição.&lt;br&gt;
Esses métodos são bem importantes, pois facilitam quando precisamos usar vários outros métodos ao mesmo tempo, compondo o que precisamos :D&lt;/p&gt;

&lt;h3&gt;MergeDeepRight&lt;/h3&gt;

&lt;p&gt;Como uma boa taurina que adora comer, sempre gosto de acrescentar mais uma coisinha no meu sanduíche.&lt;/p&gt;

&lt;pre&gt;//react component
import {mergeDeepRight} from 'ramda'
const sandwich = {
 bread: “normal”,
 cheese: “blue cheese”,
 meat: “knuckle”
}
const withSalad = mergeDeepRight(sandwich, {
 salad: ‘pickle’,
 });
mergeDeepRight(withSalada, sandwich)
//{"meat": "knuckle", "bread": "normal", "cheese": "blue cheese", "salad": "pickle"}&lt;/pre&gt;

&lt;p&gt;Em resumo, o Ramda é uma ferramenta muito legal, focada em obter desempenho.&lt;/p&gt;

&lt;p&gt;Com ele, as implementações ficam mais simples e rápidas que com os métodos nativos. Além disso, ele trabalha o mantra DRY (don't repeat yourself). &lt;/p&gt;

&lt;p&gt;No geral, use-o para facilitar sua vida e trazer performance. ;)&lt;br&gt;
Alguns links legais que achei pesquisando (infelizmente a maior parte está em inglês):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Cltoo-NJ2JM"&gt;Tutoriais legais no YouTube&lt;/a&gt;&lt;br&gt;
&lt;a href="https://betterprogramming.pub/why-i-fell-in-love-with-ramda-and-functional-programming-in-javascript-797c070133b0"&gt;Why I Fell in Love With Ramda&lt;/a&gt;&lt;br&gt;
&lt;a href="https://fr.umio.us/why-ramda/"&gt;Why Ramda?&lt;/a&gt;&lt;br&gt;
&lt;a href="https://itnext.io/a-beginners-guide-to-ramda-part-1-7e4a34972e97"&gt;A beginners guide to Ramda (Part 1)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://itnext.io/a-beginners-guide-to-ramda-part-2-lenses-62bdd3993598"&gt;A beginners guide to Ramda (Part 2)&lt;/a&gt;&lt;br&gt;
&lt;a href="https://medium.com/@arecvlohe/functional-programming-in-js-with-ramda-5ea226e76df1"&gt;Functional Programming in JS with Ramda&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero que tenham gostado!&lt;/p&gt;

&lt;p&gt;;*&lt;/p&gt;

</description>
      <category>functional</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Primeiros passos com Git e Github</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Mon, 01 Mar 2021 03:23:37 +0000</pubDate>
      <link>https://dev.to/jumaschion/primeiros-passos-com-git-e-github-29i</link>
      <guid>https://dev.to/jumaschion/primeiros-passos-com-git-e-github-29i</guid>
      <description>&lt;p&gt;Fundado em 2008, o Github (recentemente adquirido por $7.5 bilhões pela Microsoft.) é como se fosse uma rede social utilizada principalmente por desenvolvedores. &lt;/p&gt;

&lt;p&gt;Nele você consegue colocar seus projetos pessoais e compartilhar com as pessoas. O famoso open source, que são códigos abertos, também rola bastante por lá e isso possibilita que você possa contribuir com os projetos que possuem código aberto. &lt;/p&gt;

&lt;p&gt;Você pode salvar tudo em forma pública no seu perfil (qualquer pessoa, mesmo sem ter uma conta pode ver e baixar tudo o que você publicar), e de forma privada (somente membros com permissão de acesso podem visualizar ou baixar seu projeto). As &lt;b&gt;vantagens&lt;/b&gt; de utilizar essa plataforma são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organização dos seus projetos;&lt;/li&gt;
&lt;li&gt;Compartilhamento dos seus projetos;&lt;/li&gt;
&lt;li&gt;Servirá de portfólio para você;&lt;/li&gt;
&lt;li&gt;Guardar outros arquivos não somente de código;&lt;/li&gt;
&lt;li&gt;Versatilidade: Você pode guardar qualquer tipo de arquivo no git/Github, não necessariamente código. O Github utiliza uma linguagem chamada Markdown, que permite criar listas, links, ancôras, adicionar imagens, vídeos, gifs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Como criar uma conta?&lt;/h2&gt;
 

&lt;p&gt;Clique em "Sign Up" e crie sua conta: &lt;/p&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%2F2rbg8rm7qmkh8j5d0lzy.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%2F2rbg8rm7qmkh8j5d0lzy.png" alt="Imagem do Github Sign in, tela para fazer cadastro"&gt;&lt;/a&gt;&lt;/p&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%2Fwhxl7m4uligl5o89f6uf.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%2Fwhxl7m4uligl5o89f6uf.png" alt="Tela do cadastro do Github"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;Agora, o que é o Git?&lt;/h2&gt;

&lt;p&gt;Git é um sistema de controle de versão desenvolvido por Linus Torvalds (o criador do Linux).&lt;br&gt;
Com o git conseguimos gerar versões do nosso código, igual aquele trabalho de escola "versão1", "versão2", "versãoAgoraVai" etc…Por isso ele é conhecido como um sistema de VERSIONAMENTO DE CÓDIGO.&lt;br&gt;
Com ele outras pessoas podem trabalhar simultaneamente no mesmo código sem riscos de perdermos nada do nosso trabalho. Temos todo o histórico do que foi modificado e a pessoa que modificou. Fofoqueiro ele, né?&lt;/p&gt;

&lt;h2&gt;Por que o Git é importante?&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Organização: O Git cria uma timeline com tudo que aconteceu desde o início do projeto. Tudo que foi adicionado, removido, e quem foi o autor.&lt;/li&gt;
&lt;li&gt;Projetos com várias pessoas: Evita o “final_valendo_valendo2_oficial”. Também facilita o trabalho em equipe (entender o que foi feito, onde parou, quem fez o que).&lt;/li&gt;
&lt;li&gt;Segurança: Se algo der errado, você pode resgatar uma versão anterior, além de ter o seu projeto salvo em um lugar seguro.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;O que é a linha de comando/terminal?&lt;/h2&gt;

&lt;p&gt;A linha de comando é o terminal, onde o GIT é usado. Ela ajuda a manipular arquivos no computador, mas sem a interface gráfica.&lt;br&gt;
Também tem outros nomes como: cmd, CLI, prompt, console ou terminal. Imagem representando a linha de comando:&lt;/p&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%2Fnhev51a987no7a1s8t82.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%2Fnhev51a987no7a1s8t82.png" alt="imagem de um terminal como exemplo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Comandos básicos do terminal&lt;/h3&gt;

&lt;h5&gt;Esses comandos servem para para listar arquivos e navegar entre pastas dentro do computador:&lt;/h5&gt; 

&lt;ul&gt;
&lt;li&gt;ls - LISTAR (ele traz uma lista de tudo o que está naquela pasta - documentos, outras pastas, etc);&lt;/li&gt;
&lt;li&gt;pwd - Present working directory (onde estou?) Ele traz todo o caminho onde você está (em que pasta e onde essa pasta fica);&lt;/li&gt;
&lt;li&gt;cd - change directory (use para se locomover entre as pastas);&lt;/li&gt;
&lt;li&gt;cd ~ - volta para a raiz;&lt;/li&gt;
&lt;li&gt;cd . - volta uma pasta acima;&lt;/li&gt;
&lt;li&gt;cd nome-da-pasta - para entrar em uma pasta (você precisa conseguir enxergar ela quando listar os arquivos)
whoami - "quem sou eu?" identifica o usuário que está mexendo no sistema.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Instalando/verificando se o Git está conectado ao seu usuário&lt;/h2&gt;

&lt;p&gt;Nesse link ele mostra como instalar pra cada sistema operacional: Mac, Windows, Linux etc.&lt;br&gt;
&lt;a href="https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git" rel="noopener noreferrer"&gt;https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git&lt;/a&gt;&lt;br&gt;
Configurando e removendo usuário:&lt;/p&gt;

&lt;blockquote&gt;git config --global user.name “Fulana Ciclana" 
git config --global user.email “fulana.ciclana@gmail.com”&lt;/blockquote&gt;

&lt;p&gt;Para remover o usuário&lt;/p&gt;

&lt;blockquote&gt;git config --global --unset-all user.name "Fulana Ciclana"
git config --global --unset-all user.email “fulana.ciclana@gmail.com”&lt;/blockquote&gt;

&lt;h2&gt;Formas de trabalhar com o Git/GitHub&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Iniciar um projeto novo na sua máquina e subir para o GitHub&lt;/li&gt;
&lt;li&gt;Baixar um projeto que está hospedado no GitHub e trazer para a nossa máquina&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Iniciar um projeto na sua máquina e subir pro GitHub&lt;/h2&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%2Fchy0pabqxvvqwf5dudw3.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%2Fchy0pabqxvvqwf5dudw3.png" alt="Imagem com exemplos de utilização no terminal"&gt;&lt;/a&gt;&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%2Fxjsqhqxd483kx9unphnx.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%2Fxjsqhqxd483kx9unphnx.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cd - Vai pra um diretório;&lt;/li&gt;
&lt;li&gt;git init - Para o git começar a observar as modificações no repositório;&lt;/li&gt;
&lt;li&gt;git status - Verificar o que foi modificado;&lt;/li&gt;
&lt;li&gt;git add . (vai adicionar TODAS as alterações), caso queira apenas alguns arquivos, deve ser git add  e pode ser mais de um nome de arquivo;&lt;/li&gt;
&lt;li&gt;git commit -m "" mensagem que enviaremos de modificações, remoções, adições etc;&lt;/li&gt;
&lt;li&gt;git remote add origin "", endereço para onde vai a atualização lá para o Github;&lt;/li&gt;
&lt;li&gt;git remote -v, verificar se a url está correta;&lt;/li&gt;
&lt;li&gt;git push origin master, enviar;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Baixar um projeto que está hospedado no GitHub para a nossa máquina&lt;/h2&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%2F7sbiker1bqy4vyocbk9r.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%2F7sbiker1bqy4vyocbk9r.png" alt="image de como copiar URL do repositório no Github"&gt;&lt;/a&gt;&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%2Fkgjirmghil7gkl4z8wk2.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%2Fkgjirmghil7gkl4z8wk2.png" alt="passo a passo de baixar um projeto que está hospedado no GitHub para a nossa máquina"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copiar a URL do repositório criado no Github;&lt;/li&gt;
&lt;li&gt;git clone, para clonar no local que você desejar. No exemplo 
 coloquei no Desktop com cd Desktop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Não esqueça de direcionar onde você quer clonar com o "cd" para não clonar em local errado e perder onde está o arquivo.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Após esses passos é só repetir os passos que já comentei quando queremos iniciar um projeto na máquina e subir pro GitHub (git status, git add, commit, push etc...)&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Importante: Fazer um pull sempre antes do push para evitar conflitos e evitar apagar alguma informação remota.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Bom pessoal, eu sei que o texto é grande e tem muitas informações. Por isso, farei outros textos de github pages e branch separadamente. &lt;/p&gt;

&lt;p&gt;Peguei referências desse repositório que me ajudou muito quando eu estava aprendendo : &lt;a href="https://github.com/reprograma/github" rel="noopener noreferrer"&gt;Reprograma Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Também indico o curso: &lt;a href="https://www.udemy.com/course/git-e-github-ninja/" rel="noopener noreferrer"&gt;curso Git e Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pratique bastante, esse é o segredo!&lt;/p&gt;

&lt;p&gt;;*&lt;/p&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%2Fv52xctagiz9iptyvxh7d.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%2Fv52xctagiz9iptyvxh7d.png" alt="image de isso é tudo pessoal"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>github</category>
      <category>git</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Configurando ambiente de desenvolvimento no Windows</title>
      <dc:creator>Julia  Maschion</dc:creator>
      <pubDate>Fri, 26 Feb 2021 22:55:47 +0000</pubDate>
      <link>https://dev.to/jumaschion/configurando-ambiente-de-desenvolvimento-no-windows-5b16</link>
      <guid>https://dev.to/jumaschion/configurando-ambiente-de-desenvolvimento-no-windows-5b16</guid>
      <description>&lt;p&gt;Olá, hoje vou passar aqui umas dicas de como instalar algumas ferramentas no Windows para configurar nosso ambiente de desenvolvimento. Vamos lá:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OTMFzFjn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://chocolatey.org/content/images/icon_slogan.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OTMFzFjn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://chocolatey.org/content/images/icon_slogan.png" alt="Imagem do site do Chocolatey" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando o Chocolatey&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;A primeira coisa a instalar vai ser o &lt;b&gt;&lt;a href="https://docs.chocolatey.org/en-us/choco/setup#more-install-options"&gt;Chocolatey&lt;/a&gt;&lt;/b&gt;. Ele é um gerenciador de pacotes para o Windows que ajuda a instalar, atualizar e remover outras ferramentas de desenvolvimento.&lt;/p&gt;

&lt;p&gt;Tem duas formas, ou pelo cmd do Windows ou pelo PowerShell.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando com cmd.exe&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" &amp;amp;&amp;amp; SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
&lt;/blockquote&gt;

&lt;p&gt;&lt;b&gt;Instalando com PowerShell.exe&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--btH1bqhn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/5120/1%2Amp91A9RzagntGGjBnwu4Yw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--btH1bqhn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://miro.medium.com/max/5120/1%2Amp91A9RzagntGGjBnwu4Yw.png" alt="Imagem do Node" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando o Node&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Dependemos do Node no terminal para executar algumas coisas e o NPM para gerenciar as atualizações, pacotes etc.&lt;/p&gt;

&lt;p&gt;Após a instalação do Chocolatey, precisamos instalar o &lt;a href="https://nodejs.org/en/download/package-manager/#windows"&gt;Node&lt;/a&gt; para Windows, assim conseguiremos lidar com o &lt;b&gt;npm&lt;/b&gt; (gerenciador de pacotinhos do node :) ).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Instalando o node usando o Chocolatey:&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;blockquote&gt;cinst nodejs
#  ou 
cinst nodejs.install&lt;/blockquote&gt;

&lt;p&gt;===========================================&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Configurando seu terminal:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Agora chegamos na parte divertida de colorir um pouco as coisas. Abaixo teremos o site do &lt;a href="https://draculatheme.com/"&gt;Dracula Theme&lt;/a&gt;, onde tem o tema mais usado para vários tipos de lugares! Iupi!  :D&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fIPyy3Yh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://draculatheme.com/static/icons/pack-1/045-dracula.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fIPyy3Yh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://draculatheme.com/static/icons/pack-1/045-dracula.svg" alt="Imagem do site do Dracula Theme" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;BÔNUS&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;No meu caso eu tive que configurar tudo e mais um pouco. O usuário do computador era outra pessoa e eu tive que modificar o nome do usuário no disco local &lt;b&gt;C:\Users&lt;/b&gt;. Para isso o que eu fiz: &lt;/p&gt;

&lt;p&gt;&lt;b&gt;IMPORTANTE:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Antes de fazer o passo a passo certifique-se de que você já se colocou como Administrador do computador, caso não, digite no pesquisar do Windows "netplwiz" &amp;gt; propriedades &amp;gt; associação de grupo &amp;gt; Administrador.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;1) Fui na barra de pesquisar do Windows e digitei "regedit";&lt;br&gt;
2) Abrindo o registro do Windows eu fechei as pastinhas que estavam abertas pra ir em &lt;em&gt;HKEY_LOCAL_MACHINE&lt;/em&gt;;&lt;br&gt;
3) Depois em software &amp;gt; Microsoft &amp;gt; Windows NT &amp;gt; Current Version &amp;gt; Profile List;&lt;br&gt;
4) Dentro de Profile List procure o nome de usuário que está atualmente. Provável que estará algo assim: &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%2F9nhnq7it396a7ugknoby.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%2F9nhnq7it396a7ugknoby.png" alt="image" width="327" height="20"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) Botão direito no ProfileImage &amp;gt; Modificar. Coloque o nome que você quer na pasta;&lt;br&gt;
6) Reinicie o Windows, quando entrar na área de trabalho (tomei um susto nessa parte pois tinha sumido tudo do computador, pois estava em um usuário temporário, mas por que precisava fazer outro passo que falo no passo 7);&lt;br&gt;
7)Vá na pasta dentro do computador mesmo C:\Users&amp;lt;usuáriox&amp;gt; e já estará disponível para renomear o nome do antigo usuário "". &lt;em&gt;Renomeie para o nome que você colocou no "regedit".&lt;/em&gt;&lt;br&gt;
7) Reinicie novamente o computador e agora já deve estar com seu usuário correto.&lt;/p&gt;

&lt;p&gt;É isso pessoal, espero que tenha ajudado bastante vocês! Podem me dar feedback ou se quiser algum tema aqui para eu escrever pode falar também. Se eu souber ajudar, ajudarei! :)&lt;/p&gt;

&lt;p&gt;Vídeo que me ajudou com o caso de usuário &lt;a href="https://www.youtube.com/watch?v=H5NcfzmtTJY&amp;amp;feature=emb_title"&gt;https://www.youtube.com/watch?v=H5NcfzmtTJY&amp;amp;feature=emb_title&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Redes sociais: &lt;br&gt;
&lt;a href="https://twitter.com/xjulices"&gt;https://twitter.com/xjulices&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/jumaschion"&gt;https://github.com/jumaschion&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;;*&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>help</category>
    </item>
  </channel>
</rss>
