<?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>Forem: Hudson Arruda </title>
    <description>The latest articles on Forem by Hudson Arruda  (@hudson3384).</description>
    <link>https://forem.com/hudson3384</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%2F946853%2Fc15469d6-678a-4141-bfe5-6b4593c2e242.jpeg</url>
      <title>Forem: Hudson Arruda </title>
      <link>https://forem.com/hudson3384</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hudson3384"/>
    <language>en</language>
    <item>
      <title>5 cursos que eu faria se estivesse começando agora no Frontend</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Fri, 06 Dec 2024 21:00:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/5-cursos-que-eu-faria-se-estivesse-comecando-agora-no-frontend-4kh4</link>
      <guid>https://forem.com/hudson3384/5-cursos-que-eu-faria-se-estivesse-comecando-agora-no-frontend-4kh4</guid>
      <description>&lt;p&gt;Começar sempre é desafiador, especialmente em programação. Tudo é novo, e com tantos vendedores de cursos tentando chamar sua atenção, fica difícil filtrar o que realmente vale a pena. Neste artigo, quero recomendar conteúdos que já usei, confio e acredito que irão ajudar você a dar o próximo passo. E o melhor: todos são gratuitos!&lt;/p&gt;




&lt;h2&gt;
  
  
  1. HTML e CSS Feliz - Marco Bruno
&lt;/h2&gt;

&lt;p&gt;Marco Bruno já foi professor na Alura, é idealizador da ColabCode, uma comunidade incrível no Discord, e eu costumo recomendar tudo o que ele cria. Mas por que escolher este curso em específico?&lt;/p&gt;

&lt;p&gt;O HTML e CSS Feliz tem como diferencial a didática do Marco, que vai além do básico:&lt;/p&gt;

&lt;p&gt;Ele ensina a construir uma rotina de desenvolvedor, incluindo commits e refatoração.&lt;/p&gt;

&lt;p&gt;Propõe desafios práticos entre as aulas.&lt;/p&gt;

&lt;p&gt;Entrega um projeto completo no final do curso que também serve como portfólio.&lt;/p&gt;

&lt;p&gt;Por que não começar com esses três benefícios no seu primeiro curso?&lt;/p&gt;

&lt;p&gt;Link do curso:&lt;br&gt;
&lt;a href="https://youtube.com/playlist?list=PLirko8T4cEmzrH3jIJi7R7ufeqcpXYaLa&amp;amp;si=mtGaV49-HNMZJpd0" rel="noopener noreferrer"&gt;HTML e CSS Feliz - Marco Bruno&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Curso de Javascript - Guanabara
&lt;/h2&gt;

&lt;p&gt;Gustavo Guanabara é uma referência no ensino de tecnologia. Há mais de 15 anos ele compartilha conteúdos gratuitos no YouTube. Este curso, em parceria com o Google, é um excelente ponto de partida para aprender JavaScript.&lt;/p&gt;

&lt;p&gt;Você vai aprender:&lt;/p&gt;

&lt;p&gt;As principais funcionalidades do JavaScript.&lt;/p&gt;

&lt;p&gt;Manipulação do DOM.&lt;/p&gt;

&lt;p&gt;Exercícios práticos explicados de forma simples e objetiva, preparando você para estudar por conta própria.&lt;/p&gt;

&lt;p&gt;Link do curso:&lt;br&gt;
&lt;a href="https://youtube.com/playlist?list=PLHz_AreHm4dlsK3Nr9GVvXCbpQyHQl1o1&amp;amp;si=KgPJEyjrt7gKpNkT" rel="noopener noreferrer"&gt;Curso de JavaScript - Guanabara&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Curso Jogo da Memória - JavaScript para React
&lt;/h2&gt;

&lt;p&gt;Mais uma aula do lendário Marco Bruno! Aqui, ele ensina como criar um jogo da memória utilizando a sintaxe JSX e ferramentas como Vite, essenciais para quem deseja se tornar um desenvolvedor frontend.&lt;/p&gt;

&lt;p&gt;Por que fazer esse curso?&lt;/p&gt;

&lt;p&gt;Ele aprofunda conceitos de JavaScript.&lt;/p&gt;

&lt;p&gt;Reduz a complexidade da transição para o React, ideal para quem está começando.&lt;/p&gt;

&lt;p&gt;Link do curso:&lt;br&gt;
&lt;a href="https://youtube.com/playlist?list=PLirko8T4cEmzWZVn_ZKQbfDOuCnSZJ4va&amp;amp;si=ShzBtDkHnf7DGKWz" rel="noopener noreferrer"&gt;Curso Jogo da Memória - JavaScript para React&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Bootcamp Gratuito - Fdaciuk
&lt;/h2&gt;

&lt;p&gt;Fdaciuk é outro grande nome na comunidade da ColabCode, com profundo conhecimento em React. Neste bootcamp gratuito, ele aborda os principais tópicos sobre React, com desafios práticos e uma didática impecável.&lt;/p&gt;

&lt;p&gt;O curso é uma excelente oportunidade para quem quer solidificar os fundamentos e avançar na jornada como desenvolvedor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/safety/go?messageThreadUrn=urn%3Ali%3AmessageThreadUrn%3A&amp;amp;url=https%3A%2F%2Ffdaciuk.notion.site%2FBootcamp-React-js-B-Academy-04beed6c0dda4b79a28709b0f4cf6042&amp;amp;trk=flagship-messaging-android" rel="noopener noreferrer"&gt;Link do bootcamp:&lt;br&gt;
Bootcamp Gratuito - Fdaciuk&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Pokedex - Pasquadev
&lt;/h2&gt;

&lt;p&gt;Este projeto foi o mais desafiador para mim no início, mas me ajudou a compreender e aplicar vários conceitos do React na prática.&lt;/p&gt;

&lt;p&gt;Neste curso, Pasquadev ensina como criar uma Pokedex consumindo a API PokeAPI e usando os principais hooks do React:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;useEffect&lt;/p&gt;

&lt;p&gt;useState&lt;/p&gt;

