<?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: Katieli Bianca Dieter</title>
    <description>The latest articles on Forem by Katieli Bianca Dieter (@katidieter).</description>
    <link>https://forem.com/katidieter</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%2F309884%2F23f7dd90-95d4-4680-859c-f6d5db6fd3cb.jpg</url>
      <title>Forem: Katieli Bianca Dieter</title>
      <link>https://forem.com/katidieter</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/katidieter"/>
    <language>en</language>
    <item>
      <title>O que você fez para empoderar uma mulher hoje?</title>
      <dc:creator>Katieli Bianca Dieter</dc:creator>
      <pubDate>Fri, 12 Mar 2021 03:17:30 +0000</pubDate>
      <link>https://forem.com/womakerscode/o-que-voce-fez-para-empoderar-uma-mulher-hoje-43nf</link>
      <guid>https://forem.com/womakerscode/o-que-voce-fez-para-empoderar-uma-mulher-hoje-43nf</guid>
      <description>&lt;p&gt;Pra quem não me conhece, eu sou engenheira de software e trabalho com tecnologia a mais de 9 anos. Atuando em uma área onde apenas 20% das profissionais brasileiras são mulheres eu já passei por diversas situações desconfortáveis e desnecessárias em função das limitações impostas por preconceitos e esteriótipos da sociedade. &lt;/p&gt;

&lt;p&gt;Por muito tempo eu me senti insegura e cheguei a criar crenças limitantes sobre minhas habilidades e o que eu poderia aprender ou não. Essa insegurança impactou muito no desenvolvimento da minha carreira e eu só comecei a colher frutos diferentes quando encontrei um grupo que despertou em mim a habilidade de empoderamento, que foi o &lt;a href="http://railsgirls.com/"&gt;Rails Girls&lt;/a&gt;, em 2017.&lt;/p&gt;

&lt;p&gt;Desde então, eu comecei a me informar sobre o assunto e tive a oportunidade de participar da organização do &lt;a href="https://www.linkedin.com/pulse/lan%C3%A7amento-do-girls-tech-rs-anna-let%C3%ADcia-de-cesero-cor%C3%A1/?originalSubdomain=pt"&gt;Girls in Tech RS&lt;/a&gt;, voltei como mentora no &lt;a href="https://www.instagram.com/railsgirlspoa/"&gt;Rails Girls POA&lt;/a&gt;, em 2019 e hoje sou escritora do blog da &lt;a href="https://womakerscode.org/"&gt;WoMakersCode&lt;/a&gt;, além de atuar como engenheira de software na startup, liderada por mulheres, &lt;a href="https://www.instagram.com/diosamaodeobrafeminina/?hl=pt-br"&gt;Diosa - Mão de Obra feminina&lt;/a&gt;. Durante esse período eu aprendi algumas ferramentas de empoderamento que já me ajudaram muito e espero que ajude você:&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Informe-se
&lt;/h1&gt;

&lt;p&gt;Sobre a tua área de atuação ou que você deseja estudar/trabalhar, sobre as oportunidades na tua comunidade, na tua universidade, na tua região. Sobre os problemas, as dificuldades e as ações que existem para amenizá-los. As vezes tem muita coisa legal acontecendo pertinho da gente e nem sempre essa informação chega em quem precisa. Use as redes sociais ao seu favor. Siga perfis, hashtags ou pessoas do seu interesse.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Faça parte
&lt;/h1&gt;

&lt;p&gt;Na área de tecnologia, existem comunidades de apoio e suporte à mulheres, assim como o Rails Girls, WoMakersCode, &lt;a href="https://djangogirls.org/"&gt;Django Girls&lt;/a&gt;, o &lt;a href="https://pyladies.com/locations/"&gt;PyLadies&lt;/a&gt;, &lt;a href="https://mulheresdeproduto.com/"&gt;Mulheres de produto&lt;/a&gt; e outros tantos. Nessas comunidades, há muita troca de informação sobre cursos, eventos e mentorias gratuitas. Mais que apoio técnico, é fornecido apoio emocional e acolhimento há todas. Geralmente, atuando sem fins lucrativos, elas contam com o patrocínio de empresas parceiras e do serviço voluntário de profissionais da área, então existem várias formas de participar.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Inspire-se
&lt;/h1&gt;

