<?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: Jackie Nascimento </title>
    <description>The latest articles on Forem by Jackie Nascimento  (@jackienascimento).</description>
    <link>https://forem.com/jackienascimento</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%2F324404%2F7cb4bb0a-f583-4f0b-9a39-b9c03ef075ee.jpeg</url>
      <title>Forem: Jackie Nascimento </title>
      <link>https://forem.com/jackienascimento</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jackienascimento"/>
    <language>en</language>
    <item>
      <title>Objetos vs. Estruturas de Dados</title>
      <dc:creator>Jackie Nascimento </dc:creator>
      <pubDate>Mon, 27 May 2024 14:08:48 +0000</pubDate>
      <link>https://forem.com/jackienascimento/objetos-vs-estruturas-de-dados-codigo-limpo-capitulo-6-goj</link>
      <guid>https://forem.com/jackienascimento/objetos-vs-estruturas-de-dados-codigo-limpo-capitulo-6-goj</guid>
      <description>&lt;p&gt;✨ &lt;strong&gt;Objetos vs. Estruturas de Dados&lt;/strong&gt; ✨&lt;/p&gt;

&lt;p&gt;Você sabia que entender a diferença entre objetos e estruturas de dados pode transformar seu código? Vamos ver o que Robert C. Martin nos ensina no capítulo 6 de "Código Limpo"! 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  Objetos 🛠️
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encapsulamento&lt;/strong&gt;: Objetos escondem dados e expõem comportamentos através de métodos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ocultação de Informação&lt;/strong&gt;: A principal função dos objetos é esconder detalhes de implementação, expondo apenas o necessário.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interação&lt;/strong&gt;: Objetos interagem entre si via métodos, promovendo modularidade e manutenção.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Estruturas de Dados 🗄️
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transparência de Dados&lt;/strong&gt;: Estruturas de dados são transparentes e focam em expor dados diretamente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Foco na Representação&lt;/strong&gt;: Elas se concentram na representação e armazenamento de dados de forma acessível.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Quando Usar Cada Um? 🤔
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Objetos&lt;/strong&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ocultar implementações complexas.&lt;/li&gt;
&lt;li&gt;Garantir a integridade dos dados.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Estruturas de Dados&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facilitar o acesso direto e simples aos dados.&lt;/li&gt;
&lt;li&gt;Manipular dados em algoritmos.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Dicas Práticas 📝
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Princípio do Abstrato&lt;/strong&gt;: Objetos devem expor operações de alto nível e esconder detalhes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trade-offs&lt;/strong&gt;: Escolha entre objetos e estruturas de dados conforme a necessidade de encapsulamento ou acesso direto aos dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design e Manutenção&lt;/strong&gt;: Pense no futuro, facilite a manutenção e a evolução do código.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;🔗 &lt;strong&gt;Leia mais em "Código Limpo" e melhore suas habilidades de programação!&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;Espero que gostem da dica! Até a próxima! 🚀&lt;/p&gt;



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

&lt;/div&gt;

</description>
      <category>codigolimpo</category>
      <category>cleancode</category>
      <category>desenvolvimentodesoftware</category>
    </item>
    <item>
      <title>Entendendo Generics em Kotlin</title>
      <dc:creator>Jackie Nascimento </dc:creator>
      <pubDate>Fri, 03 May 2024 01:01:56 +0000</pubDate>
      <link>https://forem.com/jackienascimento/entendendo-generics-em-kotlin-391h</link>
      <guid>https://forem.com/jackienascimento/entendendo-generics-em-kotlin-391h</guid>
      <description>&lt;p&gt;&lt;strong&gt;O que são Generics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generics são uma parte essencial da linguagem Kotlin que permite que escrevamos classes, interfaces, e funções que funcionem com tipos específicos, mas sem declarar esses tipos antecipadamente. Em vez disso, podemos fornecer os tipos quando usarmos essas classes, interfaces ou funções.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Benefícios de usar Generics&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reutilização de código: Você pode escrever classes, interfaces e funções que funcionam com qualquer tipo de dado, aumentando a reutilização do código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Segurança de tipo: O uso de generics ajuda a detectar erros de tipo em tempo de compilação, o que pode evitar erros em tempo de execução.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance: Generics não criam overhead em tempo de execução, pois o tipo é verificado em tempo de compilação.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Como usar Generics em Kotlin&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Funções Genéricas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fun &amp;lt;T&amp;gt; listOfNotNull(vararg elements: T?): List&amp;lt;T&amp;gt; {
    return elements.filterNotNull()
}