&lt;p&gt;useContext&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O tutorial tem 4 horas de duração, é prático e vale cada segundo.&lt;/p&gt;

&lt;p&gt;Link do curso:&lt;br&gt;
&lt;a href="https://youtu.be/n2kkXup2T1c?si=x9jf2oGAW18XgMYg" rel="noopener noreferrer"&gt;Pokedex - Pasquadev&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Considerações finais&lt;/p&gt;

&lt;p&gt;Perseverança é tudo. Você não precisa de muito tempo por dia, mas de constância. Sempre digo: programação é sobre usar o Google e transformar ideias em algoritmos.&lt;/p&gt;

&lt;p&gt;Gostou das recomendações? Tem alguma sugestão ou discordância com a sequência apresentada? Deixe seu comentário aqui embaixo!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Certificações do Github, valem a pena ?</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Wed, 20 Mar 2024 15:00:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/certificacoes-do-github-valem-a-pena--1l69</link>
      <guid>https://forem.com/hudson3384/certificacoes-do-github-valem-a-pena--1l69</guid>
      <description>&lt;p&gt;O github, maior ferramenta de distribuição de código open-source do mundo, lançou recentemente 5 certificações exclusivas. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Github Fundamentals &lt;/li&gt;
&lt;li&gt;Github Actions &lt;/li&gt;
&lt;li&gt;Github advanced Security &lt;/li&gt;
&lt;li&gt;Github admin &lt;/li&gt;
&lt;li&gt;Github Copilot &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todas certificações possuem cursos preparatórios gratuitos no Microsoft learn ( o qual eu anteriormente mencionei pelo golpe do desafio da Azure )&lt;/p&gt;

&lt;h3&gt;
  
  
  Mas a pergunta é: será que compensa ?
&lt;/h3&gt;

&lt;p&gt;Ao meu ver, qualquer certificação, diploma ou curso sempre tem seu peso, a questão é se o peso dele no seu currículo vai valer seu preço( custo/benefício).Pesquisando, descobri que as certificações estão a partir do valor de 500 dólares (mínimo)  e neste quesito eu acho que não compensa.Tanto por se tratar de uma certificação em maioria para desenvolvedores, que são examinados por portfólios e projetos na maioria dos casos, dando pouco destaque para a certificação e pelo valor, que está acima de várias outras que talvez teriam mais impacto. &lt;/p&gt;

&lt;h3&gt;
  
  
  Mas e você? Concorda comigo? Ou Faria a certificação ?
&lt;/h3&gt;

</description>
      <category>github</category>
      <category>githubactions</category>
      <category>githubcopilot</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Como melhorar a legibilidade e a escalabilidade do seu projeto?</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Fri, 15 Mar 2024 12:09:49 +0000</pubDate>
      <link>https://forem.com/hudson3384/como-melhorar-a-legibilidade-e-a-escalabilidade-do-seu-projeto-d2j</link>
      <guid>https://forem.com/hudson3384/como-melhorar-a-legibilidade-e-a-escalabilidade-do-seu-projeto-d2j</guid>
      <description>&lt;p&gt;Programar envolve diversos fatores, mas é sabido que a prática eleva os padrões, mas como saber o que está bom e o que não está? Onde devo melhorar? O que fazer?.Bem, uma boa resposta seria um guia, sênior ou mentor, mas nem sempre contamos com uma pessoa com disponibilidade para isso, por isso que eu uso estas duas tecnologias gratuitas que me fizeram evoluir de uma maneira bastante rápida. CodeClimate e SonaQube. &lt;/p&gt;

&lt;h2&gt;
  
  
  Um breve resumo sobre mim.
&lt;/h2&gt;

&lt;p&gt;Meu nome é Hudson, Desenvolvedor Frontend na OPEN Datacenter e busco compartilhar conhecimentos sobre minha área e as que tenho interesse em atuar e estudo frontend, desenvolvimento mobile, UX e Linux. &lt;/p&gt;

&lt;h2&gt;
  
  
  CodeClimate
&lt;/h2&gt;

&lt;p&gt;Não é a primeira vez que falo sobre o code climate, ele utiliza de uma lógica bem simples e olha poucos itens no seu código que fazem toda a diferença: Duplicação, Complexidade, Tamanho de funções e arquivos resumidamente. Apesar de parecer simples à primeira vista e  meio irracional à segunda, usar o code climate possibilitou uma velocidade de crescimento incrível no meu projeto. &lt;/p&gt;

&lt;h2&gt;
  
  
  SonarQube
&lt;/h2&gt;

&lt;p&gt;Eu diria que diferente do CodeClimate que apresenta uma visão crua de qualidade, o SonarQube possui uma análise mais refinada, mostrando importações e funções não utilizadas, dicas de melhorias de performance, problemas de segurança e diversos outros itens que não temos no Codeclimate. &lt;/p&gt;

&lt;h2&gt;
  
  
  Qual é melhor?
&lt;/h2&gt;

&lt;p&gt;Eu poderia simplesmente falar que o SonarQube é melhor, mas a verdade é que ambos se complementam e usam diferentes formas de analisar seu código de forma que o feedback quase nunca é redundante. &lt;/p&gt;

&lt;p&gt;E para ajudar vocês….&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonûs
&lt;/h2&gt;

&lt;p&gt;Irei disponibilizar dois scripts para rodar o codeclimate e o sonarQube localmente em seu computador, ambos possuem sistemas de CI/CD e planos pagos, mas para rodar em sua máquina é gratuito.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Hudson3384" rel="noopener noreferrer"&gt;
        Hudson3384
      &lt;/a&gt; / &lt;a href="https://github.com/Hudson3384/sonar-and-codeClimate" rel="noopener noreferrer"&gt;
        sonar-and-codeClimate
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Welcome to my Sonar and Codeclimate scripts&lt;/h1&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Dependencies&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;sonar-scanner cli&lt;/li&gt;
&lt;li&gt;docker&lt;/li&gt;
&lt;li&gt;jless [ JSON VIEWER ] - inside of Codeclimate script - you can remove if you want&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Hudson3384/sonar-and-codeClimate" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;Qualquer dúvidas, não existe em criar issues ou comentar que prontamente tentarei te ajudar. &lt;/p&gt;