&lt;p&gt;A luta por igualdade de gênero, direitos das mulheres e empreendedorismo feminino é algo de longa data, então existem muitas histórias inspiradoras de diferentes épocas e estilos. Eu particularmente gosto muito de ler sobre a &lt;a href="https://www.unidosparaosdireitoshumanos.com.pt/voices-for-human-rights/eleanor-roosevelt.html"&gt;Eleanor Roosevelt&lt;/a&gt;, &lt;a href="https://thehack.com.br/conheca-ada-lovelace-matematica-do-seculo-xix-autora-do-primeiro-programa-de-computador/"&gt;Ada Lovelace&lt;/a&gt; e acompanhar profissionais como a &lt;a href="https://twitter.com/leleportella"&gt;Letícia Portella&lt;/a&gt; e busco encontrar inspiração em cada mulher que convive comigo.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Compartilhe
&lt;/h1&gt;

&lt;p&gt;Nós nunca temos real noção do quanto a nossa história pode impactar as outras pessoas. As vezes tem alguém se insipirando em você e você não sabe. Então compartilha a tua experiência. Todo mundo tem algo que pode agregar pro outro. Mais do que tua própria história, também é possível compartilhar algo que domine na tua área ou que tu construiu ou constribuiu. Além de te colocar em destaque, muitas pessoas podem estar precisando daquele conteúdo. Nem sempre o compartilhar exige algo extremamente elaborado nas redes, fazer isso em uma roda de conversa ou com as pessoas do teu convívio já pode ter impacto sim.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Incentive
&lt;/h1&gt;

&lt;p&gt;De todas, essa sem dúvida é a ferramenta mais poderosa de todas. Nós, mulheres, culturalmente somos mais inseguras e temos uma tendência a arriscar menos, pois buscamos a perfeição no que fizemos. Então as vezes, tudo que nós precisamos é que alguém nos escute verdadeiramente, acredite na nossa ideia e diga o quanto acredita que aquilo é possível.&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Observe-se
&lt;/h1&gt;

&lt;p&gt;Antes de julgar o outro, sempre é importante olhar pra si. O que eu tenho feito pra mim mesma pra enfrentar as dificuldades? Será que o que eu disse não foi machista? Não ofendeu alguém? O que eu tenho feito pra ajudar no crescimento das mulheres ao redor de mim? E isso vale pra todos os gêneros. As vezes, nós repetimos comportamentos que não são nossos. São preconceitos e esteriótipos que estão enraizados na nossa família e meio de convívio a muito tempo. Observe-se, question-se.&lt;/p&gt;

&lt;h1&gt;
  
  
  Pra fechar!!
&lt;/h1&gt;

&lt;p&gt;Espero que essas dicas te ajudem a se empoderar e empoderar as mulheres próximas a ti e pra fechar, deixo o seguinte questionamento: "O que tu fez pra empoderar uma mulher hoje?"&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>career</category>
      <category>community</category>
      <category>programming</category>
    </item>
    <item>
      <title>Tipos de sistemas de aprendizado de máquina</title>
      <dc:creator>Katieli Bianca Dieter</dc:creator>
      <pubDate>Wed, 26 Feb 2020 13:16:47 +0000</pubDate>
      <link>https://forem.com/womakerscode/tipos-de-sistemas-de-aprendizado-de-maquina-1o68</link>
      <guid>https://forem.com/womakerscode/tipos-de-sistemas-de-aprendizado-de-maquina-1o68</guid>
      <description>&lt;p&gt;Quando fala-se de machine learning (aprendizado de máquina), a maioria das pessoas pensa em um mordomo confiável ou um Exterminador do Futuro. Apesar desta idealização futurista, o aprendizado de máquina já é uma realidade há décadas. Sim, décadas. A primeira aplicação de sucesso foi o filtro de spam em 1990. &lt;br&gt;
