<?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: João Iacillo</title>
    <description>The latest articles on DEV Community by João Iacillo (@iachilo).</description>
    <link>https://dev.to/iachilo</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1186789%2F0be2f3da-df8f-4152-9c10-5000c741e30d.png</url>
      <title>DEV Community: João Iacillo</title>
      <link>https://dev.to/iachilo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iachilo"/>
    <language>en</language>
    <item>
      <title>Criando uma Barra de Navegação Mobile sem JavaScript</title>
      <dc:creator>João Iacillo</dc:creator>
      <pubDate>Sun, 12 Jul 2026 01:32:38 +0000</pubDate>
      <link>https://dev.to/iachilo/criando-uma-barra-de-navegacao-mobile-sem-javascript-2324</link>
      <guid>https://dev.to/iachilo/criando-uma-barra-de-navegacao-mobile-sem-javascript-2324</guid>
      <description>&lt;p&gt;Barras de navegação em dispositivos móveis devem ser pensadas de antemão e criadas para serem confortáveis e fáceis de usar, e você consegue fazer elas sem usar JavaScript.&lt;/p&gt;

&lt;p&gt;Normalmente, a navegação é escondida em um menu especial chamado de "hambúrguer", que se revela após um botão ser pressionado. Isso faz com que o conteúdo do site se torne mais relevante e o cabeçalho ocupe menos espaço.&lt;/p&gt;

&lt;p&gt;Apesar do JavaScript ser o caminho mais utilizado para criar esse tipo de menu, além de ser uma adição bem leve que não afeta a performance do seu site, é possível implementar essa mesma funcionalidade usando apenas HTML e CSS.&lt;/p&gt;

&lt;p&gt;Os navegadores já apresentam elementos e subclasses nativas para criar essa interatividade sem a necessidade de código extra, apenas utilizando &lt;code&gt;input&lt;/code&gt;s, &lt;code&gt;label&lt;/code&gt;s, e as pseudo classes &lt;code&gt;:has()&lt;/code&gt; e &lt;code&gt;:checked&lt;/code&gt;. Todas amplamente suportadas desde versões antigas.&lt;/p&gt;

&lt;p&gt;Ir por esse caminho também ajudará você a compreender mais como o CSS seleciona elementos com base em suas posições no &lt;code&gt;DOM&lt;/code&gt; e ser mais criativo na hora de criar elementos interativos sem a necessidade de inserir JavaScript em sua página.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando o Toggler
&lt;/h2&gt;

&lt;p&gt;O &lt;em&gt;Toggler&lt;/em&gt; é o botão responsável por alterar entre os estados de &lt;strong&gt;aberto&lt;/strong&gt; e &lt;strong&gt;fechado&lt;/strong&gt; do menu.&lt;/p&gt;

&lt;p&gt;Pensando em botão, lembramos do elemento &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; do HTML. Porém, ele por si só não consegue armazenar um estado a menos que adicionado manualmente via código.&lt;/p&gt;

&lt;p&gt;Um outro elemento do HTML que possui esse comportamento nativo é o &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; do tipo &lt;code&gt;checkbox&lt;/code&gt;. Com ele podemos checar seu estado através da pseudo classe &lt;code&gt;:checked&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- HTML --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* CSS */&lt;/span&gt;
&lt;span class="nt"&gt;input&lt;/span&gt;&lt;span class="nd"&gt;:checked&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;Somente com esse input, já inserimos um botão do tipo &lt;em&gt;toggler&lt;/em&gt; em nosso site. Porém, ele por si só não é muito descritivo, nem muito bonito, portanto podemos melhorá-lo da seguinte forma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Envolve-lo com um &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Adicionar um ícone de menu hambúrguer;&lt;/li&gt;
&lt;li&gt;Esconder o input;&lt;/li&gt;
&lt;li&gt;Adicionar um CSS extra para estilizar o botão:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Botão Toggler --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"toggler"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="c"&gt;&amp;lt;!-- Input --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class="c"&gt;&amp;lt;!-- Ícone --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;svg&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"http://www.w3.org/2000/svg"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"1em"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"1em"&lt;/span&gt; &lt;span class="na"&gt;viewBox=&lt;/span&gt;&lt;span class="s"&gt;"0 0 24 24"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;path&lt;/span&gt; &lt;span class="na"&gt;d=&lt;/span&gt;&lt;span class="s"&gt;"M0 0h24v24H0z"&lt;/span&gt; &lt;span class="na"&gt;fill=&lt;/span&gt;&lt;span class="s"&gt;"none"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;path&lt;/span&gt; &lt;span class="na"&gt;fill=&lt;/span&gt;&lt;span class="s"&gt;"currentColor"&lt;/span&gt; &lt;span class="na"&gt;d=&lt;/span&gt;&lt;span class="s"&gt;"M3 18v-2h18v2zm0-5v-2h18v2zm0-5V6h18v2z"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/svg&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.toggler&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;inline-flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;30%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;4px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.toggler&lt;/span&gt; &lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&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;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0nwh9hyzuap9ki3oauv2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0nwh9hyzuap9ki3oauv2.png" alt="botão de menu de hambúrguer" width="72" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nesse momento, o estilo do botão é estático, e apesar de ele funcionar, não temos um &lt;em&gt;feedback&lt;/em&gt; visual apropriado. Podemos fazer com que o estilo do botão mude com base no estado do &lt;em&gt;input&lt;/em&gt; utilizando a pseudo classe &lt;code&gt;:has(:checked)&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.toggler&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;:checked&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&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;E agora quando a &lt;em&gt;checkbox&lt;/em&gt; for marcada (ou em outras palavras, o menu for aberto), o botão ficará com as cores invertidas:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdc5d2thc0ckylxp89fn1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdc5d2thc0ckylxp89fn1.png" alt="botão de menu de hambúrguer ativado" width="70" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Por que &lt;code&gt;:has(:checked)&lt;/code&gt; e não &lt;code&gt;.toggler input:checked&lt;/code&gt;?
&lt;/h3&gt;

&lt;p&gt;Para que esse efeito funcione, é preciso que a &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; seja a estilizada, e não o &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Pelas regras de seleção do CSS, quando abrimos um seletor de criança, o parente não é o escolhido, e sim a criança. Nesse caso, se utilizássemos a segunda opção, o selecionado seria o &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; e não o &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;, causando um comportamento não esperado.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;:has()&lt;/code&gt; é uma pseudo classe que faz a verificação interna do parente, mas não muda a seleção, e com ele podemos fazer essas seleções mais complexas. Nesse caso, se qualquer criança da &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; der como verdadeiro a condição &lt;code&gt;:checked&lt;/code&gt;, então a regra é aplicada à &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando o menu de navegação
&lt;/h2&gt;