&lt;p&gt;Se você curtiu, por favor avalie para me motivar a criar mais conteúdos assim: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Hudson3384" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/hudson-arruda-ribeiro/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://leetcode.com/Hudson3384/" rel="noopener noreferrer"&gt;LeetCode&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>E o voucher ein, Azure ? Vai ter ou não ?</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Tue, 12 Mar 2024 15:00:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/e-o-voucher-ein-azure-vai-ter-ou-nao--4aba</link>
      <guid>https://forem.com/hudson3384/e-o-voucher-ein-azure-vai-ter-ou-nao--4aba</guid>
      <description>&lt;p&gt;Fiz o desafio da Microsoft learning que oferecia um voucher e no final não o citavam mais, fui passado para trás ?&lt;/p&gt;

&lt;p&gt;Para quem me conhece a mais tempo sabe que eu adoro promoções, se tem algo de graça por tempo limitado, essa coisa acaba de se tornar meu hiperfoco, foi assim que eu tirei a Amazon Practitioner e a OCI Fundamentals.a A mesma coisa foi quando eu recebi um convite para o desafio da Microsoft Learning para o curso Microsoft Azure Fundamental que dizia claramente que ao final você ganhará um voucher.&lt;/p&gt;

&lt;p&gt;Entrando em outro dia para dar continuidade, me deparo que a mensagem mudou ( Nesta foto foi quando eu percebi que tinha caroço nesse angu) e que não mais história de voucher, e agora como proceder ? Será que ele ainda vem ou já é comum esse tipo de atidude da Azure? &lt;/p&gt;

&lt;p&gt;Se alguém tiver alguma opinião ou ideia, comente aqui embaixo &lt;/p&gt;

</description>
      <category>azure</category>
      <category>challenge</category>
      <category>cloud</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Migrando do Moment.js para Day.js em Projetos React: Guia completo</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Fri, 09 Feb 2024 23:00:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/migrando-do-momentjs-para-dayjs-em-projetos-react-guia-completo-15ng</link>
      <guid>https://forem.com/hudson3384/migrando-do-momentjs-para-dayjs-em-projetos-react-guia-completo-15ng</guid>
      <description>&lt;p&gt;Meu nome é Hudson e busco compartilhar conhecimentos sobre minha área e as que tenho interesse em atuar e estudo frontend, devops, linux e automatizações. &lt;/p&gt;

&lt;p&gt;O React é uma biblioteca popular para construir interfaces de usuário em JavaScript. Ao desenvolver aplicativos React que lidam com datas e horas, muitos desenvolvedores recorrem ao Moment.js devido à sua rica funcionalidade e sintaxe intuitiva. No entanto, com a necessidade crescente de bibliotecas mais leves e modernas, como o Moment.js se tornou um pouco pesado, Day.js surge como uma alternativa atraente. Neste guia, vamos explorar como migrar de Moment.js para Day.js em projetos React, considerando diferentes tipos de migração.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Migração Básica: Substituição Direta
&lt;/h2&gt;

&lt;p&gt;Nesta abordagem, você pode fazer uma substituição direta do Moment.js pelo Day.js, mantendo as funcionalidades básicas intactas. Por exemplo:&lt;/p&gt;

&lt;h3&gt;
  
  
  Moment.js (Formato de Data):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;moment&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;moment&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;formattedDate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;moment&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;YYYY-MM-DD&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Day.js (Formato de Data):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;dayjs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dayjs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;formattedDate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dayjs&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;YYYY-MM-DD&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Migração de Manipulação de Tempo Relativo
&lt;/h2&gt;

&lt;p&gt;Se o seu aplicativo React faz uso intensivo de funções de tempo relativo do Moment.js, como &lt;code&gt;fromNow()&lt;/code&gt;, você pode migrar para as funcionalidades equivalentes do Day.js. Por exemplo:&lt;/p&gt;

&lt;h3&gt;
  
  
  Moment.js (Tempo Relativo):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;moment&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;moment&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;relativeTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;moment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2023-01-01&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fromNow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "2 anos atrás"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Day.js (Tempo Relativo):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;dayjs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dayjs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;relativeTime&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dayjs/plugin/relativeTime&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;dayjs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;relativeTime&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;relativeTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dayjs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;2023-01-01&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;fromNow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "2 anos atrás"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Migração de Formatação Humanizada
&lt;/h2&gt;

&lt;p&gt;Se você estiver usando a função &lt;code&gt;humanize()&lt;/code&gt; do Moment.js para formatar datas de uma forma humanizada, pode migrar para a funcionalidade equivalente do Day.js. Por exemplo:&lt;/p&gt;

&lt;h3&gt;
  
  
  Moment.js (Formatação Humanizada):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;moment&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;moment&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;humanizedTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;moment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;days&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;humanize&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "2 days"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Day.js (Formatação Humanizada):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;dayjs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dayjs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;duration&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dayjs/plugin/duration&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;dayjs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;humanizedTime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;dayjs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;days&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;humanize&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// "2 days"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Migração de Formato Personalizado
&lt;/h2&gt;

&lt;p&gt;Se você estiver usando formatos personalizados complexos no Moment.js, pode migrar para o Day.js e ajustar os formatos conforme necessário. Por exemplo:&lt;/p&gt;

&lt;h3&gt;
  
  
  Moment.js (Formato Personalizado):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;moment&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;moment&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;customFormat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;moment&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;MMMM Do YYYY, h:mm:ss a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Day.js (Formato Personalizado):
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;dayjs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;dayjs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;customFormat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dayjs&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;MMMM D YYYY, h:mm:ss a&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Migrar de Moment.js para Day.js em projetos React pode ser feito de várias maneiras, dependendo das funcionalidades específicas que você está usando. Ao considerar diferentes tipos de migração, você pode garantir uma transição suave e eficaz para o Day.js, mantendo a funcionalidade e a sintaxe do seu aplicativo React. Certifique-se de revisar a documentação oficial do Day.js para obter informações detalhadas sobre todas as funcionalidades mencionadas neste guia.&lt;/p&gt;