Utilizando o Reconhecimento Ótico de Caracteres (OCR), uma máquina aprendeu a classificar quais e-mails eram ou não spam. Funcionou tão bem que hoje dificilmente precisamos marcar algum como tal.&lt;br&gt;
Trinta anos depois os estudos e aplicações nessa área cresceram significativamente e tendem a continuar crescendo nos próximos anos, por isso é importante estar atenta a esta área da computação que ganha a cada dia mais espaço nos grupos de pesquisa e no mercado de trabalho. &lt;/p&gt;

&lt;h2&gt;
  
  
  Mas afinal, o que é Machine learning?
&lt;/h2&gt;

&lt;p&gt;Acredita-se que há uma linha tênue entre ciência e arte da programação de computadores que permite que eles, os computadores, possam aprender com os dados que recebem, ou seja, é dar a eles a habilidade de aprender sem ser explicitamente programado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quando utilizar aprendizado de máquina?
&lt;/h2&gt;

&lt;p&gt;Atualmente, existe uma lista gigantesca de aplicações do machine learning, então além de procurar por exemplos já existentes, avalie se o problema que você precisa resolver encaixa-se em algum destes casos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Problemas que possuem soluções que exigem muita configuração manual ou que possuam muitas regras;&lt;/li&gt;
&lt;li&gt;Problemas complexos sem solução simples na abordagem tradicional;&lt;/li&gt;
&lt;li&gt;Contextos com muitas mudanças;&lt;/li&gt;
&lt;li&gt;Compreensão de problemas complexos e com grandes quantidades de dados.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tipos de sistema de aprendizagem da máquina
&lt;/h2&gt;

&lt;p&gt;Existem tantos tipos de sistema de aprendizado que é necessário classificá-los pelo tipo de supervisão, se permitem aprendizado incremental e pela forma de generalização. Esses critérios não são exclusivos, ou seja, pode-se utilizar de mais de um sistema simultaneamente.&lt;/p&gt;

&lt;h3&gt;
  
  
  1) Tipo de supervisão
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Supervisionado
&lt;/h4&gt;

&lt;p&gt;Através de um conjunto de dados que contém as soluções desejadas é realizada a classificação da tarefa. No filtro de spam, por exemplo, o sistema é treinado com muitos exemplos de e-mails com ou sem spam.&lt;/p&gt;

&lt;p&gt;Os algoritmos mais importantes do aprendizado supervisionado são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;K-Nearest neighbors;&lt;/li&gt;
&lt;li&gt;Regressão linear;&lt;/li&gt;
&lt;li&gt;Regressão logística;&lt;/li&gt;
&lt;li&gt;Máquinas de vetores de suporte (SVM)&lt;/li&gt;
&lt;li&gt;Árvores de decisão;&lt;/li&gt;
&lt;li&gt;Florestas aleatórias;&lt;/li&gt;
&lt;li&gt;Redes neurais.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Não-supervisionado
&lt;/h4&gt;

&lt;p&gt;Como o próprio nome já sugere, no aprendizado não-supervisionado não são passados rótulos para o sistema e o mesmo tenta aprender com base nos dados que são apresentados.&lt;br&gt;
Os algoritmos classificam os dados com base em características semelhantes e criam grupos, às vezes subgrupos em busca de relações entre eles.&lt;/p&gt;

&lt;p&gt;Os algoritmos mais importantes do aprendizado não-supervisionado são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clustering

&lt;ul&gt;
&lt;li&gt;k-Means&lt;/li&gt;
&lt;li&gt;Clustering Hierárquico (HCA)&lt;/li&gt;
&lt;li&gt;Maximização a Expectativa&lt;/li&gt;
&lt;li&gt;Visualização e redução da dimensionalidade&lt;/li&gt;
&lt;li&gt;Análise de Componentes Principais (PCA)&lt;/li&gt;
&lt;li&gt;Kernel PCA&lt;/li&gt;
&lt;li&gt;Locally-Linear Embedding(LLE)&lt;/li&gt;
&lt;li&gt;t-distributed Stochastic Neighbor Embedding(t-SNE)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Aprendizado da regra da associação