&lt;p&gt;A barra de navegação é a parte mais comum até o momento. Uma estrutura simples e bem reconhecida:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navbar"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pagina1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Página 1&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pagina2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Página 2&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pagina3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Página 3&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mas é muito importante que o menu venha &lt;strong&gt;depois&lt;/strong&gt; do &lt;em&gt;toggler&lt;/em&gt;. Nós usaremos o seletor de vizinho do CSS e a mesma tática da pseudo classe &lt;code&gt;:has()&lt;/code&gt; para controlar o estado de visibilidade da navbar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"toggler"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="c"&gt;&amp;lt;!-- ... --&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navbar"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="c"&gt;&amp;lt;!-- ... --&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.navbar&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.toggler&lt;/span&gt;&lt;span class="nd"&gt;:has&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nd"&gt;:checked&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nc"&gt;.navbar&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&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;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fct39weh0b50ttorwooec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fct39weh0b50ttorwooec.png" alt=" " width="120" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com isso, já temos uma barra de navegação colapsável funcional, mas para tornar isso realmente confortável no mobile, precisamos fazer algumas alterações no estilo e na estrutura:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Envolver todo esse código em um &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;Estilizar a barra de navegação para um formato mais fácil de clicar;&lt;/li&gt;
&lt;li&gt;E para finalizar, adicionar um indicador de página atual:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"toggler"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="c"&gt;&amp;lt;!-- ... --&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"navbar"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pagina1"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"active"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Página 1&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pagina2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Página 2&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/pagina3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Página 3&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.header&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;10%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.navbar&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;10%&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.navbar&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;list-style-type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.navbar&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.navbar&lt;/span&gt; &lt;span class="nc"&gt;.active&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rgba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;20%&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;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0xp7djijez21ydfch3lr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0xp7djijez21ydfch3lr.png" alt=" " width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bônus: Tailwind
&lt;/h2&gt;

&lt;p&gt;Caso você esteja usando o Tailwind, fazer esse tipo de menu se torna uma tarefa muito mais fácil:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"peer"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"checkbox"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- icon here --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;nav&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"hidden peer-has-checked:block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- ... --&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>webdev</category>
      <category>mobile</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Propriedade .length de funções e arrays</title>
      <dc:creator>João Iacillo</dc:creator>
      <pubDate>Sat, 12 Apr 2025 19:32:57 +0000</pubDate>
      <link>https://dev.to/iachilo/propriedade-length-de-funcoes-e-arrays-3eon</link>
      <guid>https://dev.to/iachilo/propriedade-length-de-funcoes-e-arrays-3eon</guid>
      <description>&lt;p&gt;Que o JavaScript é doido, maluco, até biruta da cabeça, todos nós sabemos. De uma linguagem que aponta como verdadeiro uma comparação que na teoria é a junção de duas outras comparações, sendo que as duas comparações isoladas apontam como falso a operação com os mesmos valores (&lt;code&gt;null &amp;gt;= 0&lt;/code&gt;, cof, cof.), nada pode se esperar.&lt;/p&gt;

&lt;p&gt;O motivo dessa minha escrita? O site &lt;a href="https://wtfjs.com/" rel="noopener noreferrer"&gt;WTFJS&lt;/a&gt;. Na data dessa postagem, mais especificamente de madrugada, estava navegando por ele, clicando em tópicos aleatórios e tentando entender os problemas. Até que me deparo com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="c1"&gt;//true&lt;/span&gt;
&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="c1"&gt;//true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse tópico certamente está se referindo a duas coisas completamente distintas: objetos e arrays. Apesar do nome da propriedade ser o mesmo, &lt;strong&gt;elas não representam a mesma coisa&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Object.create&lt;/code&gt; é responsável por criar uma cópia de um objeto utilizando outro como base. Na primeira linha está explícito que estamos criando uma cópia do construtor Array (que é uma função, guarde bem essa informação).&lt;/p&gt;

&lt;p&gt;Funções também trazem a propriedade &lt;code&gt;.length&lt;/code&gt;, mas que, diferente dos arrays, indica o número mínimo de argumentos que são esperados.&lt;/p&gt;

&lt;p&gt;Ou seja, a primeira linha não está criando um array, ela está clonando uma função. E segundo a documentação oficial do construtor do array, ela espera no mínimo um único argumento. Por isso &lt;code&gt;.length&lt;/code&gt; retorna 1.&lt;/p&gt;

&lt;p&gt;Na segunda linha estamos "buscando" as propriedades presentes no novo objeto, obtido através da clonagem do construtor do array. No entanto, ela não apresenta propriedades fora do seu protótipo. Então por que &lt;code&gt;.length&lt;/code&gt; retorna 0? Justamente por que &lt;code&gt;Object.keys&lt;/code&gt; retorna uma nova instância de array.&lt;/p&gt;

&lt;p&gt;Percebem a diferença? Primeiro obtemos a quantidade de parâmetros esperados pela função construtora de array, e depois obtemos a quantidade de propriedades (fora do protótipo) que aquele objeto tem. É por isso que retornam valores diferentes.&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Tornando as Metas de 2024 em Objetivos Realmente Alcançáveis</title>
      <dc:creator>João Iacillo</dc:creator>
      <pubDate>Thu, 04 Jan 2024 15:41:24 +0000</pubDate>
      <link>https://dev.to/iachilo/tornando-as-metas-de-2024-em-objetivos-realmente-alcancaveis-1487</link>
      <guid>https://dev.to/iachilo/tornando-as-metas-de-2024-em-objetivos-realmente-alcancaveis-1487</guid>
      <description>&lt;p&gt;Você faz metas para cada novo ano? Você realmente as conclui? A maioria das pessoas param no ponto final da lista, e não conseguem encontrar motivação para concretizar os itens. Este artigo irá falar sobre como metas anuais diferem de objetivos de curto prazo, e darei dicas de como as concluir.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tabela de Conteúdos
&lt;/h2&gt;