&lt;p&gt;Se você curtiu, por favor avalie para me motivar a criar mais conteúdos assim: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Hudson3384" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/hudson-arruda-ribeiro/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://leetcode.com/Hudson3384/" rel="noopener noreferrer"&gt;LeetCode&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>reactnative</category>
    </item>
    <item>
      <title>TODO FRONTEND PRECISA SABER FAZER UM DEPLOY SIMPLES</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Wed, 07 Feb 2024 14:22:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/todo-frontend-precisa-saber-fazer-um-deploy-simples-30k6</link>
      <guid>https://forem.com/hudson3384/todo-frontend-precisa-saber-fazer-um-deploy-simples-30k6</guid>
      <description>&lt;p&gt;Ei, frontend. Se alguém te pedir para fazer um site simples com HTML, CSS e JS e para isso te oferecesse uma Instância (VM) e um domínio. Você conseguiria fazer isso?. Ou apenas colocar seu site no ar usando o domínio passado, você acha que isso faz parte da sua competência? &lt;/p&gt;

&lt;p&gt;É muito comum ver vagas que pedem Frameworks, conhecimento em metodologias, e provavelmente nesses locais você não irá fazer nada a mais que interfaces gráficas mesmo, pois foi o que você foi contratado a fazer. Mas você não acha que chega o momento de abrir um pouco seus horizontes? &lt;/p&gt;

&lt;p&gt;Vamos supor, você sabe das mais atuais tecnologias de front end, como Angular e React, sabe Type Guards e Generic tyṕes do Typescript como ninguém, especializado em SEO, com integração com mil e uma coisas, e chega uma pessoa e te fala: &lt;/p&gt;

&lt;p&gt;Gostaria de uma Landing Page e que você comprasse um domínio para mim, e que essa landing page captasse leads para meu RDstation. &lt;/p&gt;

&lt;p&gt;Uma landing page simples, com um único botão, o que falta para você conseguir pegar esse bico? &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Um backend? Não utilizaremos nenhuma api ou banco aqui&lt;/li&gt;
&lt;li&gt;Um devops? Por favor, nem testes vai ter nessa SPA &lt;/li&gt;
&lt;li&gt;Um especialista em cloud ? Pulando a cronologia deste artigo, eu já afirmo que um github pages faz 50% do trabalho&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;VOCÊ, FRONTEND, È CAPAZ DE FAZER ISSO.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Este texto não pretende ser acusatório, e sim gerar uma reflexão sobre as portas que são fechadas por você, frontend, não horizontar seus conhecimento um pouco.&lt;/p&gt;

&lt;p&gt;Paulo SIqueira, CEO da ALURA, tem diversos vídeos sobre este conceito, apelidado de Dev em T, que debate o debate interno do Dev de horizontar e verficalizar seu conhecimento, e eu acredito que esse debate constane é sempre necessário &lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Não deixe seus conhecimentos limitarem a sua criatividade”&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Você concorda com essa frase?&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>react</category>
      <category>nginx</category>
    </item>
    <item>
      <title>Desbravando o Mundo do Nginx: Criando seu Primeiro Servidor como Frontend</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Sat, 03 Feb 2024 03:00:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/desbravando-o-mundo-do-nginx-criando-seu-primeiro-servidor-como-frontend-5589</link>
      <guid>https://forem.com/hudson3384/desbravando-o-mundo-do-nginx-criando-seu-primeiro-servidor-como-frontend-5589</guid>
      <description>&lt;p&gt;Se você está ansioso para lançar seu primeiro site React para o mundo, esta na hora de você conhecer o Nginx.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre mim
&lt;/h2&gt;

&lt;p&gt;Um breve resumo sobre mim. &lt;/p&gt;

&lt;p&gt;Meu nome é Hudson, Desenvolvedor FullStack e busco compartilhar conhecimentos sobre minha área e as que tenho interesse em atuar e estudo como backend, devops, linux e automatizações. &lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Nginx
&lt;/h2&gt;

&lt;p&gt;Nginx é muito mais do que apenas um servidor web - é uma ferramenta poderosa que pode ser usada para melhorar drasticamente o desempenho e a segurança do seu site. E hoje, vou guiar você através da configuração do seu primeiro servidor Nginx para hospedar seu site React na porta 8000. Não se preocupe se você é novo nisso - vamos abordar cada passo com detalhes claros e concisos.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Não irei adentrar a parte de instalação neste momento&lt;/em&gt;, &lt;br&gt;
&lt;em&gt;acredito que já existem vários conteúdos sobre mas pretendo&lt;/em&gt; &lt;em&gt;compartilhar o meu próprio&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurando o Nginx
&lt;/h2&gt;

&lt;p&gt;Primeiro, vamos começar editando o arquivo de configuração do Nginx usando o editor de texto vim. No seu terminal, digite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;vim /etc/nginx/nginx.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dentro do arquivo, você verá algo parecido com isto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;http&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;example.com&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/var/www/html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="kn"&gt;index&lt;/span&gt; &lt;span class="s"&gt;index.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, vamos modificar isso para atender às nossas necessidades:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;
&lt;span class="k"&gt;http&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="n"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/caminho/para/sua/pasta/dist&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="kn"&gt;index&lt;/span&gt; &lt;span class="s"&gt;index.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;listen 8000: Define a porta na qual o servidor Nginx irá ouvir. Neste caso, estamos usando a porta 8000.&lt;/li&gt;
&lt;li&gt;server_name localhost: Define o nome do servidor. Aqui, estamos usando localhost para fins de teste, mas você pode alterá-lo para o seu nome de domínio real quando estiver pronto para lançar seu site.&lt;/li&gt;
&lt;li&gt;location / {...}: Define as configurações para o local solicitado. Aqui, estamos configurando o diretório raiz e o arquivo index a serem usados.
Agora, salve e feche o arquivo (no vim, pressione Esc, depois :wq e Enter).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Verificando a Configuração do Nginx
&lt;/h2&gt;