&lt;ul&gt;
&lt;li&gt;Apriori&lt;/li&gt;
&lt;li&gt;Eclat&lt;/li&gt;
&lt;/ul&gt;


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

&lt;h4&gt;
  
  
  Semi-supervisionado
&lt;/h4&gt;

&lt;p&gt;Alguns algoritmos são capazes de lidar com dados de treinamento parcialmente rotulados, sem rótulos e alguns dados rotulados. Um ótimo exemplo é o Google fotos, pois em um conjunto de imagens ele é capaz de reconhecer que nas fotos 1, 4 e 8 aparece a mesma pessoa, enquanto que na 2, 4 e 7 outra (agrupamento não supervisionado). A partir do momento que você identificar a primeira pessoa em uma foto, ele será capaz de reconhecê-la em todas as outras.&lt;/p&gt;

&lt;p&gt;Os algoritmos utilizados neste tipo de aprendizado, normalmente são uma mistura de supervisionados e não-supervisionados, assim como as Redes neurais de crenças profundas, que se baseiam em componentes não supervisionados - máquinas restritas de Boltzmann - empilhadas e posteriormente são treinadas sequencialmente de forma não supervisionada.&lt;/p&gt;

&lt;h4&gt;
  
  
  Por reforço
&lt;/h4&gt;

&lt;p&gt;O aprendizado por reforço é o mais diferente de todos e baseia-se em uma política de obter a maior quantidade possível de recompensas, sendo assim, conforme as ações que o agente realiza ele recebe recompensas para o que é positivo e penalidades para o que for negativo. Normalmente robôs utilizam deste algoritmo para aprender a andar.&lt;/p&gt;

&lt;h3&gt;
  
  
  2) Incremental/não incremental
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Aprendizado em lote
&lt;/h4&gt;

&lt;p&gt;Este tipo de sistema é incapaz de aprender de forma incremental porque é treinado com todos os dados disponíveis. Isso normalmente demanda muito tempo e recursos computacionais, então, normalmente é feito offline e em seguida liberado para uso.&lt;/p&gt;

&lt;h4&gt;
  
  
  Aprendizado online
&lt;/h4&gt;

&lt;p&gt;Este tipo de sistema permite o aprendizado incremental, pois ele é alimentado com pequenas instâncias ou pequeno grupos, também conhecidos como minilotes. Assim que cada uma dessas instâncias é interpretada ela pode ser descartada, o que é ideal para quem tem poucos recursos computacionais. Esse critério normalmente é utilizado para sistemas que necessitam adaptar-se rapidamente às mudanças de dados.&lt;/p&gt;

&lt;h3&gt;
  
  
  3) Generalização
&lt;/h3&gt;

&lt;p&gt;Grande parte dos sistemas de aprendizado fazem previsões, sendo assim, a partir de um conjunto de exemplos de treinamento, o sistema precisa ser capaz de generalizar em exemplos que ele não viu anteriormente. Para tal, há duas formas de fazê-lo, por instância ou por modelo.&lt;/p&gt;

&lt;h4&gt;
  
  
  Aprendizado baseado em instância
&lt;/h4&gt;

&lt;p&gt;No aprendizado baseado em instância o sistema aprende por meio de memorização e depois generaliza para novos casos utilizando uma medida que indique a qual item eles são semelhantes. Simplificando muito o exemplo, na classificação do e-mail spam, a classificação poderia ser feita através da quantidade de palavras em comum no novo e-mail e no que é spam.&lt;/p&gt;

&lt;h4&gt;
  
  
  Aprendizado baseado em modelo
&lt;/h4&gt;

&lt;p&gt;Neste tipo de sistema, a generalização é feita através de um modelo criado baseado em um conjunto de exemplos. Imagine que dados de fontes diferentes são relacionados e identifica-se uma tendência a partir disso.  Essa tendência permite que um modelo seja criado e facilite a generalização. Por exemplo, relacionar a renda per capita dos países com a satisfação de vida por país. Existindo uma relação entre estes dados, cria-se o modelo e é possível prever a satisfação de vida a partir da renda per capita do país.&lt;/p&gt;