&lt;ul&gt;
&lt;li&gt;Introdução&lt;/li&gt;
&lt;li&gt;Conheça o André&lt;/li&gt;
&lt;li&gt;O que são de fato as metas anuais?&lt;/li&gt;
&lt;li&gt;Unindo metas anuais a objetivos de curto prazo&lt;/li&gt;
&lt;li&gt;Jamais deixe para o final&lt;/li&gt;
&lt;li&gt;Conclusão&lt;/li&gt;
&lt;/ul&gt;






&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Eu também já estive neste posto, já tive metas que não foram colocadas em prática. Posso dizer que isso foi péssimo para mim, mas que também fez subir a duvida de se era possível realmente as alcançar.&lt;/p&gt;

&lt;p&gt;O meu principal problema era que eu adiava a realização das metas, e nem ao menos tinha um plano a seguir. É como atirar no escuro: você não vê, você não sente, você não planeja.&lt;/p&gt;

&lt;p&gt;É preciso tornar as metas em objetivos curtos que possam ser realizadas em um tempo menor, papo de meses, por exemplo. Isto ajuda na hora do planejamento e, principalmente, da ação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conheça o André
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm9mbw4ut5fjqr8tvumwh.jpg" class="article-body-image-wrapper"&gt;&lt;img alt="Imagem gerada por IA do André sentado em uma mesa marrom enquanto escreve em seu caderno" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm9mbw4ut5fjqr8tvumwh.jpg" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;André é um universitário carismático, muito sonhador e sempre carrega consigo uma lista de tarefas para que possa se guiar pelo dia, e planejar a semana de antemão. Está sempre escrevendo em seu caderninho tudo o que precisa.&lt;/p&gt;

&lt;p&gt;No meio do ano, André revisitou a seção de metas anuais do seu caderninho e percebeu que apenas uma estava marcada como concluída:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4vkjvi5vt0w4q3uuptl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4vkjvi5vt0w4q3uuptl.jpg" alt="Lista de metas de 2023 do André" width="600" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diariamente André também fazia tarefas relacionadas a essas metas, mas por algum motivo, elas ainda pareciam tão distantes de serem realizadas. André então se perguntou se o problema era com ele, ou com a lista.&lt;/p&gt;

&lt;p&gt;Ele se lembrou de seus últimos meses, onde comia muito fast-food, mas também comidas saudáveis, Passeava com seu cachorro duas vezes por semana (as vezes apenas uma), e sempre que possível ele estudava o conteúdo da universidade.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Isto me faz mais saudável?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Será que passeei o suficiente com meu cachorro?&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Será que estou apto a passar nas provas?&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todas essas foram perguntas feitas por André. Ele não sabia as responder pois não tinha uma forma concreta de saber se as alcançou ou não. Seria trapaça ele marcar que ficou mais saudável mesmo tendo comido altas quantidades de besteira?&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são de fato as metas anuais?
&lt;/h2&gt;

&lt;p&gt;Está certo que muitos de nós queremos emagrecer até o final do ano, ou até mesmo tirar 10 em uma prova. O problema disso é que estas metas são muito vagas quanto se diz respeito a nós.&lt;/p&gt;

&lt;p&gt;Metas anuais por definição são objetivos que queremos alcançar até o próximo ano, e isso está certo, mas se tratarmos apenas como meros objetivos para se concluir algo, não temos a motivação necessária pois o resultado dela não irá refletir sobre nossa personalidade.&lt;/p&gt;

&lt;p&gt;É preciso pensar como uma criança e revisitar a tão famosa pergunta &lt;code&gt;"O que você quer ser quando crescer?"&lt;/code&gt;, mas nesse caso como somos mais velhos, a pergunta deve ser &lt;code&gt;"O que querermos nos tornar esse ano?"&lt;/code&gt;. Apelar para a imaginação é uma das melhores formas de se criar metas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Unindo metas anuais a objetivos de curto prazo
&lt;/h2&gt;

&lt;p&gt;A meta anual do André de ser saudável, por exemplo, mostra que ele quer aprimorar sua própria personalidade, e ter uma vida com mais energia e exercícios. Isto pode ser visto também nas metas sobre comer menos fast-food e passear mais com o cachorro.&lt;/p&gt;

&lt;p&gt;No entanto, tirando a sobre ser saudável, essas metas soam mais como objetivos de curto prazo que podem ser colocadas em uma lista mensal, e que se comunicam diretamente com a meta anual.&lt;/p&gt;

&lt;p&gt;Adicionar uma forma de medir nossas metas nos permite que saibamos quando estamos longe ou perto de concluí-las. Isto na verdade é uma das partes cruciais das metas SMART, e faz sentido.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpm7rh7qnjgq4wyjc4xa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpm7rh7qnjgq4wyjc4xa.jpg" alt="Metas anuais e objetivos de Julho do André" width="600" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com as modificações no caderninho que o André fez, é possível que ele mantenha um registro do seu progresso a cada mês. Além disso, ele também atribuiu métricas aos objetivos de Julho, o que ajuda a saber se as concluiu também. Caso contrário, ele cairia no mesmo erro.&lt;/p&gt;

&lt;h2&gt;
  
  
  Jamais deixe para o final
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/26n6xBpxNXExDfuKc/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://i.giphy.com/media/26n6xBpxNXExDfuKc/giphy.gif" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O trabalho se expande de modo a preencher o tempo disponível para a sua realização. Quanto mais tempo, mais importante e exigente o trabalho parece.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parkinsons Law: Or The Pursuit Of Progress&lt;/strong&gt;. &lt;em&gt;Cyril Northcote Parkinson&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lembro que ouvi a citação acima durante o meu ensino médio, e devo dizer que ela foi uma das frases que mais me ajudou a realizar minhas tarefas.&lt;/p&gt;

&lt;p&gt;Pode parecer bobeira, mas quanto mais tempo tivermos, mais estamos dispostos a procrastinar a realização da tarefa. Sempre deixamos para o final, é natural do ser humano, queremos economizar energia.&lt;/p&gt;

&lt;p&gt;É necessário encontrar um equilíbrio durante a definição do prazo final: nem muito pouco para não se frustrar, nem muito para não procrastinar. Normalmente quando escrevo meus artigos, defino um tempo limite de 4 dias para poder publicá-lo até o final da semana sempre.&lt;/p&gt;

&lt;p&gt;Vamos ver como nosso amigo André pode se beneficiar disso para as aulas da universidade:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8nbfl169bixjaqkjzwg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8nbfl169bixjaqkjzwg.jpg" alt="Metas anuais e objetivos de Julho para universidade de André" width="600" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para o curso do André, é necessário que ele escreva redações para poder praticar a escrita, ao mesmo tempo que organiza suas ideias. Por isso, ele definiu uma redação por semana para ser realizada em até 5 dias.&lt;/p&gt;