&lt;p&gt;Antes de reiniciar o serviço Nginx, é sempre uma boa ideia verificar se a configuração está correta. Felizmente, o Nginx torna isso fácil com o comando nginx -T. Digite o seguinte no seu terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nginx &lt;span class="nt"&gt;-T&lt;/span&gt;
Isso irá testar sua configuração e fornecer feedback sobre possíveis erros ou problemas. Se tudo estiver bem, você está pronto para reiniciar o serviço Nginx.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Reiniciando o Serviço Nginx
&lt;/h2&gt;

&lt;p&gt;Para aplicar as alterações que fizemos em nossa configuração, precisamos reiniciar o serviço Nginx. No seu terminal, digite:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;service nginx restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E pronto! Seu servidor Nginx está agora configurado para hospedar seu site React na porta 8000. Agora é só abrir seu navegador e acessar &lt;a href="http://localhost:8000"&gt;http://localhost:8000&lt;/a&gt; para ver seu site em ação.&lt;/p&gt;

&lt;p&gt;Lembre-se, este é apenas o começo de sua jornada com o Nginx. À medida que você se aprofunda mais, descobrirá uma infinidade de recursos poderosos que podem levar seu site para o próximo nível. Então, continue explorando e experimentando - o mundo do desenvolvimento web está cheio de possibilidades emocionantes. Boa sorte!&lt;/p&gt;

&lt;p&gt;Se você curtiu, por favor avalie para me motivar a criar mais conteúdos assim: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Hudson3384"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/hudson-arruda-ribeiro/"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://leetcode.com/Hudson3384/"&gt;LeetCode&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>5 Horizontes que separam os Devs, em qual você está ?</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Thu, 01 Feb 2024 18:43:09 +0000</pubDate>
      <link>https://forem.com/hudson3384/5-horizontes-que-separam-os-devs-em-qual-voce-esta--17ao</link>
      <guid>https://forem.com/hudson3384/5-horizontes-que-separam-os-devs-em-qual-voce-esta--17ao</guid>
      <description>&lt;p&gt;Você já se perguntou em qual categoria de desenvolvedor você se encaixa? Explore os cinco horizontes que separam os devs e descubra em qual deles você está:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Horizonte 1 - O Adepto da Versatilidade:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este é o território do Vulgo Nutella, onde a maioria dos devs reside. Eles dominam o Javascript para tudo, seja backend, frontend, mobile ou desktop. A versatilidade do JavaScript abre muitas portas, mas a armadilha é ficar preso a uma única tecnologia sem buscar expandir seus horizontes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Horizonte 2 - O Dev Informado:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aqui, encontramos aqueles que sobem um degrau acima do Nutella. Eles não se limitam a CRUDs em Node e React; estão sempre se atualizando, seguindo newsletters, lendo artigos no Medium e acompanhando sites como Hacker News. Sua constante busca por conhecimento e novas ideias os destaca na comunidade de desenvolvimento.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Horizonte 3 - O Linux Expert:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Conhecido por sua proficiência em Linux, VIM como IDE e PHP e JQuery para frontend, esse dev é capaz de lidar com qualquer desafio, desde backend até automação e IA. Eles podem não saber tudo, mas sempre encontram uma solução. Ter um desenvolvedor desse tipo por perto é uma vantagem, pois sua habilidade de aprender sobre qualquer assunto é incomparável.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Horizonte 4 - O Especialista em Big Tech:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Especializado em processos seletivos e desafios de código, este dev está totalmente focado em aprimorar seu conhecimento teórico, além de ter habilidades afiadas em algoritmos e inglês. Sua preparação intensa para entrevistas e certificações o destaca em ambientes competitivos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Horizonte 5 - O Matemático Aplicado:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Este dev aplica habilidades matemáticas avançadas, como cálculo e álgebra, para otimizar seu código. Geralmente, estão envolvidos em áreas como machine learning, onde seu conhecimento profundo em matemática é fundamental.&lt;/p&gt;

&lt;p&gt;E você, concorda com essa categorização? Em qual horizonte você se encontra neste momento? Compartilhe nos comentários sua jornada !!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Desvendando a Certificação Amazon Practitioner 2024: Um Relato e Dicas de Estudo</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Fri, 19 Jan 2024 03:41:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/desvendando-a-certificacao-amazon-practitioner-2024-um-relato-e-dicas-de-estudo-b1m</link>
      <guid>https://forem.com/hudson3384/desvendando-a-certificacao-amazon-practitioner-2024-um-relato-e-dicas-de-estudo-b1m</guid>
      <description>&lt;h2&gt;
  
  
  Um pouco sobre mim:
&lt;/h2&gt;

&lt;p&gt;Meu nome é Hudson, sou desenvolvedor frontend e Mobile na OPEN Datacenter, e busco compartilhar conhecimentos sobre minha área e aquelas em que tenho interesse em atuar. Estudo áreas como backend, DevOps, Linux e automações.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Amazon Practitioner:
&lt;/h2&gt;

&lt;p&gt;O Amazon Practitioner é uma certificação de entrada que examina seus conhecimentos na nuvem da AWS. Ela foca em conceitos e é recomendada até para pessoas que trabalham com Cloud indiretamente, como marketing, vendedores e outros.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minha experiência:
&lt;/h2&gt;

&lt;p&gt;A prova foi feita pela plataforma da Pearson Vue. Antes de fazer a prova, você tem acesso a um executável demo que será idêntico ao dia da prova. Esse executável valida softwares em seu computador que podem impedir a conclusão da prova (permitido apenas em Mac ou Windows), além de validar microfone, câmera e autofalante, necessários para iniciar a prova.&lt;/p&gt;

&lt;p&gt;Ao chegar o horário da prova, você deve ter baixado o executável enviado posteriormente ao teste e seguir as instruções.&lt;/p&gt;

&lt;p&gt;A primeira instrução será enviar uma foto de selfie e do seu documento. Em seguida, uma foto do seu documento (é necessário tê-lo para liberarem a prova). Depois, você deve tirar fotos dos quatro lados da sua mesa de computador. Essas fotos podem ser enviadas pelo computador ou por uma página web acessível via QR code para acesso pelo celular.&lt;/p&gt;