val listaDeInteiros: List&amp;lt;Int&amp;gt; = listOfNotNull(1, 2, null, 4)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Classes Genéricas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Caixa&amp;lt;T&amp;gt;(val elemento: T)

val caixaDeInteiro = Caixa(10)
val caixaDeString = Caixa("Olá")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Interfaces Genéricas&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interface Repositorio&amp;lt;T&amp;gt; {
    fun salvar(objeto: T)
    fun obter(id: String): T
}

class RepositorioDeCliente : Repositorio&amp;lt;Cliente&amp;gt; {

    private val clientes = mutableListOf&amp;lt;Cliente&amp;gt;()

    override fun salvar(cliente: Cliente) {
        clientes.add(cliente)
        println("Cliente salvo: $cliente")
    }

    override fun obter(id: String): Cliente? {
        return clientes.find { it.id == id }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Restrições de tipos (bounded type parameters)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Em Kotlin, você pode restringir quais tipos podem ser usados como argumentos genéricos. Por exemplo, você pode restringir o tipo genérico a ser uma subclasse de uma determinada classe ou implementar uma determinada interface.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;class Caixa&amp;lt;T : Number&amp;gt;(val elemento: T)

val caixaDeInteiro = Caixa(10) // Válido
val caixaDeDouble = Caixa(10.0) // Válido
val caixaDeString = Caixa("Olá") // Erro de compilação
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Generics são uma ferramenta poderosa em Kotlin, que permite escrever código flexível, seguro e reutilizável. Espero que este artigo tenha ajudado você a entender como usar generics em suas aplicações.&lt;/p&gt;




</description>
      <category>kotlin</category>
      <category>backend</category>
      <category>generics</category>
      <category>programming</category>
    </item>
    <item>
      <title>Código Limpo - Capítulo 4 - Comentários</title>
      <dc:creator>Jackie Nascimento </dc:creator>
      <pubDate>Sun, 28 Apr 2024 17:15:23 +0000</pubDate>
      <link>https://forem.com/jackienascimento/codigo-limpo-capitulo-4-comentarios-4g8c</link>
      <guid>https://forem.com/jackienascimento/codigo-limpo-capitulo-4-comentarios-4g8c</guid>
      <description>&lt;p&gt;Quando ou não comentar em um código? Segundo o livro Código limpo: habilidades práticas do Agile software, comentar um código já é sim um fracasso!&lt;/p&gt;

&lt;p&gt;Segue considerações do último encontro on-line de Leitura em Grupo que aconteceu no dia 17/04/2024:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Comentários:  Falamos sobre a importância dos comentários serem claros e necessários. Eles devem explicar o porquê de algo está sendo feito, não o que está sendo feito, pois o código deve ser auto explicativo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comentários Ruins: Falamos sobre os tipos de comentários que devem ser evitados, como comentários óbvios, comentários redundantes, e comentários que contradizem o código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comentários Bons:  Falamos sobre os tipos de coisas que podem ser úteis, como comentários de esclarecimento, avisos sobre consequências não intuitivas e comentários que fornecem contexto histórico.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Esclarecendo o Código: Falamos sobre  a importância de escrever código claro e auto explicativo, eliminando a necessidade de comentários desnecessários.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comentários e Testes:  Discutimos como os testes podem ser mais eficazes do que comentários para documentar o comportamento do código.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Escrevendo Comentários Úteis:  Vimos diretrizes para escrever comentários úteis, como ser claro e conciso, manter os comentários atualizados, e evitar comentários que enganam.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Escolhendo Nomes Descritivos: Vimos novamente sobre  a importância de escolher nomes descritivos para variáveis, métodos e classes, reduzindo a necessidade de comentários explicativos.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Se interessou? Comente esse post e envio o link do grupo que está discutindo quinzenalmente este livro! Seje bem-vinde!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>O Que é Design de Código e Por Que Isso Importa</title>
      <dc:creator>Jackie Nascimento </dc:creator>
      <pubDate>Sat, 20 Apr 2024 23:07:36 +0000</pubDate>
      <link>https://forem.com/jackienascimento/o-que-e-design-de-codigo-e-por-que-isso-importa-gna</link>
      <guid>https://forem.com/jackienascimento/o-que-e-design-de-codigo-e-por-que-isso-importa-gna</guid>
      <description>&lt;p&gt;O termo "design de código" se refere à prática de planejar e estruturar o código-fonte de um software de forma deliberada e organizada, com o objetivo de torná-lo mais legível, mantível, escalável e eficiente. O design de código é uma parte fundamental do desenvolvimento de software e desempenha um papel crítico na qualidade e no sucesso de um projeto de software. &lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Por Que o Design de Código Importa?&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Manutenção Simplificada&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Um código bem projetado é mais fácil de entender e manter. Isso significa que encontrar e corrigir erros, bem como adicionar novos recursos, se torna um processo menos custoso e demorado.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Escalabilidade&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sistemas bem projetados são escaláveis, o que significa que podem crescer para acomodar demandas crescentes sem grandes mudanças no código-fonte. Isso é essencial para a expansão de sistemas em resposta ao aumento da carga de trabalho.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Qualidade do Software&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Um bom design de código promove a qualidade do software, resultando em sistemas mais confiáveis, seguros e robustos.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Colaboração Eficiente&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Códigos bem organizados são mais fáceis de compartilhar e colaborar entre desenvolvedores e equipes, tornando o desenvolvimento mais eficiente.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Economia de Tempo e Recursos&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Investir tempo em um design sólido economiza tempo e recursos a longo prazo, evitando retrabalho e reduzindo o risco de erros.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Princípios Importantes de Design de Código&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Existem vários princípios essenciais que guiam o design de código de qualidade:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DRY - Don't Repeat Yourself&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O princípio DRY enfatiza a importância da reutilização de código. Ele sugere que partes do código não devem ser repetidas, mas sim abstraídas em funções, métodos ou módulos reutilizáveis. Isso reduz a duplicação de código, facilitando a manutenção e evitando inconsistências.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SOLID&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O acrônimo SOLID representa um conjunto de cinco princípios inter-relacionados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;S&lt;/strong&gt; - Princípio da Responsabilidade Única (SRP): Uma classe deve ter apenas uma razão para mudar, ou seja, uma única responsabilidade clara.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;O&lt;/strong&gt; - Princípio Aberto/Fechado (OCP): O código deve estar aberto para extensão, mas fechado para modificação. Novos recursos devem ser adicionados sem alterar o código existente.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L&lt;/strong&gt; - Princípio da Substituição de Liskov (LSP): Subtipos devem ser substituíveis por seus tipos base sem afetar a integridade do programa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I&lt;/strong&gt; - Princípio da Segregação de Interfaces (ISP): Interfaces devem ser específicas para os clientes, evitando interfaces monolíticas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;D&lt;/strong&gt; - Princípio da Inversão de Dependência (DIP): Módulos de alto nível não devem depender de módulos de baixo nível, ambos devem depender de abstrações.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;KISS - Keep It Simple, Stupid&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O princípio KISS enfatiza a simplicidade no design de código. Ele sugere que a simplicidade deve ser uma prioridade e que soluções mais simples são preferíveis às complexas, desde que atendam aos requisitos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;YAGNI - You Aren't Gonna Need It&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O YAGNI aconselha os desenvolvedores a não adicionar funcionalidades ou código que não são necessários no momento. Evitar o excesso de engenharia ajuda a manter o código mais enxuto e focado nas necessidades reais do projeto.&lt;/p&gt;




&lt;p&gt;Em conclusão, o design de código desempenha um papel vital no desenvolvimento de software eficaz e de alta qualidade. Ao aderir a princípios como DRY, SOLID, KISS, YAGNI e CUPID, os desenvolvedores podem criar sistemas mais robustos, escaláveis e fáceis de manter, contribuindo para o sucesso de projetos de software.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>O incidente de $5 milhões do Datadog</title>
      <dc:creator>Jackie Nascimento </dc:creator>
      <pubDate>Sun, 28 May 2023 21:28:03 +0000</pubDate>
      <link>https://forem.com/jackienascimento/o-incidente-de-5-milhoes-do-datadog-15lc</link>
      <guid>https://forem.com/jackienascimento/o-incidente-de-5-milhoes-do-datadog-15lc</guid>
      <description>&lt;p&gt;A Datadog é uma plataforma de monitoramento e segurança essencial para aplicações em nuvem. Com uma configuração adequada, somos capazes de obter um rastreamento abrangente, métricas e registros de aplicações, infraestrutura e serviços de terceiros. Essas informações são fundamentais para garantir a estabilidade dos serviços, evitar períodos de inatividade e proporcionar uma excelente experiência ao usuário.&lt;/p&gt;

&lt;p&gt;No entanto, mesmo operando em três provedores de nuvem (AWS, Azure e Google Cloud) em cinco regiões, a plataforma enfrentou um período de inoperância de 14 horas. Infelizmente, a comunicação com os clientes durante o incidente deixou a desejar, tudo isso resultando em um custo estimado de aproximadamente 5 milhões de dólares - praticamente equivalente à receita de um dia da empresa.&lt;/p&gt;

&lt;p&gt;A interrupção do serviço foi causada por uma atualização do sistema operacional. O Ubuntu Linux realiza atualizações regulares de suas distribuições para a versão estável mais recente, e o problema ocorreu durante a atualização para a versão 22.04 do sistema operacional, que incluía uma atualização de segurança do processo systemd.&lt;/p&gt;

&lt;p&gt;O problema não foi a atualização em si, afinal, ele envolvia mudanças no systemd:  &lt;/p&gt;

&lt;p&gt;ATUALIZAÇÃO DE SEGURANÇA: vulnerabilidade de estouro de buffer em format_timespan()&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;debian/patches/CVE-2022-3821.patch: time-util: correção de estouro de buffer&lt;/li&gt;
&lt;li&gt;CVE-2022-3821&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ATUALIZAÇÃO DE SEGURANÇA: vulnerabilidade de vazamento de informações em systemd-coredump&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;debian/patches/CVE-2022-4415.patch: não permitir que o usuário acesse despejos de núcleo com uid/gid/capacidades alterados&lt;/li&gt;
&lt;li&gt;CVE-2022-4415&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Embora as atualizações em si fossem necessárias e visavam aumentar a segurança das VMs, a reinicialização do processo systemd-networkd inadvertidamente apagou as rotas de rede, resultando na desconexão dos nós e na indisponibilidade dos serviços. Essa reação em cascata também afetou os nós responsáveis pelo controle das redes.&lt;/p&gt;

&lt;p&gt;Convido a leitura que deixei como fontes, nela esta uma análise mais profunda do ocorrido (do site Pragmatic Engineer) e o postmortem da Datadog. O que aprendemos dessa inoperância é importância de uma cuidadosa implementação de atualizações e de uma comunicação clara e eficiente com os usuários para minimizar os impactos negativos e proteger a reputação e os resultados financeiros da empresa.&lt;/p&gt;

&lt;p&gt;Leia mais:&lt;br&gt;
🔗 Análise do incidente no site Pragmatic Engineer: &lt;a href="https://newsletter.pragmaticengineer.com/p/inside-the-datadog-outage"&gt;https://newsletter.pragmaticengineer.com/p/inside-the-datadog-outage&lt;/a&gt;&lt;br&gt;
🔗 Postmortem da Datadog: &lt;a href="https://www.datadoghq.com/blog/2023-03-08-multiregion-infrastructure-connectivity-issue/"&gt;https://www.datadoghq.com/blog/2023-03-08-multiregion-infrastructure-connectivity-issue/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>monitoramento</category>
      <category>segurança</category>
      <category>aprendizados</category>
    </item>
    <item>
      <title>Como estudar melhor em cursos online?</title>
      <dc:creator>Jackie Nascimento </dc:creator>
      <pubDate>Sun, 14 May 2023 22:53:11 +0000</pubDate>
      <link>https://forem.com/jackienascimento/dicas-de-como-estudar-melhor-52nk</link>
      <guid>https://forem.com/jackienascimento/dicas-de-como-estudar-melhor-52nk</guid>
      <description>&lt;p&gt;Além de saber o que estudar, é igualmente importante saber como estudar em cursos online. Você já se deparou com a situação de concluir um curso e, após dois meses, não se lembrar de praticamente nada sobre aquele assunto? Eu mesma já passei por isso diversas vezes e, ao tentar entender o que havia acontecido com as horas de estudo, cheguei a algumas conclusões.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Assistir videoaulas na velocidade 2.0 geralmente resulta numa aprendizagem 0.5&lt;/strong&gt; - Vivemos num mundo que produz novas informações a cada segundo, e para tentar acompanhar esse ritmo frenético colocamos os vídeos na velocidade 2.0... Você faz isso? Pois eu já fiz muito e não adiantou nada. Eu consigo o certificado do curso e quase nada de conteúdo, e isso se dá porque a gente não aprende assim, tem que ter tempo de reflexão no que está sendo ouvido. Então algo que está funcionando ultimamente nos meus estudos é diminuir a velocidade e praticar uma escuta ativa. Entenda-se por escuta ativa: ato de ouvir com atenção e interesse, prestando total atenção e se interessando pelo assunto de seu interlocutor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Rotina é importante&lt;/strong&gt; - Ter rotina de estudos ajuda aprender mais rápido, acredito que funcione como um treino para o cérebro! O segredo é reservar um dia e horário consistente para estudar. Isso também ajuda a manter a disciplina e a progressão nos estudos. Ultimamente reservo 3 dias na semana para estudos (segunda, quarta e sexta) e determino o horário também, sempre das 20h as 22h (funciono melhor a noite).  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Ritmo também é importante&lt;/strong&gt; - O sucesso é o acúmulo de esforços repetidos dia após dia. Não dá muitos frutos estudar intensamente durante alguns dias e ficar semanas sem olhar aquele conteúdo. Então, atente-se ao ritmo!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Incluir o aprendizado no dia-a-dia dá sentido para "alocar" sua memória a longo prazo&lt;/strong&gt; - Para fixar melhor o aprendizado, é importante incluí-lo no dia-a-dia. Isso ajuda a tornar os conceitos mais simples e dá razão para continuar aprendendo e praticando.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Escrever é preciso&lt;/strong&gt; - Reserve um caderno e faça anotações, pode parecer meio antigo falar isso, mas funciona. "Fazer anotações durante os estudos pode ajudar a fixar melhor o aprendizado. Estudos científicos comprovam que a escrita manual é mais efetiva para a aprendizagem do que digitar no computador, vou deixar aqui um artigo legal sobre o tema: &lt;a href="https://milenioescolar.com.br/escrever-ou-digitar-o-que-e-melhor-para-a-aprendizagem/"&gt;https://milenioescolar.com.br/escrever-ou-digitar-o-que-e-melhor-para-a-aprendizagem/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. AI tá aí para ajudar!&lt;/strong&gt; - A inteligência artificial pode ser uma ótima aliada nos estudos. Experimente utilizar o ChatGPT para criar um roteiro de estudos personalizado. Perguntei aqui e o plano foi bem conciso, estabeleci o que queria aprender, quantos dias na semana, quanto tempo por dia e a sugestão foi bem interessante. Segue o link: &lt;a href="https://chat.openai.com/"&gt;https://chat.openai.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero que essas dicas ajudem você a estudar melhor em cursos online. Lembre-se de que aprender é um processo constante e a interação com o meio é fundamental para evoluir. Não desista dos seus objetivos e bons estudos!"&lt;/p&gt;

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