&lt;p&gt;Dessa forma, o homem pode escrever pouco durante os 5 dias e aprimorar suas habilidades. Isto não irá deixá-lo frustrado, nem ao menos irá procrastinar para deixar até o final do mês.&lt;/p&gt;

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

&lt;p&gt;Nem sempre é fácil atingir uma meta, e você precisa estar disposto a faze-la. É por isso que é tão importante utilizar usa personalidade como ponto de motivação.&lt;/p&gt;

&lt;p&gt;Mesmo estando na primeira semana de janeiro, ainda é possível fazer metas para 2024. Veja pelo exemplo do André, ele refez as metas na metade do ano, prestes a chegar Julho. Você pode começar com um caderno, ou com o bloco de notas do seu computador.&lt;/p&gt;

&lt;p&gt;Eai? Bora realizar essas metas?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/VFDeGtRSHswfe/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://i.giphy.com/media/VFDeGtRSHswfe/giphy.gif" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Criando um Zettelkasten para organizar suas ideias</title>
      <dc:creator>João Iacillo</dc:creator>
      <pubDate>Wed, 06 Dec 2023 14:56:02 +0000</pubDate>
      <link>https://dev.to/iachilo/criando-um-zettelkasten-para-organizar-suas-ideias-46fk</link>
      <guid>https://dev.to/iachilo/criando-um-zettelkasten-para-organizar-suas-ideias-46fk</guid>
      <description>&lt;p&gt;Todos sabemos que hoje em dia estamos rodeados por uma imensa carga de informações. O problema disso? Nosso cérebro ainda não é capaz de armazenar tudo o que vemos diariamente, e isto pode levar a perda de ideias cruciais e criativas. Então, como podemos resolver isso? O &lt;em&gt;Zettelkasten&lt;/em&gt; trás uma solução.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tabela de Conteúdos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introdução&lt;/li&gt;
&lt;li&gt;O que esperar deste artigo?&lt;/li&gt;
&lt;li&gt;Apresentando o sistema Zettelkasten&lt;/li&gt;
&lt;li&gt;A origem do sistema caótico e organizado&lt;/li&gt;
&lt;li&gt;Guardando ideias em notas atômicas&lt;/li&gt;
&lt;li&gt;Tornando as notas identificáveis&lt;/li&gt;
&lt;li&gt;
Estabelecendo conexões entre as notas

&lt;ul&gt;
&lt;li&gt;Conectando notas com parágrafos de suporte&lt;/li&gt;
&lt;li&gt;Conectando notas com tabelas de conteúdo&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Comece agora a fazer o seu guia!

&lt;ul&gt;
&lt;li&gt;1. Anote tudo, tudo, tudo!&lt;/li&gt;
&lt;li&gt;2. Identifique possíveis conexões e anote&lt;/li&gt;
&lt;li&gt;3. Crie notas para cada conexão importante&lt;/li&gt;
&lt;li&gt;4. Pause, e continue amanhã!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Utilizando softwares para auxiliar no processo&lt;/li&gt;
&lt;li&gt;Conclusão&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Como eu mencionei acima, vivemos em um mundo onde somos bombardeados constantemente pela enorme diversidade de conteúdos, que muitas das vezes não trazem vantagens para nossas vidas.&lt;/p&gt;

&lt;p&gt;Por sorte, nossos cérebros têm a fantástica capacidade de &lt;strong&gt;esquecer&lt;/strong&gt; para não lidar com esse excesso. Porém, é preciso fazer um certo esforço para que nossos "computadores biológicos" de fato guardem as informações mais importantes. E sejamos sinceros, é um sufoco.&lt;/p&gt;

&lt;p&gt;É muito improvável que nós lembremos de tudo o que queremos ou julgamos importante; o cérebro simplesmente não funciona dessa forma. Por isso, precisamos &lt;strong&gt;escrever&lt;/strong&gt; e &lt;strong&gt;guardar&lt;/strong&gt; nossas ideias para que possamos acessá-las no futuro. E é nisso que o &lt;em&gt;Zettelkasten&lt;/em&gt; pode dar uma mãozinha.&lt;/p&gt;

&lt;p&gt;Quer saber como? Chega mais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/SwImQhtiNA7io/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://i.giphy.com/media/SwImQhtiNA7io/giphy.gif" height="297"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  O que esperar deste artigo?
&lt;/h2&gt;

&lt;p&gt;Antes de introduzir ao &lt;em&gt;Zettelksten&lt;/em&gt;, gostaria de deixar claro que ainda estou aprendendo. O problema é que é muito difícil encontrar bons recursos em Português relacionados a este assunto, e essa é minha motivação para escrever este artigo.&lt;/p&gt;

&lt;p&gt;Diferentemente dos outros artigos e vídeos, não estou aqui para definir esse &lt;strong&gt;sistema&lt;/strong&gt; como algo fixo e de estrutura única apenas. &lt;strong&gt;Cada pessoa é única&lt;/strong&gt;, e portanto cada &lt;em&gt;Zettelkasten&lt;/em&gt; é unico. O importante é explorar o que funciona mais para você.&lt;/p&gt;

&lt;p&gt;Neste artigo irei sim apresentar o meu sistema e explicarei sobre &lt;strong&gt;como&lt;/strong&gt; eu cheguei nessa solução, porém não recomendo que copiem minha estrutura, já que ela funciona para &lt;strong&gt;mim&lt;/strong&gt; e pode &lt;strong&gt;não funcionar para você.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Apresentando o sistema Zettelkasten
&lt;/h2&gt;

&lt;p&gt;O &lt;em&gt;Zettelkasten&lt;/em&gt; é composto por várias partes fundamentais que juntas formam uma grande teia de anotações que se referem umas as outras: notas, tags, referências, clusters, etc.&lt;/p&gt;

&lt;p&gt;Imagine ele como uma grande caixa que guarda um monte de notas, desde receitas de cozinha, até fórmulas matemáticas complexas ou snippets de código úteis para o futuro.&lt;/p&gt;

&lt;p&gt;A principal habilidade que vêm ao manusear um &lt;em&gt;Zettelkasten&lt;/em&gt; próprio é justamente a capacidade de entender &lt;strong&gt;o mínimo&lt;/strong&gt; que você precisa, e como aplicar para que suas notas trabalhem para você, e não contra você. &lt;strong&gt;Quanto menos você tiver, mais você ganha.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A origem do sistema caótico e organizado
&lt;/h2&gt;