&lt;h3&gt;
  
  
  Após essa etapa, entra o examinador:
&lt;/h3&gt;

&lt;p&gt;Na hora de marcar a prova, você define o idioma do examinador. Atualmente, estão disponíveis apenas em inglês e espanhol. Com a webcam, ela vai pedir para olhar todas as direções que foram solicitadas no passo anterior e, caso encontre alguma irregularidade, vai pedir para você guardar e mostrar, guardando o item. Neste passo, seu celular já não deve estar visível para o examinador para agilidade do processo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finalmente, a prova:
&lt;/h3&gt;

&lt;p&gt;São 65 questões de múltipla escolha em 90 minutos, com múltiplos pesos e grau de complexidade não declarados, focados em quatro domínios.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meus resultados:
&lt;/h2&gt;

&lt;p&gt;Na PearsonVue, você pode revisar todas as questões ao final da prova. Além disso, ele alerta quais perguntas não foram respondidas e permite que você marque questões para revisar a resposta ao final também.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finalização:
&lt;/h2&gt;

&lt;p&gt;Após o final da prova, eles realizam 10 perguntas sobre a plataforma e nível de satisfação. Após isso, você já tem o resultado. Após 5 dias, chega um e-mail confirmando o resultado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Principais conteúdos:
&lt;/h2&gt;

&lt;p&gt;Apesar de eu ter realizado a prova em 2023, estudei com conteúdos de anos anteriores, e realmente não muda muita coisa. Os resultados são esses:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;IAM (Identity and Access Management):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gestão segura de acessos aos serviços e recursos na AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;EC2 (Elastic Compute Cloud):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execução de máquinas virtuais escaláveis na nuvem AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;S3 (Simple Storage Service):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Armazenamento e recuperação de dados escaláveis e duráveis.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;RDS (Relational Database Service):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implantação e gerenciamento de bancos de dados relacionais na AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VPC (Virtual Private Cloud):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criação de redes isoladas e personalizadas na nuvem.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lambda:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execução de código sem a necessidade de provisionar ou gerenciar servidores.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Route 53:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Registro e gerenciamento de nomes de domínio e serviços DNS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CloudWatch:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitoramento de recursos e aplicativos na AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Elastic Load Balancing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Distribuição de tráfego entre instâncias EC2 para garantir a disponibilidade.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DynamoDB:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Armazenamento de dados NoSQL com desempenho e escalabilidade.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Modelos de Precificação:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compreensão dos modelos de precificação e otimização de custos na AWS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AWS Well-Architected Framework:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implementação de arquiteturas seguras, eficientes e de alto desempenho.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Materiais de estudo:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;O curso da AWS SkillBuilder - Cloud Foundations foi útil, apesar de ser mais geral.&lt;br&gt;
&lt;a href="https://explore.skillbuilder.aws/learn/course/8287/play/93778/elementos-essenciais-do-aws-cloud-practitioner-portugues-aws-cloud-practitioner-essentials-portuguese-na"&gt;Link para o curso da SkillBuilder&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O curso da Alura abordou assuntos interessantes que complementaram o da SkillBuilder.&lt;br&gt;
&lt;a href="https://www.alura.com.br/formacao-aws-certified-cloud-practitioner"&gt;Link para o curso da Alura&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O curso da AWS Academy apresenta um conteúdo mais denso e foi útil na preparação para a prova.&lt;br&gt;
&lt;a href="https://aws.amazon.com/pt/training/awsacademy/"&gt;Link para os cursos da AWS Academy&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Utilizei o aplicativo Anki para memorização dos tópicos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Certificado e Links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.credly.com/badges/c4b778eb-951e-4959-b17f-3f0d39d98a28/public_url"&gt;Certificado AWS Cloud Practitioner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ankiweb.net/shared/info/376560885?cb=1693682891945"&gt;Deck de Estudo no Anki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para mais informações ou dúvidas, estou à disposição nos comentários. Se gostou, por favor, avalie para me motivar a criar mais conteúdos assim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Redes Sociais:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Github: &lt;a href="https://github.com/Hudson3384"&gt;https://github.com/Hudson3384&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Linkedin: &lt;a href="https://www.linkedin.com/in/hudson-arruda-ribeiro/"&gt;https://www.linkedin.com/in/hudson-arruda-ribeiro/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LeetCode: &lt;a href="https://leetcode.com/Hudson3384/"&gt;https://leetcode.com/Hudson3384/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>programming</category>
      <category>certification</category>
      <category>linux</category>
    </item>
    <item>
      <title>Explorando as Possibilidades: Wezterm e o Mágico Efeito Parallax no Seu Terminal Linux</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Fri, 12 Jan 2024 03:00:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/explorando-as-possibilidades-wezterm-e-o-magico-efeito-parallax-no-seu-terminal-linux-gd6</link>
      <guid>https://forem.com/hudson3384/explorando-as-possibilidades-wezterm-e-o-magico-efeito-parallax-no-seu-terminal-linux-gd6</guid>
      <description>&lt;p&gt;Esta dica destina-se a quem é apaixonado por Linux e gosta de personalizar seu terminal com atalhos e estilos únicos. Neste artigo, falarei sobre o Wezterm, um novo terminal e multiplexador extremamente eficiente e rápido, desenvolvido em Rust. Além disso, vou explicar como configurar um modelo de parallax inspirado no filme "Interestelar". Para os mais apressados, o link para o repositório está disponível ao final do artigo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Um pouco sobre mim:
&lt;/h2&gt;

&lt;p&gt;Meu nome é Hudson, sou desenvolvedor front-end e mobile na OPEN Data Center. Busco compartilhar conhecimentos na minha área e em outras que tenho interesse, como backend, DevOps, Linux e automações.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Wezterm:
&lt;/h2&gt;