&lt;p&gt;Enfim, chegamos ao final desta publicação que apresentou alguns conceitos iniciais sobre machine learning. Espero que essas informações tenham te ajudado e que te inspirem a estudar mais sobre esta área da computação de computadores.&lt;/p&gt;

&lt;p&gt;Qualquer dúvida, comentário ou complemento let me know.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Four simple rules to design clean projects</title>
      <dc:creator>Katieli Bianca Dieter</dc:creator>
      <pubDate>Mon, 06 Jan 2020 13:25:27 +0000</pubDate>
      <link>https://forem.com/katidieter/four-simple-rules-to-design-clean-projects-4e29</link>
      <guid>https://forem.com/katidieter/four-simple-rules-to-design-clean-projects-4e29</guid>
      <description>&lt;p&gt;Become a professional software developer needs a lot of study and effort so if you want growth you need to improve the quality of your code, the maintainability, readability and decrease rework of your projects. I suggest you learn more about clean code.&lt;br&gt;
In the Clean Code book, we can find a lot of hints and good practices about making a better code, besides each language or framework have its own rules and a long list of things to study. To help you start your journey, I summarise four rules — that I got from the book — to design projects.&lt;/p&gt;

&lt;p&gt;Runs all the tests&lt;/p&gt;

&lt;p&gt;Have a comprehensive number of tests developed and passing seems obvious, because everyone is expecting the system is working at the first place, but to write unit tests the code must follow the well-known high-quality design principles such as simplicity, single responsibility, low cohesion and more.&lt;br&gt;
Remarkably, following a simple and obvious rule that says we need to have tests and run them continuously impacts our system’s adherence to the primary OO goals of low coupling and high cohesion. Writing tests leads to better designs.&lt;br&gt;
A system that cannot be testing probably shouldn’t be developed. Think about it.&lt;/p&gt;

&lt;p&gt;Contains no duplications&lt;/p&gt;

&lt;p&gt;Duplications can have many forms, lines of code that are the same or similar or different methods to do the same job and when your project has duplicated code also you have duplicated work, duplicated risk and unnecessary complexity. The secrets to avoid duplications are refactoring, refactoring, refactoring and follow the SRP.&lt;br&gt;
Expresses the intent of the programmers&lt;br&gt;
Writing code that expresses the intent of the programmer that another person can easily understand is important for many reasons, especially for projects with long life terms that need maintenance.&lt;br&gt;
As much clearer is the author, as less time others will have to spend to understanding it. Here are some hints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose good names: we need to hear a class or function name and not be surprised when discover it's responsibilities.&lt;/li&gt;
&lt;li&gt;Keep classes and functions small: small classes and methods are usually easy to name, write and understand.&lt;/li&gt;
&lt;li&gt;Using standard nomenclature: using Design patterns, for example.&lt;/li&gt;
&lt;li&gt;Keep testing as documentation by example: when another person reads the tests should be able to get an understanding of what is all about.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Minimizes the number of classes and methods&lt;/p&gt;

&lt;p&gt;It may sound controversial but is not. In an effort to make our classes and methods small, we might create too many tiny classes and methods. The least rule suggests we keep these numbers counts low.&lt;br&gt;
It’s import to say that the 4 rules are ordered by priority and the last one only applies if it satisfies the previous ones.&lt;br&gt;
The fourth rule doesn't suggest we should have only a few classes and methods but if there are too many pieces we won't be able to see the whole picture and understand the application context. Besides that, this rule means we should remove all code we don't need and decrease unnecessary complexity and maintenance.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;The content shared in this post is just the base what every developer needs to know to design project, but I hope it had helped and inspired you to learn more about Clean Code — I thoroughly recommend the full reading of the book.&lt;/p&gt;

&lt;p&gt;Keep coding and thanks for reading ;)&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
    </item>
  </channel>
</rss>