&lt;p&gt;O sistema foi criado por Niklas Luhmann, um sociologista alemão que mantinha em seu escritório uma caixa física cheia de notas retangulares que continham suas ideias e estudos.&lt;/p&gt;

&lt;p&gt;Não se assuste, você não irá precisar comprar uma caixa com gavetas e fazer o processo à mão. Existem programas e aplicativos que simulam essa experiência e trazem um ambiente muito mais amigável do que o método físico.&lt;/p&gt;

&lt;p&gt;Niklas usava o seu &lt;em&gt;Zettelkasten&lt;/em&gt; para retomar ideias e escrever seus artigos, totalizando mais de 600 publicados e deixando mais de 100 não finalizados após sua morte.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Niklas Luhmann era um cientista social altamente produtivo. Ele publicou 50 livros e mais de 600 artigos. Ele não conquistou isso sozinho. Ele tinha uma companhia bastante interessante.&lt;/p&gt;

&lt;p&gt;Também há mais de 150 manuscritos inacabados deixados em sua propriedade. Pelo menos um deles é um texto de 1000 páginas. Então sua produtividade ultrapassou até mesmo seu já surpreendente corpo de trabalho publicado."&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Trecho traduzido do artigo &lt;a href="https://zettelkasten.de/introduction/#a-zettelkasten-is-a-personal-tool-for-thinking-and-writing" rel="noopener noreferrer"&gt;&lt;strong&gt;Introduction to the Zettelkasten Method&lt;/strong&gt;&lt;/a&gt;, escrito por Sascha.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apesar de suas notas serem guardadas dentro de várias gavetas, que a princípio não parecem organizadas, Luhmann atribuía números identificadores a cada nota. Esses números permitiam ao cientista poder referenciar notas em outras notas, e portanto criar uma teia mental de anotações e ideias.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/yNs2a0jRkYxy6191B2/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="500" src="https://i.giphy.com/media/yNs2a0jRkYxy6191B2/giphy.gif" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Guardando ideias em notas atômicas
&lt;/h2&gt;

&lt;p&gt;A base para todo o sistema são as notas atômicas. Mas o que raios é isso? Elas são documentos que tem o principal objetivo de apresentar uma &lt;strong&gt;única&lt;/strong&gt; ideia. É a partir daqui que o &lt;em&gt;Zettelkasten&lt;/em&gt; encontra sua fonte primária para introduzir a conexão entre notas.&lt;/p&gt;

&lt;p&gt;Quando focamos uma ideia por nota, abrimos espaço para poder relacionar diferentes áreas da nossa vida. De vez em quando, ao revisar a sua teia de notas, você verá que assuntos que você via ontem como completamente distintos podem ser relacionados.&lt;/p&gt;

&lt;p&gt;Por única ideia, não me refiro a um único parágrafo ou um único tópico de lista, mas sim a ideia principal por trás de um pensamento ou fato lido. Estamos sempre tendo ideias e pensamentos, assim como sempre lemos algo novo todos os dias. Ao praticar identificar o tópico principal de uma parte do texto ou do pensamento, poderemos atomizar e criar diversas notas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Pandas é uma biblioteca que estende o Python&lt;/span&gt;

Apesar de ser uma biblioteca, ela é muito importante para quem
trabalha em um setor que envolve a manipulação e o estudo de
dados.

Ela trás uma abordagem amigável, porém poderosa, que automatiza
diversas tarefas de leitura, estruturação, inclusão, exclusão e
atualização de dados em diversos formatos existentes.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este texto acima é uma nota real do meu próprio &lt;em&gt;Zettelkasten&lt;/em&gt;. Ela apresenta 2 parágrafos, porém a ideia principal é explicar o &lt;strong&gt;porquê&lt;/strong&gt; do Pandas estender a linguagem Python.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tornando as notas identificáveis
&lt;/h2&gt;

&lt;p&gt;Como parte crucial do sistema &lt;em&gt;Zettelkasten&lt;/em&gt;, todas as notas devem ser identificáveis atravéis de algum número ou texto. As formas mais comuns, que eu encontrei, foram utilizando o título do arquivo, ou usando um &lt;em&gt;timestamp&lt;/em&gt; (que é o que eu uso).&lt;/p&gt;

&lt;p&gt;Por exemplo, no meu sistema eu utilizo um &lt;em&gt;timestamp&lt;/em&gt; com o seguinte formato: &lt;code&gt;'N'YYYYMMDDHHmm&lt;/code&gt;, isto é: &lt;code&gt;'N' + ano + mês + dia + hora + minuto&lt;/code&gt;. Esses números são gerados automaticamente pelo &lt;em&gt;Obsidian&lt;/em&gt;, software que uso, e não recomendo que fique os escrevendo manualmente. É uma tarefa tediosa e não muito útil.&lt;/p&gt;

&lt;p&gt;A vantagem de utilizar um identificador é justamente que a nota poderá facilmente ser mencionada em outras notas. A conexão entre notas permite relacionar notas distintas, e isto será o próximo tópico deste artigo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/SV5k9Ulnk9LdgYnjbe/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://i.giphy.com/media/SV5k9Ulnk9LdgYnjbe/giphy.gif" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Estabelecendo conexões entre as notas
&lt;/h2&gt;

&lt;p&gt;As conexões são simples &lt;em&gt;links&lt;/em&gt; presentes nas notas que ligam uma nota &lt;code&gt;A&lt;/code&gt; com notas &lt;code&gt;B&lt;/code&gt;, &lt;code&gt;C&lt;/code&gt;, e por aí vai. Isto é variável de sistema para sistema, mas a forma mais básica de criar uma, é simplesmente inserir o identificador da nota a ser referenciada no conteúdo da nota atual.&lt;/p&gt;

&lt;p&gt;Como você conecta notas, é aberto a sua escolha. No meu &lt;em&gt;Zettelkasten&lt;/em&gt;, utilizo a tática de &lt;strong&gt;parágrafo de suporte&lt;/strong&gt; (um parágrafo que contextualiza a conexão) e &lt;strong&gt;tabela de contéudos&lt;/strong&gt; (como em um livro ou artigo).&lt;/p&gt;

&lt;h3&gt;
  
  
  Conectando notas com parágrafos de suporte
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Atualizando uma nota no Zettelkasten&lt;/span&gt;