&lt;p&gt;O Wezterm é uma alternativa a terminais como Xterm, Alacritty, Kitty e Git Bash. Ele oferece diversas funcionalidades integradas, como o imgcat para visualização de imagens, por exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;
wezterm imgcat path/to/image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Além disso, possui um sistema completo de multiplexação de telas, semelhante ao Tmux ou Screen. Pessoalmente, não o utilizo, pois já estou acostumado com o Tmux.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o efeito parallax:
&lt;/h2&gt;

&lt;p&gt;O efeito parallax consiste em um conjunto de imagens ou padrões que rotacionam ou se movem em velocidades distintas, criando um efeito tridimensional. Um exemplo pronto pode ser visualizado no próprio site do Wezterm: parallax-example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando o efeito parallax:
&lt;/h2&gt;

&lt;p&gt;Para criar o efeito parallax, é necessário acessar o arquivo .wezterm.lua. Não vou entrar nos detalhes da instalação, mas deixarei o link detalhado da documentação no final do artigo. Se estiver usando Arch Linux, basta executar sudo pacman -S wezterm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adicionando uma imagem de fundo:
&lt;/h2&gt;

&lt;p&gt;Existem várias maneiras de criar um efeito parallax. Considerando o modelo que desejo criar e para evitar grandes mudanças, escolhi uma imagem mais escura para o fundo e ajustei o brilho para 0.2.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight lua"&gt;&lt;code&gt;
&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;wezterm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'wezterm'&lt;/span&gt;
&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;dimmer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;brightness&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;local&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;-- ... (configurações adicionais)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;config.background = {
 {
    source = {
      File = './wallpapers/blackhole.png',
    },
    repeat_x = 'Mirror',
    hsb = dimmer,
  },
}
return config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configurando partículas:
&lt;/h2&gt;

&lt;p&gt;Após vários testes, optei por usar uma imagem de estrelas com resolução suficiente. Inicialmente, copiei o objeto do fundo e mudei o source para as partículas definidas.&lt;/p&gt;

&lt;p&gt;O código final ficará próximo disso:&lt;/p&gt;

&lt;p&gt;-- ... (código anterior)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight lua"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;background&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
 &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'./wallpapers/blackhole.png'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;repeat_x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Mirror'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hsb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dimmer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'./wallpapers/stars2.jpg'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;opacity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;width&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'100%'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;repeat_x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Mirror'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;repeat_y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Repeat'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;hsb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;dimmer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;attachment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;Parallax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="c1"&gt;-- (outros ajustes de partículas)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O link para o arquivo completo e as imagens utilizadas estão no meu repositório no GitHub: Repositório.&lt;/p&gt;

&lt;p&gt;Se gostou, por favor, avalie para me motivar a criar mais conteúdo:&lt;/p&gt;

&lt;p&gt;GitHub: Hudson3384&lt;br&gt;
LinkedIn: Hudson Arruda Ribeiro&lt;br&gt;
LeetCode: Hudson3384&lt;/p&gt;

</description>
      <category>wezterm</category>
      <category>linux</category>
      <category>shell</category>
      <category>i3</category>
    </item>
    <item>
      <title>5 Estratégias para Elevar seu Nível no Frontend</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Fri, 29 Dec 2023 14:54:00 +0000</pubDate>
      <link>https://forem.com/hudson3384/5-estrategias-para-elevar-seu-nivel-no-frontend-1eem</link>
      <guid>https://forem.com/hudson3384/5-estrategias-para-elevar-seu-nivel-no-frontend-1eem</guid>
      <description>&lt;h2&gt;
  
  
  Um breve resumo sobre mim.
&lt;/h2&gt;

&lt;p&gt;Meu nome é Hudson, sou desenvolvedor frontend e Mobile na OPEN Datacenter e busco compartilhar conhecimentos sobre minha área e as que tenho interesse em atuar e estudo como backend, devops, linux e automatizações. &lt;/p&gt;

&lt;h2&gt;
  
  
  Teste tudo o que puder
&lt;/h2&gt;

&lt;p&gt;Uma requisição para vagas de desenvolvedores pleno que eu demorei a correr atrás foi a criação de testes e me arrependo muito disso. Criar testes automatizados aumenta totalmente a confiabilidade do seu código, evita erros inesperados, evita refatorações e te faz pensar de uma forma inteligente, pensando em formas de tratar todas as possibilidades de erros e como testá-las. Ferramentas ótimas para isso são o Jest e o Cypress.&lt;/p&gt;

&lt;p&gt;Documentação do Cypress: &lt;a href="https://docs.cypress.io/"&gt;https://docs.cypress.io/&lt;/a&gt;&lt;br&gt;
Documentação do Jest: &lt;a href="https://jestjs.io/pt-BR/"&gt;https://jestjs.io/pt-BR/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Usar ferramentas de saúde de código
&lt;/h2&gt;

&lt;p&gt;Evitar duplicações e melhorar a legibilidade é uma responsabilidade de qualquer programador independente da stack, por isso temos diversos métodos como SOLID, clean code e outros. No entanto, é impossível exercer a onisciência do código de forma manual por isso temos ferramentas de saúde de código. Estou familiarizado com duas ferramentas gratuitas, o codeClimate e o Sonar &lt;/p&gt;

&lt;p&gt;CodeClimate: &lt;a href="https://codeclimate.com/"&gt;https://codeclimate.com/&lt;/a&gt;&lt;br&gt;
Sonar: &lt;a href="https://www.sonarsource.com/products/sonarqube/"&gt;https://www.sonarsource.com/products/sonarqube/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Seja ousado
&lt;/h2&gt;

&lt;p&gt;Apesar deste título genérico, eu acredito que foi o que mais me fez crescer neste ano, para crescermos é necessário entender que esse processo vá ser doloroso às vezes pois precisamos sempre aumentar nossos desafios no limiar dos nossos limites. Costumo dizer que o frontend deve pensar às vezes como se fosse o UX Designer, e depois de anunciar o problema e solução, se virar como frontend para solucionar. &lt;/p&gt;

&lt;p&gt;Uma recomendação de combina com o assunto:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=HEaIsKm-pao" class="ltag_cta ltag_cta--branded"&gt;VIDEO : A Dor de Aprender | Que Cursos/Livros?&lt;/a&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Se mantenha informado e saia da caixinha
&lt;/h2&gt;