Uma informação contida em uma nota nem sempre irá manter sua
versão original. As ideias &lt;span class="gs"&gt;**são e devem sempre ser revisadas**&lt;/span&gt;
pois as conexões neurais sempre mudam.

A atualização deve ser feita de forma controlada, ao ponto de não
quebrar os &lt;span class="gs"&gt;**parágrafos de suporte**&lt;/span&gt; em suas notas conectadas.
Caso isso aconteça, a nota irá perder o seu valor, e isso pode
trazer uma ruptura de ideias (N202311171816).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;A nota acima foi tomada do meu Obsidian, e adaptada para ficar mais legível para o artigo.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;O segundo parágrafo, como podem ver, possui um identificador para uma outra nota. Essa nota referenciada se aprofunda mais no conteúdo sobre &lt;strong&gt;ruptura de ideias&lt;/strong&gt; explorado no parágrafo. Portanto, ele é um &lt;strong&gt;parágrafo de suporte&lt;/strong&gt; para contextualizar e conectar as duas notas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conectando notas com tabelas de conteúdo
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhv3nyisrjnbi38hf0bs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffhv3nyisrjnbi38hf0bs.png" alt="nota sobre zettelkasten no obsidian usando uma tabela de contéudo" width="704" height="777"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A nota acima é um trabalho em progresso meu onde eu construo um guia para me guiar no meu sistema (e inclusive isto será abordado mais a frente no artigo). Eu utilizo termos e estruturas que eu estou criando para poder manter uma consistência e uma organização, &lt;strong&gt;jamais um completo caos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A tabela de conteúdos pode ser simples, como um mero:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; Título da nota: (N202311171731)
&lt;span class="p"&gt;-&lt;/span&gt; Título da nota 2: (N202311171727)
&lt;span class="p"&gt;-&lt;/span&gt; ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O importante é conectar de forma genérica duas ou mais notas. Aqui, nenhum contexto está sendo dado, elas apenas estão relacionadas, e pronto. Com ela você pode criar &lt;strong&gt;clusters&lt;/strong&gt; (notas que agrupam outras notas para organização).&lt;/p&gt;

&lt;p&gt;Quanto à nomenclatura de um &lt;em&gt;cluster&lt;/em&gt;, isto é bem subjetivo. Existem pessoas que utilizam uma sentença como título, ou eu, que uso apenas a palavra ou a expressão mesmo, assim como mostrei na imagem acima.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comece agora a fazer o seu guia!
&lt;/h2&gt;

&lt;p&gt;Nada melhor do que exercitar a mente e utilizar um sistema completamente novo, sem saber absolutamente nada. Nesta etapa, o seu objetivo é... &lt;strong&gt;experimentar qualquer coisa!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Um dos mantras do &lt;em&gt;Zettelkasten&lt;/em&gt;, assim como eu disse no começo desse artigo, é que todo sistema é único. Portanto, você só irá saber o que funciona para você se você soltar os cachorros e deixar a festa acontecer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpa1.aminoapps.com%2F6573%2Ffbdd34d379579d3de76dcdd87d73de122980337f_hq.gif" class="article-body-image-wrapper"&gt;&lt;img width="800" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpa1.aminoapps.com%2F6573%2Ffbdd34d379579d3de76dcdd87d73de122980337f_hq.gif" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Anote tudo, tudo, tudo!
&lt;/h3&gt;

&lt;p&gt;Pegue um arquivo do Notepad e coloque o título "Zettelkasten" e comece a escrever &lt;strong&gt;tudo&lt;/strong&gt; o que você lembra que foi lido deste artigo, ou vá atrás de outras materiais, e anote tudo neste único documento.&lt;/p&gt;

&lt;p&gt;Esqueça sobre &lt;em&gt;softwares&lt;/em&gt; poderosos, que trazem ferramentas X, Y e Z. Foque na ideia da anotação. Faça por bullet point, parágrafo, palavras chaves, você quem decide.&lt;br&gt;
&lt;/p&gt;

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

- Sistema próprio de anotações.
- Utiliza notas e anotações para organizar ideias.
- Criado por Niklas Luhmann.
- Notas precisam ter identificadores: (YYYYMMDDHHmm).
- Conexões entre notas são criadas através dos identificadores.
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Identifique possíveis conexões e anote
&lt;/h3&gt;

&lt;p&gt;Agora que você possui tudo anotado, tente buscar por possíveis conexões entre os tópicos, palavras ou parágrafos. É incrível perceber como simples tópicos podem ser abertos para muitas mais ideias, ou servir de ponte para conectar outras duas ideias.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Zettelkasten -&amp;gt; Luhmann -&amp;gt; Artigos -&amp;gt; Sociologia -&amp;gt; ...
Notas -&amp;gt; Estudos -&amp;gt; Ideias -&amp;gt; Fatos  -&amp;gt; ...
Conexões -&amp;gt; Identificadores -&amp;gt; ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Crie notas para cada conexão importante
&lt;/h3&gt;

&lt;p&gt;Essa etapa em si, é repetitiva, e pode abrir portas para mais notas futuras. &lt;strong&gt;Não se perca!&lt;/strong&gt; Menos é mais, e ficar criando mais e mais notas no mesmo dia não vai tornar o seu &lt;em&gt;Zettelkasten&lt;/em&gt; útil, mas sim um amalgamo de notas. Vá aos poucos.&lt;/p&gt;

&lt;p&gt;Agora que você possui os conteúdos, e as possíveis conexões estabelecidas, você pode criar notas e ir atrás de &lt;strong&gt;referências&lt;/strong&gt; para darem ênfase à sua nota, sejam elas vídeos, artigos ou até livros.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Niklas Luhmann inventou o Zettelkasten para escrever artigos.

O sociólogo alemão Niklas Luhmann, criou o Zettelkasten para que
pudesse escrever seus artigos.

Ele possuía mais de 90 mil notas em sua gaveta (202312021846).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O segundo parágrafo foi criado para contextualizar a ideia de que o Niklas tinha mais de 90 mil notas guardadas, e então &lt;em&gt;linkar&lt;/em&gt; a nota em si. Essa nota referenciada pode introduzir outros &lt;strong&gt;parágrafos de suporte&lt;/strong&gt; para conectar notas que expliquem, por exemplo, como ele tinha tantas notas.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Pause, e continue amanhã!
&lt;/h3&gt;

&lt;p&gt;Vamos lá gente, uma pausa sempre é bem vinda. E neste caso, ela é crucial, por que o seu cérebro &lt;strong&gt;não&lt;/strong&gt; está acostumado com anotações neste estilo.&lt;/p&gt;

&lt;p&gt;Beba água, levante, vá jogar. Faça qualquer coisa que não seja mais tocar nessas notas! Amanhã acorde, realize sua rotina e volte a analisar as notas, você irá perceber que algumas ideias estarão mais consolidadas na sua cabeça e outras ideias aparecerão para ampliar sua visão sobre o Zettelkasten. E se não acontecer, continue se esforçando!&lt;/p&gt;

&lt;h2&gt;
  
  
  Utilizando softwares para auxiliar no processo
&lt;/h2&gt;

&lt;p&gt;A melhor vantagem dos tempos modernos é justamente os computadores, e para a criação de um &lt;em&gt;Zettelkasten&lt;/em&gt; existem vários aplicativos e programas que o auxiliam.&lt;/p&gt;

&lt;p&gt;Como utilizo bastante o &lt;a href="https://obsidian.md/" rel="noopener noreferrer"&gt;Obsidian&lt;/a&gt; para manter meu sistema, é este mesmo que falarei mais sobre, porém existem outros com diferentes ecossistemas que valem a pena explorar.&lt;/p&gt;

&lt;p&gt;O &lt;em&gt;Obsidian&lt;/em&gt; é bastante conhecido como um "segundo cérebro", porém pessoalmente não gosto dessa nomenclatura pois ferramentas estão aqui para acelerar nosso trabalho, não ser nossa &lt;strong&gt;estratégia&lt;/strong&gt;. Quanto mais você se prender a uma ferramenta, mais você irá precisar dela e ficará muito difícil de experimentar outras. Tome meu conselho.&lt;/p&gt;

&lt;p&gt;No entanto, um ponto muito interessante sobre essa ferramenta é que ela foi desenhada especialmente para suportar a conexão entre as notas, e faz isso muito bem, com apresentação delas através de um gráfico que podemos analisar visualmente para criar novas notas e conexões.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d3ne8722uz6yhzn90ce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6d3ne8722uz6yhzn90ce.png" alt="gráfico de notas do obsidian" width="625" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É uma ferramenta que pode muito bem lhe ajudar, porém não fique preso somente a ela por que eu recomendei, você pode ir atrás de outras como &lt;a href="https://www.notion.so/pt-br" rel="noopener noreferrer"&gt;Notion&lt;/a&gt;, &lt;a href="https://tiddlywiki.com/" rel="noopener noreferrer"&gt;TiddlyWiki&lt;/a&gt;, &lt;a href="https://roamresearch.com/" rel="noopener noreferrer"&gt;Roam&lt;/a&gt;, entre outras. O importante é utilizar aquela que mais se sente confortável e se aplica à sua estratégia de anotação.&lt;/p&gt;

&lt;p&gt;Por muito tempo, utilizei o bloco de notas da Microsoft como minha ferramenta de anotação, que gradualmente estou migrando para o Obsidian. Então trazer suas outras anotações para o &lt;em&gt;Zettelkasten&lt;/em&gt; é uma ótima forma de reter aquelas informações que você deixa engavetadas. ;)&lt;/p&gt;

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

&lt;p&gt;Muito obrigado por me acompanhar até o final deste artigo. Eu sei, é muita coisa, e muita informação. Isto aqui foi apenas a ponta do Iceberg do que o seu &lt;em&gt;Zettelkasten&lt;/em&gt; pode se tornar caso se dedique e mantenha uma consistência.&lt;/p&gt;

&lt;p&gt;Um site que eu recomendo muito para aprender mais e discutir sobre o &lt;em&gt;Zettelkasten&lt;/em&gt; é o &lt;a href="https://zettelkasten.de/" rel="noopener noreferrer"&gt;zettelkasten.de&lt;/a&gt;. Ele foi a minha principal fonte de aprendizado do sistema inteiro, além de que já participei do fórum e recebi ajuda dos administradores e usuários, então vale muito apena caso queira se aprofundar.&lt;/p&gt;

&lt;p&gt;Ah! E não mergulhe naqueles vídeos do YouTube que mostram gráficos enormes, bonitos, ou um Obsidian cheio de plugins. &lt;strong&gt;Isso tudo não passa de fantasia.&lt;/strong&gt; Quanto menos, melhor. Siga sempre esta filosofia que você terá mais chances de não abandonar o sistema.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/TGKYHEUgxHIcxJkAhI/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img width="480" src="https://i.giphy.com/media/TGKYHEUgxHIcxJkAhI/giphy.gif" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>learning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Começando nos Estudos de Data Science com Python e Pandas</title>
      <dc:creator>João Iacillo</dc:creator>
      <pubDate>Fri, 24 Nov 2023 15:02:33 +0000</pubDate>
      <link>https://dev.to/iachilo/comecando-nos-estudos-de-data-science-com-python-e-pandas-3hl0</link>
      <guid>https://dev.to/iachilo/comecando-nos-estudos-de-data-science-com-python-e-pandas-3hl0</guid>
      <description>&lt;p&gt;Entrar no universo de data science vem se tornando cada vez fácil. Isto pois há uma crescente implementação neste mercado de bibliotecas e linguagens de alto-nível, como o Pandas e o Python, para que a manipulação de um alto número de dados não se torne uma tarefa complicada.&lt;/p&gt;




&lt;center&gt;
&lt;h2&gt;Tabela de Conteúdos&lt;/h2&gt;
&lt;/center&gt;

&lt;ul&gt;
&lt;li&gt;1. Introdução&lt;/li&gt;
&lt;li&gt;2. Entendendo a Biblioteca Pandas&lt;/li&gt;
&lt;li&gt;
3. Estrutura de Dados

&lt;ul&gt;
&lt;li&gt;3.1. DataFrames&lt;/li&gt;
&lt;li&gt;3.2. Series&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;4. Querying&lt;/li&gt;
&lt;li&gt;5. Conclusão&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  1. Introdução
&lt;/h2&gt;

&lt;p&gt;Como um programador web venho dedicando meu tempo ao estudo de tecnologias relacionadas a front-end. No entanto, percebi que uma das linguagens que me introduziram à programação estava empoeirada na minha estante, o Python. Havia um bom tempo desde que eu sequer toquei nela novamente, e isso me incomodou.&lt;/p&gt;