&lt;p&gt;Um pensamento que eu possuo desde que eu entrei na área da programação é que não podemos nos prender ao escopo do nosso ambiente, caso você já trabalhe ou estude, vai de maneira indireta aprender mas é necessário entender que há uma limitação de escopo nesta maneira. Por isso, sempre busque formas de saber mais sobre suas tecnologias e demais que estão em alta em newsletters, artigos e mídias sociais. &lt;/p&gt;

&lt;p&gt;Em breve irei trazer minhas táticas que uso para me manter atualizado e recomendações de newsletters por aqui. &lt;/p&gt;

&lt;h2&gt;
  
  
  Estude algorítmos
&lt;/h2&gt;

&lt;p&gt;Esta é uma dica poderosa, ao estudar algoritmos e praticá-lo, você começa a ter uma visão mais ampla sobre performance, reconhecendo falhas na sua aplicação e deixando mais afiado seu senso crítico. Além de ser exigido em testes de código para empresas maiores. &lt;/p&gt;

&lt;p&gt;Uma forma efetiva de aprender é praticando, e por isso  eu recomendo a Leetcode e esse video do PirateKing explicando como usar a plataforma com maior proveito. &lt;/p&gt;

&lt;h3&gt;
  
  
  Links:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=p_9t8uhXQdk" class="ltag_cta ltag_cta--branded"&gt;Video: MY ULTIMATE LEETCODE TRICKS&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://leetcode.com/" class="ltag_cta ltag_cta--branded"&gt;LEETCODE SITE&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Se você curtiu, por favor avalie para me motivar a criar mais conteúdos assim: &lt;/p&gt;

&lt;p&gt;Github: &lt;a href="https://github.com/Hudson3384"&gt;https://github.com/Hudson3384&lt;/a&gt;&lt;br&gt;
Linkedin: &lt;a href="https://www.linkedin.com/in/hudson-arruda-ribeiro/"&gt;https://www.linkedin.com/in/hudson-arruda-ribeiro/&lt;/a&gt;&lt;br&gt;
LeetCode: &lt;a href="https://leetcode.com/Hudson3384/"&gt;https://leetcode.com/Hudson3384/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como limpar sua mente para programar melhor: Saga GTD Capítulo 1</title>
      <dc:creator>Hudson Arruda </dc:creator>
      <pubDate>Tue, 26 Dec 2023 17:24:25 +0000</pubDate>
      <link>https://forem.com/hudson3384/como-limpar-sua-mente-para-programar-melhor-saga-gtd-capitulo-1-592p</link>
      <guid>https://forem.com/hudson3384/como-limpar-sua-mente-para-programar-melhor-saga-gtd-capitulo-1-592p</guid>
      <description>&lt;h3&gt;
  
  
  Um Pouco Sobre Mim
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Me chamo Hudson, sou um frontend developer e tenho uma grande curiosidade por soluções Linux e DevOps. Estou aqui para compartilhar uma saga de artigos baseada no livro &lt;em&gt;"A Arte de Fazer Acontecer"&lt;/em&gt; de David Allen, onde vou relatar minha jornada ao tentar aplicar os princípios do livro no mundo da programação. Este conteúdo servirá como um aprendizado conjunto. Vamos nessa?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O livro de David Allen começa com uma analogia fascinante inspirada nas artes marciais: &lt;em&gt;"Mente calma como a água"&lt;/em&gt;. Devemos ser como a água, tranquilos e límpidos, reagindo apenas o necessário às perturbações, sempre em direção à calmaria. Essa analogia aborda a tendência constante que temos de manter pendências em nossas mentes.&lt;/p&gt;

&lt;p&gt;De acordo com o livro, estudos comprovam que manter pendências, mesmo que inconscientemente, nos torna menos produtivos, pois consumimos parte dos recursos de nosso cérebro. O autor faz uma interessante comparação com o funcionamento de um computador e a memória &lt;strong&gt;RAM&lt;/strong&gt;, que possui capacidade limitada de armazenamento e é volátil.&lt;/p&gt;

&lt;p&gt;Você já se sentiu perdido e fez uma lista para tentar organizar seus pensamentos? Ou elaborou uma lista de compras? É exatamente sobre isso que o autor fala. Para David, não devemos esperar o caos se instaurar para criar uma lista. Todo pensamento solto que dependa de alguma ação deve ser anotado, classificado e armazenado em um local seguro e de fácil visualização.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mas como fazer isso na prática?
&lt;/h3&gt;

&lt;p&gt;Comece definindo um nome para a atividade, o que a consideraria concluída e os passos necessários para finalizá-la. Caso seja algo dependente de outra pessoa ou tenha uma data específica, defina alarmes que o lembrem da atividade apenas quando for relevante. Neste momento, não é necessário pensar em como executar ou concluir a tarefa; o foco está em capturar os pensamentos soltos em sua mente, deixando-os em um local seguro para liberar sua mente e se concentrar no problema à sua frente.&lt;/p&gt;

&lt;p&gt;Estou utilizando um modelo fornecido pelo &lt;a href="https://trello.com/b/XkZXY9iZ/metodo-gtd-no-trello"&gt;Trello&lt;/a&gt;, que segue uma dinâmica interessante e familiar aos métodos ágeis, caso você já tenha tido contato. Ainda não explorei todas as funcionalidades, mas planejo implementá-las conforme avanço na leitura do livro. Posso garantir que ao utilizar o "inbox", você já deixa sua mente mais clara para um trabalho mais eficiente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YfOTgFNF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fbw2vr9m7ucxfrn1aawf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YfOTgFNF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fbw2vr9m7ucxfrn1aawf.png" alt="Examplo do modelo do trello" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero que essa jornada de aprendizado conjunto seja proveitosa para todos nós.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trello.com/b/XkZXY9iZ/metodo-gtd-no-trello"&gt;Modelo do Trello&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/Hudson3384"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/hudson-arruda-ribeiro/"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://leetcode.com/Hudson3384/"&gt;LeetCode&lt;/a&gt;&lt;/p&gt;

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