&lt;p&gt;Foi conhecendo o data science, através de um programa de estudos que utilizava o Python e o Pandas, que eu decidi desempoeirar a coitada e abraçar uma nova jornada na minha vida. Este artigo contêm o meu aprendizado até o momento sobre a biblioteca.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Entendendo a Biblioteca Pandas
&lt;/h2&gt;

&lt;p&gt;O Pandas foi uma biblioteca originalmente criada para fins internos à uma empresa, mas que com o tempo, foi se tornando parte da comunidade open-source, e hoje possui a contribuição de muitos desenvolvedores ao redor do mundo para sua evolução.&lt;/p&gt;

&lt;p&gt;Seu principal objetivo é trabalhar com informações, sejam tabuladas ou em sequência (em tabela ou em lista). Além de apresentar poderosas ferramentas e integrações com outras bibliotecas que compõem o universo do data science no Python.&lt;/p&gt;

&lt;p&gt;Seus dois tipos de estruturas mais comuns são o &lt;code&gt;DataFrame&lt;/code&gt; e a &lt;code&gt;Series&lt;/code&gt;, que apesar de possuirem a função em comum de armazenar dados, são manuseados de formas diferentes, e um depende do outro para coexistirem.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Estruturas de Dados
&lt;/h2&gt;

&lt;h3&gt;
  
  
  3.1. DataFrames
&lt;/h3&gt;

&lt;p&gt;Sendo uma estrutura tabulada, o &lt;code&gt;DataFrame&lt;/code&gt; armazena os dados de forma parecida com o Excel ou CSV, atribuindo à uma matriz de duas dimensões linhas e colunas, que quando em conjunto, apontam para uma única célula de informação.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Coluna&lt;/th&gt;
&lt;th&gt;Coluna&lt;/th&gt;
&lt;th&gt;Coluna&lt;/th&gt;
&lt;th&gt;Coluna&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Linha&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Linha&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Linha&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;td&gt;Célula&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sua criação pode ser realizada através de listas, dicionários, arrays do Numpy, ou outro DataFrame. Para a leitura de arquivos, o Pandas possui funções auxiliares que possuem o nome seguindo o formato &lt;code&gt;read_T()&lt;/code&gt;, sendo &lt;code&gt;T&lt;/code&gt; o tipo do arquivo, como por exemplo csv (&lt;code&gt;read_csv()&lt;/code&gt;); html (&lt;code&gt;read_html()&lt;/code&gt;); excel (&lt;code&gt;read_excel()&lt;/code&gt;); etc.&lt;/p&gt;

&lt;p&gt;Utilizarei abaixo dois exemplos que aprendi durante meus estudos, um dataset sobre carros: (1) escrito manualmente como lista; (2) lido de um arquivo CSV:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;

&lt;span class="c1"&gt;# Definição dos dados
&lt;/span&gt;&lt;span class="n"&gt;dados&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="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Nome&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Jetta Variant&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Motor&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Motor 4.0 Turbo&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ano&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2003&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Quilometragem&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;44410.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Zero_km&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Valor&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;88078.64&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Nome&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Passat&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Motor&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Motor Diesel&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ano&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1991&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Quilometragem&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;5712.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Zero_km&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Valor&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;106161.94&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Nome&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Crossfox&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Motor&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Motor Diesel V8&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ano&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1990&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Quilometragem&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;37123.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Zero_km&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Valor&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;72832.16&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;dataframe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DataFrame&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dados&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;dataframe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;

&lt;span class="c1"&gt;# Leitura do arquivo CSV
&lt;/span&gt;&lt;span class="n"&gt;carros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read_csv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;db.csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sep&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;;&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index_col&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Nome&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;carros&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Como é possivel ver, ambos os casos trazem as mesmas colunas, porém com quantidades diferentes de linhas. Por conter muitas linhas no arquivo, o &lt;em&gt;display&lt;/em&gt; da tabela encurta a quantidade para apenas 10, que é o padrão.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.2. Series
&lt;/h3&gt;

&lt;p&gt;As &lt;code&gt;Series&lt;/code&gt; são sequencias de dados e possuem uma estrutura similar a uma lista no Python. Elas podem ser criadas a partir de uma lista, um dicionário, ou array do Numpy.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;carros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Jetta Variant&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Passat&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Crossfox&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;pd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Series&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;carros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Índice&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Jetta Variant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Passat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Crossfox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;dtype: object&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  4. Querying
&lt;/h2&gt;

&lt;p&gt;Uma das ferramentas poderosas de um &lt;code&gt;DataFrame&lt;/code&gt; é sua habilidade de executar &lt;em&gt;queries&lt;/em&gt; (pesquisas) em cima dos dados. O retorno de uma query pode tanto ser uma cópia do &lt;code&gt;DataFrame&lt;/code&gt; que possui apenas os valores requeridos, ou uma &lt;code&gt;Series&lt;/code&gt; de índice ou booleana.&lt;/p&gt;

&lt;p&gt;As queries podem ser realizadas tanto dentro de colchetes (&lt;code&gt;[]&lt;/code&gt;) após o nome do &lt;code&gt;DataFrame&lt;/code&gt;, quando usando o método &lt;code&gt;query()&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Usando colchetes
&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ColumnName&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;VALOR&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnName&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Valor&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;# Usando query()
&lt;/span&gt;&lt;span class="n"&gt;dataframe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ColumnName == &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Valor&lt;/span&gt;&lt;span class="sh"&gt;"'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A razão de utilizar uma ou outra é meramente sintática, isto pois o &lt;em&gt;query&lt;/em&gt; por colchetes possui uma estrutura não muito convencional no Python e pode ser considerada complicada. Já o &lt;code&gt;query()&lt;/code&gt; utiliza a sintáxe própria do Python para realizar as buscas, então é uma alternativa mais amigável:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsActive&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;startswith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Nicholas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;

&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;IsActive == True and Name.str.startswith(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Nicholas&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;)&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;O Pandas é uma biblioteca muito poderosa e que abrange diversas ferramentas úteis para manipulação de dados. Sua integração direta com o Numpy permite aos cientistas de dados realizarem suas operações muito mais facilmente.&lt;/p&gt;

&lt;p&gt;Como podem ver, estou ainda no começo e pretendo continuar estudando mais sobre essa área para agregar aos meus projetos. Dados são importantes hoje em dia, e é util aprender a manusea-los quando necessário.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>python</category>
      <category>pandas</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
