<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Tecnologia - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Tecnologia - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Wed, 06 May 2026 14:33:13 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/tecnologia/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Consegui uma vaga como programador no Facebook – saiba como me preparei para as entrevistas ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Andyy Hope Fiz sete entrevistas presenciais em empresas de tecnologia do Vale do Silício. Por fim, aceitei uma oferta de emprego em engenharia de software no Facebook. Confira a seguir como me preparei para essas entrevistas e o que aprendi ao longo do caminho. Minha jornada de anos ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/consegui-uma-vaga-como-programador-no-facebook-saiba-como-me-preparei-para-as-entrevistas/</link>
                <guid isPermaLink="false">665398d7aeb89e03d1651802</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ André Garcia ]]>
                </dc:creator>
                <pubDate>Tue, 02 Jul 2024 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2024/06/1_vAAv5_xFEiOtw9M2FPLmdg.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/software-engineering-interviews-744380f4f2af/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">I just got a developer job at Facebook. Here’s how I prepped for my interviews.</a>
      </p><p>Escrito por: Andyy Hope</p><p>Fiz sete entrevistas presenciais em empresas de tecnologia do Vale do Silício. Por fim, aceitei uma oferta de emprego em engenharia de software no Facebook.</p><p>Confira a seguir como me preparei para essas entrevistas e o que aprendi ao longo do caminho.</p><h3 id="minha-jornada-de-anos-rumo-ao-vale-do-sil-cio"><strong>Minha jornada de anos rumo ao Vale do Silício</strong></h3><p>Quando eu fazia faculdade de Ciência da Computação na Austrália, sempre vislumbrava meu futuro como engenheiro de software no Vale do Silício.</p><p>Eu adorava a ideia de estar no centro das inovações tecnológicas, bem como de seus tropeços. Esse objetivo me manteve focado e motivado.</p><p>Larguei meu cargo de engenheiro líder de iOS em uma empresa incrível em Melbourne e voltei para minha cidade natal, Perth, para estudar. Lá, eu me preparei para o processo de entrevistas que me aguardava no Vale do Silício. Eu sabia que seria muito difícil.</p><p>Se você falar sobre o processo de entrevista técnica com engenheiros de software reunidos em uma sala, muitos serão contrários a suas práticas comuns. O maior argumento é que a resolução de algoritmos em um quadro branco não representa as tarefas diárias de um engenheiro de software.</p><p>Neste artigo, não vou entrar nesse mérito. Em vez disso, vou explorar essas diferentes práticas de entrevista da perspectiva do candidato, além de focar no que aprendi ao longo do processo.</p><h3 id="fazer-entrevistas-uma-habilidade"><strong>Fazer entrevistas é uma habilidade</strong></h3><p>Durante minha preparação, eu já sabia que a entrevista seria um desafio, mas, sinceramente, não fazia ideia do nível de dificuldade até fazer a primeira.</p><p>Antes disso, usei serviços pagos e gratuitos que simulavam entrevistas de programação e <em>whiteboarding</em> (onde você faz os testes de programação com o auxílio de um quadro branco – em inglês, <em>white board</em>) por telefone com pessoas experientes em seleção. Aquelas provas práticas foram essenciais para eu me preparar para a pressão. Percebi mais tarde, no entanto, que elas representavam apenas uma fração do que era a realidade.</p><p>Não aconselho fazer entrevista para seu emprego dos sonhos sem já ter feito algumas antes — simuladas ou reais. O nervosismo pode ser avassalador e só pode ser dominado com a prática.</p><p>Assim como em muitas outras situações na vida, a prática eleva a confiança.</p><h3 id="os-diferentes-tipos-de-entrevista-que-encontrei"><strong>Os diferentes tipos de entrevista que encontrei</strong></h3><p>Se você se preparar e se sair bem nas entrevistas preliminares por telefone, vai ter a oportunidade de comparecer presencialmente para passar o dia fazendo entrevistas. Em geral, elas duram de quatro a seis horas, dependendo da empresa.</p><p>Em minha jornada até o Vale do Silício, consegui fazer sete entrevistas presenciais no total, o que me deu uma perspectiva única do panorama atual.</p><p>Normalmente, uma entrevista presencial tem três temas principais: algoritmos, design de arquitetura e comportamental (algo que estudei ao me preparar). Porém, algumas empresas parecem contrariar essa tendência ao abranger competências mais práticas.</p><p>Vou resumir cada um dos tipos que encontrei.</p><h4 id="entrevista-sobre-algoritmos"><strong>Entrevista sobre algoritmos</strong></h4><p>É o tipo mais comum. O entrevistador pede para que você resolva um problema em um quadro branco e avalia seus conhecimentos sobre estruturas de dados, algoritmos de ordenação, recursão e análise da complexidade de tempo/espaço, bem como reconhecimento de padrões e de casos extremos. O mais frequente é, primeiro, apresentar uma solução de força bruta e, em seguida, tentar refinar essa solução e discutir as eventuais vantagens de suas sugestões.</p><p>Durante seis semanas, todos os dias, o feijão-com-arroz da minha preparação foi resolver algoritmos em um quadro branco barato, analisar a sua complexidade temporal/espacial e tentar realmente compreender o que fazia cada linha de código.</p><p>Pessoalmente, eu adoro fazer algoritmos no quadro branco porque (em geral) não sou obrigado a me preocupar com uma sintaxe compilável, o que me permite focar só no problema em questão. Tem gente que não curte fazer algoritmo na lousa. A essas pessoas, eu diria: pratiquem consistentemente e talvez acabarão mudando de ideia.</p><h4 id="entrevista-de-design-de-arquitetura"><strong>Entrevista de design de arquitetura</strong></h4><p>É uma entrevista interessante e que subestimei demais. O entrevistador pede para desenhar (em um quadro branco, é claro) algo como um sistema de estacionamento, um chat ou um feed como o do Twitter.</p><p>O que é avaliado é como se pega um conceito geral para conceber um sistema que satisfaça todos os requisitos e restrições. Cabe ao candidato, no entanto, fazer as perguntas certas para definir os requisitos e as restrições. Essa entrevista está mais para um bate-papo com diagramas sendo desenhados e talvez até estruturação de classes. Tudo é feito em alto nível. Então, você não escreve um código realmente implementável.</p><p>Naturalmente, você deve conduzir a conversa de modo a cobrir seu conhecimento sobre como os sistemas funcionam. Se você for um engenheiro de <em>back-end</em>, não entrará em detalhes sobre a aplicação no <em>client</em> (a menos que tenha algum conhecimento prévio nessa área). Como sou engenheiro de iOS, falei sobre padrões de arquitetura, modularização de funcionalidade e padrões de design em vez de como dimensionar as extremidades da API, adicionar <em>workers</em>, AWS e essas coisas.</p><h4 id="entrevista-comportamental"><strong>Entrevista comportamental</strong></h4><p>O entrevistador faz perguntas sobre você e sobre como lida com determinadas situações. A preparação para essa entrevista não é tão difícil quanto as outras, mas requer muita reflexão da sua parte.</p><p>As perguntas geralmente seguem essa linha:<br><em>・Como você lida com o fracasso?<br>・Qual é seu maior ponto fraco?<br>・Como você resolve um conflito?<br>・O que você teria feito de diferente?</em></p><p>Creio que seria muito difícil fazer besteira nessa parte, mas ouvi que muita gente faz. Muitos tentam disfarçar os seus defeitos como se fossem qualidades e elaboram a sua resposta conforme o que acham que o entrevistador gostaria de ouvir. Isso quando não transferem a culpa de projetos que não deram certo para outras pessoas:<br><em>・"Meu ponto fraco é que sou focado demais"<br>・"A culpa foi de Jerry, que passou a maior parte do projeto doente"</em></p><p>Entrevistadores são treinados e especializados para identificar gente problemática, sem contar que eles têm um faro apurado para conversa fiada. Então, essa etapa pode fazer sua candidatura ir por água abaixo. Basta ser sincero, mostrar paixão pelo que faz, assumir suas falhas e mostrar interesse em melhorar que tudo vai dar certo.</p><h4 id="adequa-o-cultural"><strong>Adequação cultural</strong></h4><p>Normalmente, essa entrevista é feita junto com a comportamental, e visa determinar se você está de acordo com os valores da empresa. Por exemplo, o Facebook segue a cultura <em>hacker </em>de ser ousado e lançar novas ideias, experimentar e não ter medo de quebrar algo. Já a Airbnb quer criar um mundo onde as pessoas se sintam acolhidas em todo lugar. Por isso, buscam por gente mais hospitaleira.</p><p>Muitas <em>big techs</em> dão ênfase na cultura e contratam com base no alinhamento do candidato com os seus valores. Se você fizer entrevista em uma dessas empresas, é importante pesquisar antes os valores dela para encontrar experiências prévias suas que tenham a ver com ela para informar a seu entrevistador.</p><h4 id="programa-o-em-dupla"><strong>Programação em dupla</strong></h4><p>É uma categoria interessante, em que o candidato é colocado com outro engenheiro em frente a um computador com um ambiente de desenvolvimento semelhante ao que utilizaria no mundo real. Você recebe uma tarefa básica e uma lista de requisitos que deve completar. Conforme você termina cada tarefa, o entrevistador pede que você implemente mais funcionalidades, até o tempo acabar. É liberado usar o recurso que você quiser, como o Stack Overflow ou a documentação <em>on-line</em>.</p><p>Creio que muito do sucesso de um candidato nessa entrevista será determinado pela exposição dele a experiências práticas no mundo real. Ao contrário do que acontece no quadro branco, é necessário escrever código sintaticamente correto. Portanto, você deve dominar a sua linguagem e o seu ambiente para não perder muito tempo buscando resposta na internet ou na documentação.</p><p>Em meu trabalho anterior, eu escrevia código limpo enquanto trabalhava em uma tarefa, depois otimizava o código quando sentia que já estava pronto. Essa maneira de trabalhar não deu certo nesse tipo de entrevista. Acabei me encurralando por ter escrito um código limpo e o otimizado antes da hora, o que dificultou seu manuseio. Descobri que bastava ter feito um esboço de código e mencionado o que faria de diferente durante a produção, em vez de escrever o código de maneira limpa e otimizada.</p><h4 id="busca-e-corre-o-de-bugs"><strong>Busca e correção de bugs</strong></h4><p>Muito do que fazemos como engenheiro de software gira em torno de encontrar e corrigir erros que nos são reportados por várias fontes. Nesse tipo de entrevista, você recebe uma lista de bugs para encontrar e corrigir, bem como identificar qualquer outro código potencialmente problemático ao longo do caminho.</p><p>Só me deparei com um caso desse tipo de entrevista. Creio que deve ser bem difícil para alguém se preparar para ela, especialmente se for para uma vaga de júnior. Cada ambiente de programação tem as suas próprias particularidades e nuances. Muito do trabalho de correção que fiz veio de experiências prévias com IDE (ambiente de desenvolvimento integrado) e <em>frameworks</em> que acumulei ao longo dos anos.</p><h4 id="teste-de-dom-nio-do-conhecimento"><strong>Teste de domínio do conhecimento</strong></h4><p>Programação é basicamente a mesma coisa na maioria das linguagens que temos atualmente. Se você sabe programação orientada a objetos em uma linguagem, é provável que esse conhecimento também valha para as outras.</p><p>No entanto, essa entrevista foca no conhecimento que não pode ser transferido entre linguagens ou <em>frameworks</em>. As perguntas são sobre especificidades do ambiente relacionadas a API, gestão de memória, capacidade, restrições etc.</p><p>Praticar pode ser um desafio aqui. Assim como na entrevista de localização e correção de erros, creio que muitas das respostas resultam de experiências prévias. Dependendo do nível do cargo que você se candidatar, suas respostas podem ter um peso diferente. Por exemplo, se um candidato a uma função júnior não sabe por que uma API é estruturada de certa maneira, dá para relevar. Se, contudo, um candidato a um cargo sênior não souber, aí a avaliação pode ser mais rigorosa.</p><h4 id="compreens-o-de-sistemas-operacionais"><strong>Compreensão de sistemas operacionais</strong></h4><p>Dependendo da função ou da equipe para a qual você esteja sendo entrevistado, é possível que as perguntas se concentrem exclusivamente em sistemas operacionais. Nesse tipo de entrevista, o que será avaliado é sua compreensão do funcionamento interno do sistema operacional de um computador.</p><p>Confesso que, nessa, fui pego desprevenido. Até aprendi sistemas operacionais nos primeiros anos de faculdade, mas meu conhecimento sobre o assunto foi se perdendo com o passar do tempo, o que refletiu em meu desempenho.</p><h3 id="como-voc-deve-se-preparar"><strong>Como você deve se preparar</strong></h3><p>Como escrevi anteriormente, fazer entrevista é uma habilidade por si só. Mesmo que você já seja um excelente programador em seu trabalho diário ou tire ótimas notas em suas provas, essas habilidades não necessariamente vão servir quando você estiver em uma salinha de entrevista. A persistência, a repetição e a consistência tanto na preparação quanto na prática da entrevista determinarão seu resultado.</p><h4 id="conhecimento-m-nimo">Conhecimento mínimo</h4><p>Se alguém me perguntasse em que área focar, eu sugeriria o seguinte:</p><p></p><ul><li><strong>Aprenda a escrever o código à mão</strong> primeiro: em papel e no quadro branco, só depois jogue o código em uma IDE para realçar a sintaxe. Isso deve se tornar um hábito para você.</li><li><strong>Desenvolva um conhecimento profundo das estruturas de dados</strong>: os pontos fortes e fracos de uma em relação às outras. Descobri que implementar estruturas de dados e seus comportamentos do zero me ensinou muito mais do que aprendi com seus conceitos abstratos.</li><li><strong>Entenda totalmente a notação Big O</strong>: tanto a complexidade de tempo quanto a de espaço, o que vai ser importante em perguntas sobre algoritmos e organização de dados.</li><li><strong>Entenda todos os principais algoritmos de ordenação</strong>: diferenças nas complexidades de tempo/espaço podem atrapalhar sua solução ideal para o problema que busca resolver.</li></ul><h4 id="quando-come-ar"><strong>Quando começar?</strong></h4><p>Dependendo do seu cronograma, pode ser que você prefira começar mais cedo ou mais tarde. Muitas das empresas onde fiz entrevistas tinham um período de espera de 12 meses antes que um candidato reprovado pudesse tentar novamente. No entanto, se você já sabe que não vai estar pronto em um ano, é melhor fazer o processo logo agora e ter uma amostra de como ele é para que, quando estiver pronto, ele não seja tão assustador.</p><h4 id="n-o-se-preocupe-voc-vai-conseguir-"><strong>Não se preocupe! </strong>Você vai conseguir.</h4><p></p><h3 id="recursos-em-ingl-s-">Recursos (em inglês)</h3><h4 id="entrevistas-simuladas"><strong>Entrevistas simuladas</strong></h4><ul><li><a href="https://interviewing.io/" rel="noopener">interviewing.io</a> (beta), gratuito</li><li><a href="https://www.pramp.com/#/" rel="noopener">Pramp</a>, gratuito</li><li><a href="https://careercup.com/interview" rel="noopener">CareerCup</a>, pago</li></ul><h4 id="algoritmos"><strong><strong>Algoritm</strong>o<strong>s</strong></strong></h4><ul><li><a href="https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1506042558&amp;sr=1-1&amp;keywords=cracking+the+code+interview" rel="noopener">Cracking the Code Interview</a>, livro</li><li><a href="http://www.byte-by-byte.com/" rel="noopener">byte by byte</a>, site e YouTube</li><li><a href="https://www.youtube.com/user/cs50tv" rel="noopener">CS50</a>, YouTube</li><li><a href="https://www.interviewcake.com/" rel="noopener">Interview Cake</a>, site</li><li><a href="https://www.hackerrank.com/" rel="noopener">HackerRank</a>, site</li><li><a href="https://leetcode.com/" rel="noopener">LeetCode</a>, site</li></ul><h4 id="sistemas-operacionais"><strong>Sistemas operacionais</strong></h4><ul><li><a href="https://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1506042402&amp;sr=1-1&amp;keywords=Operating+System+Concepts" rel="noopener">Operating System Concepts</a>, livro</li></ul><h4 id="design-de-arquitetura"><strong><strong>D</strong>esign de arquitetura</strong></h4><ul><li><a href="https://www.youtube.com/watch?v=ZgdS0EUmn70" rel="noopener">Intro to Architecture and Systems</a>, YouTube</li></ul><h4 id="comportamental"><strong>Comportamental</strong></h4><ul><li><a href="https://www.youtube.com/watch?v=PJKYqLP6MRE" rel="noopener">Intro to Behavioural Interviews</a>, YouTube</li></ul><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2024/06/95r0mH93-K8IGlgN9pNRPj5YekDfvdLiRkhb.png" class="kg-image" alt="95r0mH93-K8IGlgN9pNRPj5YekDfvdLiRkhb" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2024/06/95r0mH93-K8IGlgN9pNRPj5YekDfvdLiRkhb.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2024/06/95r0mH93-K8IGlgN9pNRPj5YekDfvdLiRkhb.png 800w" sizes="(min-width: 720px) 720px" width="800" height="392" loading="lazy"></figure><p><em>Se você gostou do que leu, dê uma olhada </em><a href="https://medium.com/@AndyyHope"><em>em meus outros </em></a><a href="https://medium.com/@AndyyHope" rel="noopener"><em><em>arti</em>g</em></a><em>os</em><em><em> </em>sobre<em> </em>desenvolvimento em <em>iOS </em>e<em> Swift</em>. Se quiser entrar em contato, me mande um tweet ou me siga no <a href="http://www.twitter.com/andyyhope">Twitter</a>,</em><strong><em> </em></strong><em>o que vai valer meu dia<em>.</em></em></p><p><a href="https://twitter.com/AndyyHope" rel="noopener"><strong><strong>Andyy Hope (@AndyyHope) | Twitter</strong></strong></a><br>Engenheiro <em><em>iOS. Blogger/</em>Palestrante<em> </em>de<em> Swift &amp; iOS</em></em></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ MBR x GPT: qual a diferença entre uma partição MBR e uma partição GPT? [Resolvido] ]]>
                </title>
                <description>
                    <![CDATA[ Se você está montando um PC, podem ter perguntado a você como desejava instalar seu sistema operacional – MBR ou GPT? As diferenças entre uma partição MBR e GPT são bastante diretas. Porém, há muitas informações básicas que o ajudarão a ter uma ideia mais clara sobre cada tipo de ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/mbr-x-gpt-qual-a-diferenca-entre-uma-particao-mbr-e-uma-particao-gpt-resolvido/</link>
                <guid isPermaLink="false">63f6213dc24870050d79dbff</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Rafael Fontenelle ]]>
                </dc:creator>
                <pubDate>Wed, 07 Jun 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/5f9c9842740569d1a4ca190c.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/mbr-vs-gpt-whats-the-difference-between-an-mbr-partition-and-a-gpt-partition-solved/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">MBR vs GPT: What's the Difference Between an MBR Partition and a GPT Partition? [Solved]</a>
      </p><p>Se você está montando um PC, podem ter perguntado a você como desejava instalar seu sistema operacional – MBR ou GPT?</p><p>As diferenças entre uma partição MBR e GPT são bastante diretas. Porém, há muitas informações básicas que o ajudarão a ter uma ideia mais clara sobre cada tipo de tabela de partição e quando você deve escolher uma em detrimento da outra.</p><p>Neste artigo, abordaremos o que é uma partição, a diferença entre uma partição MBR e GPT, se você deve atualizar de um tipo de partição para outro e muito mais.</p><h2 id="o-que-uma-parti-o"><strong>O que é uma partição?</strong></h2><p>Uma partição é uma divisão virtual de uma unidade de disco rígido (em inglês, <em>hard disk drive</em> ou HDD) ou unidade de estado sólido (em inglês, <em>solid state drive</em> ou SSD). Cada partição pode variar em tamanho e, normalmente, cumpre uma função diferente.</p><p>Por exemplo, no Windows geralmente há uma pequena partição de recuperação e uma grande partição de sistema de arquivos denominada <code>C:</code>. A partição <code>C:</code> é o que a maioria das pessoas conhece, pois é onde você geralmente instala seus programas e armazena seus vários arquivos.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/disk-management.png" class="kg-image" alt="disk-management" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/disk-management.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/disk-management.png 805w" width="805" height="597" loading="lazy"><figcaption>Gerenciador de discos do Windows - <a href="https://docs.microsoft.com/en-us/windows-server/storage/disk-management/overview-of-disk-management">Fonte</a></figcaption></figure><p>No Linux, normalmente há uma partição raiz (<code>/</code>), uma para swap – que ajuda no gerenciamento de memória – e uma grande partição <code>/home</code>. A partição <code>/home</code> é semelhante à partição <code>C:</code> no Windows, pois é onde você instala a maioria dos seus programas e armazena arquivos.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/yCyXA.png" class="kg-image" alt="yCyXA" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/yCyXA.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/yCyXA.png 781w" width="781" height="537" loading="lazy"><figcaption>GParted no Linux – <a href="https://bbs.archlinux.org/viewtopic.php?id=155698">Fonte</a></figcaption></figure><p>Se você comprou seu computador em uma loja e o sistema operacional já está instalado, o fabricante já cuidou das partições. Você não precisa se preocupar com elas, a menos que queira fazer algo como <em>dual-boot</em> de Windows e Linux a partir do mesmo HDD ou SDD.</p><p>Mesmo que você mesmo esteja instalando o sistema operacional, na maioria das vezes, o instalador vai sugerir partições e tamanhos de partição padrão.</p><p>Novamente, você geralmente não precisa fazer nenhum ajuste.</p><p>Agora que você tem uma visão geral de alto nível do que é uma partição, podemos nos aprofundar nas diferenças entre as partições MBR e GPT.</p><p>Observação: usarei o termo "unidade" para me referir a HDDs e SSDs de agora em diante.</p><h2 id="uma-vis-o-geral-de-parti-es-mbr-e-gpt"><strong>Uma visão geral de partições MBR e GPT </strong></h2><p>Antes que uma unidade possa ser dividida em partições individuais, ela precisa ser configurada para usar um esquema ou tabela de partição específica.</p><p>Uma tabela de partições informa ao sistema operacional como as partições e os dados na unidade são organizados. Por exemplo, as capturas de tela acima mostram as tabelas de partição na unidade e cada partição individual é mostrada como um bloco retangular.</p><p>Existem dois tipos principais de tabelas de partição: MBR e GPT.</p><p>MBR significa <em>Master Boot Record</em> (em português, registro mestre de inicialização) e é um pouco de espaço reservado no início da unidade que contém as informações sobre como as partições são organizadas. O MBR também contém o código para iniciar o sistema operacional e, às vezes, é chamado de <em>Boot Loader</em> (em português, carregador de inicialização).</p><p>GPT é uma abreviação de <em>GUID Partition Table</em> (em português, tabela de partição GUID) e é um padrão mais recente que está substituindo lentamente o MBR.</p><p>Ao contrário de uma tabela de partição MBR, o GPT armazena os dados sobre como todas as partições são organizadas e como inicializar o sistema operacional em toda a unidade. Desse modo, se uma partição for apagada ou corrompida, ainda será possível inicializar e recuperar alguns dos dados.</p><p>Se você comprou seu computador nos últimos cinco anos, é muito provável que ele esteja usando tabelas de partição GPT em vez das tabelas MBR mais antigas.</p><h2 id="diferen-as-entre-as-parti-es-mbr-e-gpt"><strong>Diferenças entre as partições MBR e GPT </strong></h2><p>Existem várias diferenças entre as partições MBR e GPT, mas abordaremos algumas das principais aqui.</p><p>Primeiro, a capacidade máxima das tabelas de partição MBR é de apenas 2 terabytes. Você pode usar uma unidade com mais de 2 terabytes com MBR, mas apenas os primeiros 2 terabytes da unidade serão usados. O restante do armazenamento na unidade será desperdiçado.</p><p>Por outro lado, as tabelas de partição GPT oferecem uma capacidade máxima de 9,7 zetabytes. 1 zetabyte é cerca de 1 bilhão de terabytes. Então, é improvável que você fique sem espaço tão cedo.</p><p>Em seguida, as tabelas de partição MBR podem ter no máximo 4 partições separadas. No entanto, uma dessas partições pode ser configurada para ser uma partição estendida, que é uma partição que pode ser dividida em 23 partições adicionais. Portanto, o número máximo absoluto de partições que uma tabela de partições MBR pode ter é de 26 partições.</p><p>As tabelas de partição GPT permitem até 128 partições separadas, o que é mais do que suficiente para a maioria das aplicações do mundo real.</p><p>Como o MBR é mais antigo, geralmente vem junto com sistemas BIOS legados mais antigos, enquanto o GPT é encontrado em sistemas UEFI mais recentes. Isso significa que as partições MBR têm melhor compatibilidade de software e hardware, embora o GPT esteja começando a alcançá-lo.</p><p>Daremos uma breve olhada no BIOS legado e no UEFI um pouco mais adiante neste artigo.</p><h2 id="voc-deve-atualizar-de-mbr-para-gpt"><strong>Você deve atualizar de MBR para GPT?</strong></h2><p>Se uma de suas unidades estiver usando uma tabela de partição MBR, você pode estar se perguntando se deve atualizar para o padrão GPT mais recente.</p><p>Resumindo, provavelmente, não. Como diz o ditado, se não está quebrado, não conserte.</p><p>É muito fácil arruinar o setor MBR da unidade, impossibilitando a inicialização novamente. Você precisará criar uma unidade USB de recuperação com Windows ou Linux e tentar reparar o MBR ou limpar completamente a unidade e reinstalar o sistema operacional.</p><p>Falo isso por experiência própria: não vale a dor de cabeça.</p><p>Dito isso, há alguns casos em que você pode considerar atualizar de MBR para GPT.</p><p>Por exemplo, talvez você queira atualizar sua unidade para uma com mais de 2 terabytes ou precise de mais de 26 partições. Mesmo nesses casos, você precisará certificar-se de que seu hardware pode suportar uma tabela de partições GPT e um BIOS UEFI.</p><p>Se você fez a pesquisa e tem certeza de que deseja passar a usar o GPT, certifique-se de ter um backup de sua unidade e de todos os dados importantes. Na pior das hipóteses, você poderá reverter sem precisar reinstalar tudo e começar do zero.</p><h2 id="uma-vis-o-geral-do-bios"><strong>Uma visão geral do BIOS</strong></h2><p>Eu mencionei o BIOS algumas vezes antes. Embora esteja um pouco fora do escopo deste artigo, é necessário um entendimento básico do BIOS para entender uma das diferenças principais entre as partições MBR e GPT.</p><p>BIOS significa <em>Basic Input/Output System</em> (em português, Sistema Básico de Entrada/Saída) e é o software armazenado em um chip na placa-mãe de um computador que é executado quando você o liga pela primeira vez.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/xThDu5d.jpg" class="kg-image" alt="xThDu5d" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/xThDu5d.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/xThDu5d.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/xThDu5d.jpg 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/xThDu5d.jpg 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1500" loading="lazy"><figcaption>Um chip de BIOS em uma placa-mãe da Gigabyte – <a href="https://forums.tomshardware.com/threads/gigabyte-ab350-gaming-3-cpu-led-on-no-posting.3103246/">Fonte</a></figcaption></figure><p>O BIOS faz coisas como configurar o teclado, mouse e outros hardwares, definir o relógio do sistema, testar a memória e assim por diante. Em seguida, ele procura uma unidade e inicia o <em>boot loader</em> (carregador de inicialização) na unidade, que é uma tabela de partição MBR ou GPT.</p><p>Normalmente, quando você liga o computador pela primeira vez, verá um logotipo do fabricante do computador ou da placa-mãe.</p><p>Muitas vezes, há uma mensagem abaixo do logotipo dizendo qual tecla pressionar para configurar o BIOS do computador. Essa tecla geralmente é Delete (ou Del), Escape (ou ESC) ou F2, embora varie de acordo com o fabricante.</p><p>Conforme mencionado anteriormente, existem dois tipos principais de BIOS – BIOS legado e BIOS UEFI:</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/windows-boot-screen-bios.jpg" class="kg-image" alt="windows-boot-screen-bios" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/windows-boot-screen-bios.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/windows-boot-screen-bios.jpg 900w" width="900" height="506" loading="lazy"><figcaption>Uma tela de configuração de BIOS legado – <a href="https://fossbytes.com/intel-end-legacy-bios-support-2020-uefi/">Fonte</a></figcaption></figure><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/29143-uefiasus.jpg" class="kg-image" alt="29143-uefiasus" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/29143-uefiasus.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/29143-uefiasus.jpg 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/29143-uefiasus.jpg 1024w" width="1024" height="501" loading="lazy"><figcaption>Uma tela de configuração de BIOS UEFI – <a href="https://www.tested.com/tech/pcs/2894-what-you-should-know-about-uefi-and-windows-boot-times/">Fonte</a></figcaption></figure><p>BIOS legados são mais antigos e são totalmente controlados por teclado. Eles geralmente são simples em termos de interface do usuário e têm uma cor de fundo preta ou azul semelhante à <em>tela preta/azul da morte </em>do Windows.</p><p>UEFI significa <em>Unified Extensible Firmware Interface</em> (em português, Interface Unificada de Firmware Extensível) e pode ser considerado um tipo mais recente de BIOS. O UEFI geralmente inclui gráficos para mostrar a velocidade da ventoinha, temperatura e velocidades de <em>clock </em>da CPU e, às vezes, pode ser controlado com um mouse ou trackpad.</p><h2 id="bios-de-mbr-e-gpt"><strong>BIOS de MBR e GPT</strong></h2><p>Como o MBR é um padrão mais antigo, ele é emparelhado com os sistemas BIOS legados (e o BIOS legado só pode acessar unidades com uma partição MBR). Isso não é necessariamente ruim, pois o suporte para BIOS legado é melhor.</p><p>Novamente, contudo, uma das limitações mais óbvias das partições MBR é que ela só pode lidar com unidades de até 2 terabytes.</p><p>O padrão GPT mais recente é emparelhado com sistemas BIOS UEFI. Embora o suporte para GPT e BIOS UEFI não seja tão bom quanto MBR/BIOS legado, ele está ganhando terreno.</p><p>Mais fabricantes estão migrando para BIOS UEFI, que, por sua vez, exige que as unidades usem o formato GPT mais recente. No entanto, o requisito para unidades formatadas em GPT vem com a vantagem de uma capacidade muito maior e até 128 partições.</p><h2 id="para-encerrar"><strong>Para encerrar</strong></h2><p>Embora entender a diferença entre as partições MBR e GPT seja um pouco como descascar uma cebola, espero que você tenha passado por isso sem chorar.</p><p>Se tudo o que você deseja é uma referência rápida para as diferenças entre as partições MBR e GPT, aqui está uma tabela útil:</p><!--kg-card-begin: html--><table style="box-sizing: inherit; margin: 0.5em 0px 2.5em; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; line-height: inherit; font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Open Sans&quot;, &quot;Helvetica Neue&quot;, sans-serif; font-size: 1.6rem; vertical-align: top; border-spacing: 0px; border-collapse: collapse; display: inline-block; overflow-x: auto; max-width: 100%; width: auto; white-space: nowrap; background: radial-gradient(at left center, rgba(0, 0, 0, 0.2) 0px, rgba(0, 0, 0, 0) 75%) 0px center / 10px 100% no-repeat scroll, radial-gradient(at right center, rgba(0, 0, 0, 0.2) 0px, rgba(0, 0, 0, 0) 75%) 100% center / 10px 100% scroll rgb(255, 255, 255); color: rgb(10, 10, 35); letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><thead style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><th style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 1.2rem; vertical-align: baseline; color: var(--gray85); letter-spacing: 0.2px; text-align: left; text-transform: uppercase; background-color: var(--gray10);"></th><th style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 1.2rem; vertical-align: baseline; color: var(--gray85); letter-spacing: 0.2px; text-align: center; text-transform: uppercase; background-color: var(--gray10);">MBR</th><th style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: 700; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 1.2rem; vertical-align: baseline; color: var(--gray85); letter-spacing: 0.2px; text-align: center; text-transform: uppercase; background-color: var(--gray10);">GPT</th></tr></thead><tbody style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to right, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-size: 20px 100%; background-repeat: no-repeat;">Capacidade máxima</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; text-align: center;">2TB</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to left, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">9,7ZB (~9,7 bilhões de terabytes)</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to right, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-size: 20px 100%; background-repeat: no-repeat;">Máximo de partições</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; text-align: center;">26</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to left, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">128</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to right, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-size: 20px 100%; background-repeat: no-repeat;">Local dos dados de inicial./partição</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; text-align: center;">No início da unidade</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to left, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">Por toda a unidade</td></tr><tr style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline;"><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to right, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-size: 20px 100%; background-repeat: no-repeat;">Tipo de BIOS</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; text-align: center;">BIOS legado</td><td style="box-sizing: inherit; margin: 0px; padding: 6px 12px; border: var(--gray10) 1px solid; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-size: 16px; vertical-align: baseline; background-image: linear-gradient(to left, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 100%); background-position: 100% 0px; background-size: 20px 100%; background-repeat: no-repeat; text-align: center;">UEFI</td></tr></tbody></table><!--kg-card-end: html--><p>Não se esqueça de não ser como o meu eu mais jovem – certifique-se de ter um backup antes de mexer nas partições. Na verdade, faça dois backups. 🙂</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Aqui estão mais de 850 cursos da Ivy League que podes fazer agora gratuitamente ]]>
                </title>
                <description>
                    <![CDATA[ > Tradução para o português europeu. As oito universidades da Ivy League [https://pt.wikipedia.org/wiki/Ivy_League]  estão entre as mais prestigiadas do mundo. Estas são Harvard, Yale, Princeton, Columbia, Cornell, Dartmouth, Brown e a Universidade da Pennsylvania. Em 2023, as oito escolas da Ivy League ficaram no top 20 da classificação de ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/</link>
                <guid isPermaLink="false">63e60dec1c2d3d0521410b19</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Afonso Branco ]]>
                </dc:creator>
                <pubDate>Wed, 26 Apr 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/collection-ivy-league-moocs-social-2.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/ivy-league-free-online-courses-a0d7ae675869/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Here Are 850+ Ivy League Courses You Can Take Right Now for Free</a>
      </p><blockquote>Tradução para o português europeu.</blockquote><p>As oito <a href="https://pt.wikipedia.org/wiki/Ivy_League">universidades da Ivy League</a> estão entre as mais prestigiadas do mundo. Estas são Harvard, Yale, Princeton, Columbia, Cornell, Dartmouth, Brown e a Universidade da Pennsylvania.</p><p>Em 2023, as oito escolas da Ivy League ficaram no top 20 da <a href="https://www.usnews.com/best-colleges/rankings/national-universities">classificação de universidades nacionais do U.S. News &amp; World Report</a> (link em inglês). Como podes imaginar, estas instituições são altamente seletivas e é muito difícil de ingressar nelas.</p><p>A boa notícia é que estas oferecem cursos online gratuitos. Neste artigo, utilizei a base de dados do <a href="https://www.classcentral.com/">Class Central</a> para compilar estes cursos para ti. No total, as escolas da Ivy League oferecem atualmente mais de 850 cursos, que, combinados, contam com 40 milhões de inscrições.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/cc-homepage-new-year-2022-2023-final-2-1.png" class="kg-image" alt="cc-homepage-new-year-2022-2023-final-2-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/cc-homepage-new-year-2022-2023-final-2-1.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/cc-homepage-new-year-2022-2023-final-2-1.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/cc-homepage-new-year-2022-2023-final-2-1.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/cc-homepage-new-year-2022-2023-final-2-1.png 1726w" sizes="(min-width: 720px) 720px" width="1726" height="996" loading="lazy"><figcaption>A base de dados do <a href="https://www.classcentral.com/">Class Central</a> tem mais de 100 mil cursos online.</figcaption></figure><p>Na semana passada, partilhei uma lista de <a href="https://www.freecodecamp.org/news/free-certificates/">certificados gratuitos de programação</a> (link em inglês). Acontece que uma das universidades da Ivy League também criou essa lista – a universidade de Harvard, que oferece certificados gratuitos em Ciências da Computação, Python, Inteligência Artificial... podes encontrar todos os detalhes aqui: <a href="https://www.freecodecamp.org/news/free-certificates/">1000+ Free Developer Certifications</a><strong> </strong>(link em inglês).</p><p>Para tornar a compilação abaixo um pouco mais fácil de navegar, dividi-a de acordo com o tema do curso. Podes clicar num tema e saltar diretamente para os cursos correspondentes:</p><ul><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#ci-ncias-da-computa-o-50-">Ciências da Computação</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#programa-o-22-">Programação</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#ci-ncias-da-informa-o-23-">Ciências da Informação</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#matem-tica-17-">Matemática</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#engenharia-20-">Engenharia</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#humanidades-97-">Humanidades</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#neg-cios-90-">Negócios</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#ci-ncia-49-">Ciência</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#arte-e-design-18-">Arte e Design</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#ci-ncias-sociais-86-">Ciências Sociais</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#sa-de-e-medicina-353-">Saúde e Medicina</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#educa-o-e-ensino-23-">Educação e Ensino</a></li><li><a href="https://www.freecodecamp.org/portuguese/news/aqui-estao-mais-de-850-cursos-da-ivy-league-que-podes-fazer-agora-gratuitamente/#desenvolvimento-pessoal-16-">Desenvolvimento Pessoal</a></li></ul><p>Também configurei uma <a href="https://www.classcentral.com/collection/ivy-league-moocs">coleção no Class Central para cursos online da Ivy League</a> (link em inglês). Essa coleção é atualizada automaticamente à medida que são lançados novos cursos. Se gostarias de receber notificações sobre novos cursos da Ivy League, podes "seguir" a coleção.</p><p>Observa que compreender como examinar gratuitamente um curso em plataformas como o Coursera pode ser um pouco confuso. Por isso, eu e meu colega <a href="https://www.classcentral.com/@pat">Pat</a> escrevemos um guia dedicado ao assunto: <a href="https://www.classcentral.com/report/coursera-signup-for-free/">Como fazer a inscrição em cursos do Coursera de modo gratuito</a> (link em inglês).</p><p>Sem mais demoras, aqui estão todos os cursos online gratuitos oferecidos pelas instituições da Ivy League.</p><h2 id="ci-ncias-da-computa-o-50-"><strong>Ciências da Computação (50)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-cs50-s-introduction-to-computer-science-442?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Introduction to Computer Science</a>, da <em>Universidade de</em> <em><em>Harvard</em> </em> ★★★★★(142)</li><li><a href="https://www.classcentral.com/course/algs4partI-339?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Algorithms, Part I</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(59)</li><li><a href="https://www.classcentral.com/course/algs4partII-340?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Algorithms, Part II</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(21)</li><li><a href="https://www.classcentral.com/course/bitcointech-3655?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Bitcoin and Cryptocurrency Technologies</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(20)</li><li><a href="https://www.classcentral.com/course/edx-machine-learning-for-data-science-and-analytics-4912?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Machine Learning for Data Science and Analytics</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-cs50-s-computer-science-for-business-professionals-10143?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Computer Science for Business Professionals</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(14)</li><li><a href="https://www.classcentral.com/course/freecodecamp-harvard-cs50-full-computer-science-university-course-119762?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Harvard CS50 – Full Computer Science University Course</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(14)</li><li><a href="https://www.classcentral.com/course/edx-artificial-intelligence-ai-7230?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Artificial Intelligence (AI)</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/edx-machine-learning-7231?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Machine Learning</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-introduction-to-artificial-intelligence-with-python-18122?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Introduction to Artificial Intelligence with Python</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(11)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-understanding-technology-10142?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Understanding Technology</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(10)</li><li><a href="https://www.classcentral.com/course/udacity-reinforcement-learning-1849?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Reinforcement Learning</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/edx-enabling-technologies-for-data-science-and-analytics-the-internet-of-things-4911?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Enabling Technologies for Data Science and Analytics: The Internet of Things</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/comparch-342?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Computer Architecture</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/aofa-921?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Analysis of Algorithms</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/udacity-machine-learning-1020?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Machine Learning</a>, do <em>Instituto de Tecnologia da</em> <em><em>Geórgia</em></em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-computer-science-for-lawyers-16857?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Computer Science for Lawyers</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/robotics-perception-5033?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Perception</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/udacity-machine-learning-unsupervised-learning-1848?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Machine Learning: Unsupervised Learning</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/edx-c-programming-modular-programming-and-memory-management-11666?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Modular Programming and Memory Management</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/youtube-advanced-algorithms-compsci-224-48051?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Advanced Algorithms (COMPSCI 224)</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/hi-five-admin-it-8099?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">HI-FIVE: Health Informatics For Innovation, Value &amp; Enrichment (Administrative/IT Perspective)</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-pointers-and-memory-management-11533?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Pointers and Memory Management</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-language-foundations-11535?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Language Foundations</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-linux-basics-the-command-line-interface-11537?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Linux Basics: The Command Line Interface</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-c-programming-using-linux-tools-and-libraries-11538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Using Linux Tools and Libraries</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-ap-computer-science-principles-7017?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's AP® Computer Science Principles</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/hi-five-clinical-7456?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">HI-FIVE: Health Informatics For Innovation, Value &amp; Enrichment (Clinical Perspective)</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/cs-programming-java-13151?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Computer Science: Programming with a Purpose</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-tinyml-21641?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of TinyML</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-applications-of-tinyml-21642?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Applications of TinyML</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-deploying-tinyml-21643?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Deploying TinyML</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/mlops-for-scaling-tinyml-66338?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">MLOps for Scaling TinyML</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/wharton-ai-applications-marketing-finance-56580?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AI Applications in Marketing and Finance</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-ai-strategy-governance-56561?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AI Strategy and Governance</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-ai-fundamentals-non-data-scientists-56564?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AI Fundamentals for Non-Data Scientists</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-ai-applications-people-management-56565?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AI Applications in People Management</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-vision-intelligence-and-machine-learning-8203?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Vision Intelligence and Machine Learning</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-data-structures-and-software-design-8517?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Structures and Software Design</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-algorithm-design-and-analysis-8520?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Algorithm Design and Analysis</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/perception-54375?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Visual Perception</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/3d-reconstruction---multiple-viewpoints-54376?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">3D Reconstruction - Multiple Viewpoints</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/cameraandimaging-54611?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Camera and Imaging</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/features-and-boundaries-54633?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Features and Boundaries</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/3d-reconstruction---single-viewpoint-54634?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">3D Reconstruction - Single Viewpoint</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/computerscience2-10671?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Computer Science: Algorithms, Theory, and Machines</a>, da <em>Universidade de</em> <em><em>Princeton</em></em></li><li><a href="https://www.classcentral.com/course/algorithms-part1-ru-39397?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Алгоритмы, часть I</a>, da <em>Universidade de</em> <em><em>Princeton</em> (em russo)</em></li><li><a href="https://www.classcentral.com/course/edx-c-programming-getting-started-11534?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Getting Started</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/edx-c-programming-advanced-data-types-11536?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Advanced Data Types</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/linux-basics-the-command-line-interface-92031?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Linux Basics: The Command Line Interface - 6</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="programa-o-22-"><strong>Programação (22)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-cs50-s-web-programming-with-python-and-javascript-11506?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Web Programming with Python and JavaScript</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(22)</li><li><a href="https://www.classcentral.com/course/edx-using-python-for-research-7204?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Using Python for Research</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/freecodecamp-database-systems-cornell-university-course-sql-nosql-large-scale-data-analysis-57068?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Database Systems - Cornell University Course (SQL, NoSQL, Large-Scale Data Analysis)</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/edx-programming-for-the-web-with-javascript-8518?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Programming for the Web with JavaScript</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-the-computing-technology-inside-your-smartphone-2809?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Computing Technology Inside Your Smartphone</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/cs50s-introduction-to-programming-with-python-58275?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Introduction to Programming with Python</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-cs50-s-introduction-to-game-development-11504?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Introduction to Game Development</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/cs50s-introduction-to-programming-with-scratch-39309?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Introduction to Programming with Scratch</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-software-development-fundamentals-8516?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Software Development Fundamentals</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-cs50-s-mobile-app-development-with-react-native-11505?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CS50's Mobile App Development with React Native</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-quantitative-methods-for-biology-17849?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Quantitative Methods for Biology</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/java-inheritance-data-structures-22537?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Inheritance and Data Structures in Java</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/java-object-oriented-programming-22535?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Java and Object-Oriented Programming</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/python-programming-intro-22536?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Python Programming</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/independent-haskell-lecture-notes-and-assignments-110550?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Haskell: Lecture notes and assignments</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/c-programming-modular-programming-and-memory-mana-86353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Modular Programming and Memory Management - 3</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/c-programming-pointers-and-memory-management-89678?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Pointers and Memory Management - 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/c-programming-getting-started-86352?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Getting Started - 1</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/c-programming-language-foundations-86354?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Language Foundations - 2</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/independent-csci-1730-introduction-to-programming-languages-458?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CSCI 1730 - Introduction to Programming Languages</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/c-programming-using-linux-tools-and-libraries-92030?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Using Linux Tools and Libraries - 7</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/c-programming-advanced-data-types-92032?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">C Programming: Advanced Data Types - 5</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="ci-ncias-da-informa-o-23-"><strong>Ciências da Informação (23)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-statistics-and-r-2960?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Statistics and R</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(20)</li><li><a href="https://www.classcentral.com/course/edx-statistical-thinking-for-data-science-and-analytics-4913?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Statistical Thinking for Data Science and Analytics</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/youtube-fundamentals-of-qualitative-research-methods-64206?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Qualitative Research Methods</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(12)</li><li><a href="https://www.classcentral.com/course/edx-data-science-r-basics-9253?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: R Basics</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(11)</li><li><a href="https://www.classcentral.com/course/wharton-people-analytics-4264?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">People Analytics</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/youtube-algorithms-for-big-data-compsci-229r-48050?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Algorithms for Big Data (COMPSCI 229r)</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-data-science-visualization-10347?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Visualization</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-causal-diagrams-draw-your-assumptions-before-your-conclusions-9097?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Causal Diagrams: Draw Your Assumptions Before Your Conclusions</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-data-science-machine-learning-10353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Machine Learning</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-high-dimensional-data-analysis-2949?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">High-Dimensional Data Analysis</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-data-science-wrangling-10351?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Wrangling</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/youtube-stat115-2020-97494?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">STAT115 2020</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-data-science-productivity-tools-10350?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Productivity Tools</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-data-science-inference-and-modeling-10349?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Inference and Modeling</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-big-data-and-education-968?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Big Data and Education</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/big-data-solutions-for-social-and-economic-dispar-120494?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">[New] Big Data Solutions for Social and Economic Disparities</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/youtube-stat115-2018-97492?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">STAT115 2018</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/youtube-stat115-2019-97493?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">STAT115 2019</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/introduction-to-data-science-with-python-110417?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Data Science with Python</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-principles-statistical-and-computational-tools-for-reproducible-data-science-9489?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Principles, Statistical and Computational Tools for Reproducible Data Science</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-data-science-capstone-10354?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Capstone</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/data-analysis-python-22538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Analysis Using Python</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-data-models-and-decisions-in-business-analytics-8218?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data, Models and Decisions in Business Analytics</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li></ul><h2 id="matem-tica-17-"><strong>Matemática (17)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-introduction-to-linear-models-and-matrix-algebra-2963?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Linear Models and Matrix Algebra</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/single-variable-calculus-5066?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Calculus: Single Variable Part 1 - Functions</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/edx-fat-chance-probability-from-the-ground-up-10159?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fat Chance: Probability from the Ground Up</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/differentiation-calculus-5068?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Calculus: Single Variable Part 2 - Differentiation</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-statistical-inference-and-modeling-for-high-throughput-experiments-2967?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Statistical Inference and Modeling for High-throughput Experiments</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/integration-calculus-5069?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Calculus: Single Variable Part 3 - Integration</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-data-science-linear-regression-10352?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Data Science: Linear Regression</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/applications-calculus-5070?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Calculus: Single Variable Part 4 - Applications</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/ac-922?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Analytic Combinatorics</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-calculus-applied-8778?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Calculus Applied!</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-probability-11423?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Probability</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/crash-course-in-causality-8425?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">A Crash Course in Causality: Inferring Causal Effects from Observational Data</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/youtube-statistics-110-probability-91487?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Statistics 110: Probability</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/discrete-calculus-5067?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Single Variable Calculus</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/causal-inference-12136?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Causal Inference</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/causal-inference-2-13095?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Causal Inference 2</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/youtube-nonlinear-dynamics-and-chaos-steven-strogatz-cornell-university-53089?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nonlinear Dynamics and Chaos</a>, da <em>Universidade de</em> <em><em>Cornell</em></em></li></ul><h2 id="engenharia-20-"><strong>Engenharia (20)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-the-art-of-structural-engineering-vaults-12040?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Art of Structural Engineering: Vaults</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(23)</li><li><a href="https://www.classcentral.com/course/robotics-flight-5025?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Aerial Robotics</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edx-the-art-of-structural-engineering-bridges-4561?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Art of Structural Engineering: Bridges</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(7)</li><li><a href="https://www.classcentral.com/course/edx-energy-within-environmental-constraints-6021?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Energy Within Environmental Constraints</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/robotics-computation-5029?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Computational Motion Planning</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/robotics-mobility-5032?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Mobility</a> da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-kinematics-and-mathematical-foundations-8197?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Kinematics and Mathematical Foundations</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-7241?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-a-hands-on-introduction-to-engineering-simulations-5850?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">A Hands-on Introduction to Engineering Simulations</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-the-engineering-of-structures-around-us-3208?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Engineering of Structures Around Us</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/robotics-estimation-and-learning-5030?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Estimation and Learning</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/mosfet-547?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">MOS Transistors</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/exploring-renewable-energy-17025?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Exploring Renewable Energy Schemes</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-dynamics-and-control-8196?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Dynamics and Control</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-robotics-locomotion-engineering-8204?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Locomotion Engineering</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/robotics-capstone-5129?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Robotics: Capstone</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-engineering-and-design-12329?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Engineering and Design</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/energy-justice-58339?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Energy Justice: Fostering More Equitable Energy Futures</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/engineering-of-structures-compression-104058?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Engineering of Structures: Compression</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/engineering-of-structures-shear-and-bending-104059?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Engineering of Structures: Shear and Bending</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="humanidades-97-"><strong>Humanidades (97)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-hope-human-odyssey-to-political-existentialism-11584?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">HOPE: Human Odyssey to Political Existentialism</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(273)</li><li><a href="https://www.classcentral.com/course/modpo-356?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Modern &amp; Contemporary American Poetry ("ModPo")</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(189)</li><li><a href="https://www.classcentral.com/course/moralities-911?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Moralities of Everyday Life</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(42)</li><li><a href="https://www.classcentral.com/course/careerdevelopment-6011?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">English for Career Development</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(24)</li><li><a href="https://www.classcentral.com/course/mythology-353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Greek and Roman Mythology</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(21)</li><li><a href="https://www.classcentral.com/course/journalism-6009?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">English for Journalism</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(15)</li><li><a href="https://www.classcentral.com/course/edx-science-cooking-from-haute-cuisine-to-soft-matter-science-chemistry-811?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Science &amp; Cooking: From Haute Cuisine to Soft Matter Science (chemistry)</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(14)</li><li><a href="https://www.classcentral.com/course/stem-6538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">English for Science, Technology, Engineering, and Mathematics</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(12)</li><li><a href="https://www.classcentral.com/course/plato-5237?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Ancient Philosophy: Plato &amp; His Predecessors</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(12)</li><li><a href="https://www.classcentral.com/course/edx-china-s-political-and-intellectual-foundations-from-sage-kings-to-confucius-941?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">China’s Political and Intellectual Foundations: From Sage Kings to Confucius</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(11)</li><li><a href="https://www.classcentral.com/course/effectivealtruism-3446?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Effective Altruism</a> da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(11)</li><li><a href="https://www.classcentral.com/course/edx-visualizing-japan-1850s-1930s-westernization-protest-modernity-2159?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Visualizing Japan (1850s-1930s): Westernization, Protest, Modernity</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(10)</li><li><a href="https://www.classcentral.com/course/edx-religious-literacy-traditions-and-scriptures-5844?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Religious Literacy: Traditions and Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/edx-religion-conflict-and-peace-9452?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Religion, Conflict and Peace</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/aristotle-5238?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Ancient Philosophy: Aristotle and His Successors</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/edx-modern-china-s-foundations-the-manchus-and-the-qing-1986?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Modern China’s Foundations: The Manchus and the Qing</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/edx-creating-modern-china-the-republican-period-to-the-present-2468?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Creating Modern China: The Republican Period to the Present</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-christianity-through-its-scriptures-5858?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Christianity Through Its Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(7)</li><li><a href="https://www.classcentral.com/course/business-6010?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">English for Business and Entrepreneurship</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-the-civil-war-and-reconstruction-1865-1890-the-unfinished-revolution-2439?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Civil War and Reconstruction – 1865-1890: The Unfinished Revolution</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-literati-china-examinations-neo-confucianism-and-later-imperial-china-1845?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Literati China: Examinations, Neo-Confucianism, and Later Imperial China</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-china-s-first-empires-and-the-rise-of-buddhism-1617?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">China’s First Empires and the Rise of Buddhism</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/youtube-covering-immigration-a-resource-for-journalists-91507?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Covering Immigration: A Resource for Journalists</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-masterpieces-of-world-literature-6844?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Masterpieces of World Literature</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-buddhism-through-its-scriptures-5857?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Buddhism Through Its Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/introancientegypt-7326?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Ancient Egypt and Its Civilization</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/edx-the-civil-war-and-reconstruction-1861-1865-a-new-birth-of-freedom-2297?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Civil War and Reconstruction - 1861 - 1865: A New Birth of Freedom</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-hamlet-the-ghost-7016?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Shakespeare's Hamlet: The Ghost</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-invasions-rebellions-and-the-fall-of-imperial-china-2467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Invasions, Rebellions, and the Fall of Imperial China</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-china-and-communism-2469?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">China and Communism</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/wondersancientegypt-9577?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wonders of Ancient Egypt</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-the-civil-war-and-reconstruction-1850-1861-a-house-divided-2172?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Civil War and Reconstruction - 1850-1861: A House Divided</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-cosmopolitan-tang-aristocratic-culture-in-china-1773?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Cosmopolitan Tang: Aristocratic Culture in China</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-global-china-from-the-mongols-to-the-ming-1988?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global China: From the Mongols to the Ming</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-contemporary-china-the-people-s-republic-taiwan-and-hong-kong-2470?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Contemporary China: The People's Republic, Taiwan, and Hong Kong</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/journey-unfolding-life-6947?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Journey of the Universe: The Unfolding of Life</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-global-history-lab-2371?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global History Lab</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-hinduism-through-its-scriptures-5819?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Hinduism Through Its Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/youtube-introduction-to-ancient-greek-history-with-donald-kagan-53043?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Ancient Greek History</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/western-christianity-200-1650-8106?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">A Journey through Western Christianity: from Persecuted Faith to Global Religion (200 - 1650)</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-question-reality-science-philosophy-and-the-search-for-meaning-6851?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Question Reality! Science, philosophy, and the search for meaning</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-othello-the-moor-11951?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Shakespeare’s Othello: The Moor</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-islam-through-its-scriptures-5818?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Islam Through Its Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-bioethics-the-law-medicine-and-ethics-of-reproductive-technologies-and-genetics-6649?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Bioethics: The Law, Medicine, and Ethics of Reproductive Technologies and Genetics</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-the-ancient-greek-hero-609?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Ancient Greek Hero</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-the-history-of-medieval-medicine-through-jewish-manuscripts-6301?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The History of Medieval Medicine Through Jewish Manuscripts</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/youtube-introduction-to-the-old-testament-with-christine-hayes-53024?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to the Old Testament</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-women-have-always-worked-the-u-s-experience-1700-1920-8110?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Women Have Always Worked: The U.S. Experience 1700 - 1920</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-power-and-responsibility-doing-philosophy-with-superheroes-9708?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Power and Responsibility: Doing Philosophy with Superheroes</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-the-civil-war-and-its-aftermath-3355?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Poetry in America: The Civil War and Its Aftermath</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-modernism-5346?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Poetry in America: Modernism</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-predictionx-lost-without-longitude-11693?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">PredictionX: Lost Without Longitude</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-ancient-masterpieces-of-world-literature-9423?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Ancient Masterpieces of World Literature</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-science-cooking-from-haute-cuisine-to-soft-matter-science-physics-8383?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Science &amp; Cooking: From Haute Cuisine to Soft Matter Science (physics)</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-life-and-work-15184?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Shakespeare's Life and Work</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-shakespeare-s-the-merchant-of-venice-shylock-8536?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Shakespeare's The Merchant of Venice: Shylock</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-digital-humanities-13557?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Digital Humanities</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-judaism-through-its-scriptures-5820?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Judaism Through Its Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-whitman-940?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Poetry in America: Whitman</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/youtube-learn-ancient-greek-with-prof-leonard-muellner-53386?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Learn Ancient Greek</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-japanese-books-from-manuscript-to-print-19157?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Japanese Books: From Manuscript to Print</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-the-path-to-happiness-what-chinese-philosophy-teaches-us-about-the-good-life-20046?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Path to Happiness: What Chinese Philosophy Teaches us about the Good Life</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-the-tabernacle-in-word-image-an-italian-jewish-manuscript-revealed-11462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Tabernacle in Word &amp; Image: An Italian Jewish Manuscript Revealed</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-seeking-women-s-rights-colonial-period-to-the-civil-war-13127?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Seeking Women’s Rights: Colonial Period to the Civil War</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-wage-work-for-women-citizens-1870-1920-13128?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wage Work for Women Citizens: 1870-1920</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-indian-tibetan-river-of-buddhism-13686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Indian &amp; Tibetan River of Buddhism</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-john-milton-paradise-lost-11575?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">John Milton: Paradise Lost</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/fermentation-cooking-with-microbes-32763?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Food Fermentation: The Science of Cooking with Microbes</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-poetry-in-america-whitman-2816?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Poetry in America: Whitman</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-china-s-political-and-intellectual-foundations-from-sage-kings-to-confucius-13152?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">China’s Political and Intellectual Foundations: From Sage Kings to Confucius</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-women-making-history-ten-objects-many-stories-12269?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Women Making History: Ten Objects, Many Stories</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-modern-masterpieces-of-world-literature-9424?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Modern Masterpieces of World Literature</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-china-humanities-the-individual-in-chinese-culture-9256?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">China Humanities: The Individual in Chinese Culture</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-sikhism-through-its-scriptures-11388?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Sikhism Through Its Scriptures</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/digital-humanities-in-practice-from-research-ques-108432?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Digital Humanities in Practice: From Research Questions to Results</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/the-jewish-bible-120115?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Jewish Bible: Its History As A Physical Artifact</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-chinax-book-club-five-authors-five-books-five-views-of-china-19466?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ChinaX Book Club: Five Authors, Five Books, Five Views of China</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-changing-minds-geographic-discoveries-and-new-worlds-through-the-eyes-of-a-renaissance-jewish-scholar-21211?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Changing Minds: Geographic Discoveries and New Worlds through the Eyes of a Renaissance Jewish Scholar</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/in-the-margins-of-a-medieval-jewish-prayer-book-w-53017?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">In the Margins of a Medieval Jewish Prayer Book: What Can Physical Manuscripts Tell Us about History?</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/benjamin-franklin-and-his-world-120108?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Benjamin Franklin and His World</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/indigenous-religions-ecology-58916?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Indigenous Religions &amp; Ecology</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/east-asian-religions-ecology-58917?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">East Asian Religions &amp; Ecology</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/south-asian-religions-ecology-58918?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">South Asian Religions &amp; Ecology</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/western-religions-ecology-58920?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Western Religions &amp; Ecology</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/intro-religions-ecology-58921?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Religions &amp; Ecology</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/christianity-ecology-58919?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Christianity &amp; Ecology</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/youtube-death-with-shelly-kagan-53041?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Death with Shelly Kagan</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/youtube-the-civil-war-and-reconstruction-with-david-blight-53046?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Civil War and Reconstruction</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/edx-women-have-always-worked-the-u-s-experience-1920-2016-8523?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Women Have Always Worked: The U.S. Experience 1920 - 2016</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-negotiating-a-changing-world-1920-1950-13129?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Negotiating a Changing World: 1920-1950</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-fighting-for-equality-1950-2018-13130?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fighting for Equality: 1950–2018</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/columbia-celebrating-food-culture-cultural-adaptations-of-the-mediterranean-diet-110323?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">[New] Celebrating Food Culture: Cultural Adaptations of the Mediterranean Diet</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-writing-case-studies-science-of-delivery-4908?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Writing Case Studies: Science of Delivery</a>, da <em>Universidade de</em> <em><em>Princeton</em></em></li><li><a href="https://www.classcentral.com/course/edx-the-ethics-of-memory-8538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Ethics of Memory</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/edx-fantastic-places-unhuman-humans-exploring-humanity-through-literature-10255?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fantastic Places, Unhuman Humans: Exploring Humanity Through Literature</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/edx-libertarian-free-will-neuroscientific-and-philosophical-evidence-12605?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Libertarian Free Will: Neuroscientific and Philosophical Evidence</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/question-reality-mind-119993?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Question Reality: Mind</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="neg-cios-90-"><strong>Negócios (90)</strong></h2><ul><li><a href="https://www.classcentral.com/course/whartonmarketing-1137?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Marketing</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(72)</li><li><a href="https://www.classcentral.com/course/whartonaccounting-769?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Financial Accounting</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(66)</li><li><a href="https://www.classcentral.com/course/financialmarkets-912?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Financial Markets</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(36)</li><li><a href="https://www.classcentral.com/course/whartonoperations-372?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Operations Management</a>, da <em>Escola de</em> <em><em>Wharton </em></em>da <em>Universidade da Pensilvânia</em> ★★★★☆(33)</li><li><a href="https://www.classcentral.com/course/wharton-contagious-viral-marketing-5034?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Viral Marketing and How to Craft Contagious Content</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(28)</li><li><a href="https://www.classcentral.com/course/whartonfinance-625?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Corporate Finance</a>, da <em>Escola de</em> <em><em>Wharton </em></em>da <em>Universidade da Pensilvânia</em> ★★★★☆(20)</li><li><a href="https://www.classcentral.com/course/wharton-customer-analytics-4353?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Customer Analytics</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/global-financial-crisis-4893?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Global Financial Crisis</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(11)</li><li><a href="https://www.classcentral.com/course/edx-entrepreneurship-in-emerging-economies-2104?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Entrepreneurship in Emerging Economies</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(10)</li><li><a href="https://www.classcentral.com/course/wharton-launching-startup-5468?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Entrepreneurship 2: Launching your Start-Up</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edx-improving-your-business-through-a-culture-of-health-11363?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Improving Your Business Through a Culture of Health</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/accounting-analytics-4166?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Accounting Analytics</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(8)</li><li><a href="https://www.classcentral.com/course/wharton-entrepreneurship-opportunity-5467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Entrepreneurship 1: Developing the Opportunity</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(7)</li><li><a href="https://www.classcentral.com/course/whartonfinancees-4688?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introducción a las Finanzas Corporativas</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/wharton-entrepreneurship-financing-profi-5476?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Entrepreneurship 4: Financing and Profitability</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/wharton-operations-analytics-4204?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Operations Analytics</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/wharton-introduction-spreadsheets-models-5451?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Spreadsheets and Models</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/social-impact-2136?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Social Impact Strategy: Tools for Entrepreneurs and Innovators</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/wharton-decision-making-scenarios-5481?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Decision-Making and Scenarios</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/wharton-quantitative-modeling-fundamenta-5448?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Quantitative Modeling</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/artsculturestrategy-2678?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Arts and Culture Strategy</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/accountingmore-3539?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">More Introduction to Financial Accounting</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/growth-strategy-5466?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Entrepreneurship 3: Growth Strategies</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/edx-corporate-social-responsibility-csr-a-strategic-approach-9510?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Corporate Social Responsibility (CSR): A Strategic Approach</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-analytics-in-python-8210?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Analytics in Python</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/what-is-corruption-anti-corruption-compl-13458?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">What is Corruption: Anti-Corruption and Compliance</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/wharton-capstone-4002?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wharton Business Foundations Capstone</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/creating-public-value-56463?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Leadership: Creating Public Value</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/whartonmarketinges-4685?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introducción al Marketing</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2) (em espanhol)</li><li><a href="https://www.classcentral.com/course/whartonaccountinges-4686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introducción a la Contabilidad Financiera</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2) (em espanhol)</li><li><a href="https://www.classcentral.com/course/wharton-crowdfunding-9664?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Crowdfunding</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/leading-the-life-you-want-8228?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Leading the Life You Want</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-exercising-leadership-foundational-principles-20796?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Exercising Leadership: Foundational Principles</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-technology-entrepreneurship-lab-to-market-13334?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Technology Entrepreneurship: Lab to Market</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-managing-human-capital-retail-48075?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Managing Human Capital in Retail</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-global-trends-business-9800?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global Trends for Business and Society</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/high-performing-teams-7121?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Building High-Performing Teams</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/wharton-retail-supply-chain-48076?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Retail Digital Supply Chain</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/whartonmarketingzh-3900?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">市场营销概论 (中文版)</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/esg-risks-opportunities-58758?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ESG Risks and Opportunities</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/financial-markets-global-pt-32714?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Mercados financeiros</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1) (em português)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-corporate-finance-9060?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Corporate Finance</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-strategic-management-capstone-15197?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Strategic Management Capstone</a>, da <em>Escola de</em> <em><em>Wharton </em></em>da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/why-smart-executives-fail-71216?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Why Smart Executives Fail: Common Mistakes &amp; Warning Signs</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-omnichannel-strategy-and-management-8519?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Omnichannel Strategy and Management</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-retail-fundamentals-8513?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Retail Fundamentals</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/wharton-risk-models-5546?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Modeling Risk and Realities</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-business-financial-modeling-caps-5547?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wharton Business and Financial Modeling Capstone</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/team-culture-7122?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Power of Team Culture</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/team-building-capstone-7126?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Culture-Driven Team Building Capstone</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-retail-marketing-strategy-48077?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Retail Marketing Strategy</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/whartonoperationses-4687?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introducción a la Gestión de Operaciones</a>, da <em>Universidade da Pensilvânia</em> (em espanhol)</li><li><a href="https://www.classcentral.com/course/whartonoperationszh-3901?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">运营管理概论（中文版)</a>, da <em>Universidade da Pensilvânia</em> (em chinês)</li><li><a href="https://www.classcentral.com/course/whartonaccountingzh-3902?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">财务会计概论（中文版</a><a href="https://www.classcentral.com/course/whartonoperationszh-3901?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">)</a>, da <em>Universidade da Pensilvânia</em> (em chinês)</li><li><a href="https://www.classcentral.com/course/whartonfinancezh-3903?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">企业金融概论（中文版</a><a href="https://www.classcentral.com/course/whartonoperationszh-3901?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">)</a>, da <em>Universidade da Pensilvânia</em> (em chinês)</li><li><a href="https://www.classcentral.com/course/finance-fundamentals-20026?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Finance</a>, da <em>Universidade da Pensilvânia</em> (em chinês)</li><li><a href="https://www.classcentral.com/course/employment-law-the-gig-economy-119622?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Employment Law: The Gig Economy</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-managing-human-capital-6887?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Managing Social and Human Capital</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-shangwu-jichu-xiangmu-5002?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">沃顿商务基础毕业项目 (中文版)</a>, da <em>Universidade da Pensilvânia</em> (em chinês)</li><li><a href="https://www.classcentral.com/course/wharton-entrepreneurship-capstone-5607?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wharton Entrepreneurship Capstone</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-proyecto-final-empresariales-4738?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Proyecto de Fundamentos Empresariales de Wharton</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/continuous-learning-culture-7120?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Creating a Team Culture of Continuous Learning</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/management-fundamentals-healthcare-admin-10801?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Management Fundamentals</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/esg-social-activism-59396?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ESG and Social Activism</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/esg-impact-investor-perspective-59397?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ESG Impact: Investor Perspective</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/esg-and-climate-change-59398?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ESG and Climate Change</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/employment-contracts-65161?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Employment Contracts</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/what-is-compliance-13460?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">What is Compliance?</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/effective-compliance-programs-13461?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Effective Compliance Programs</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-capstone-analytics-5093?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Business Analytics Capstone</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/financial-markets-global-es-32713?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Mercados financieros</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/financial-markets-global-ru-32715?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Финансовые рынки</a>, da <em>Universidade de</em> <em><em>Yale</em></em> (em russo)</li><li><a href="https://www.classcentral.com/course/financial-markets-global-fr-32716?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Marchés financiers</a>, da <em>Universidade de</em> <em><em>Yale</em></em> (em francês)</li><li><a href="https://www.classcentral.com/course/financial-markets-global-ar-32717?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">الأسواق المالية</a>, da <em>Universidade de</em> <em><em>Yale</em></em> (em árabe)</li><li><a href="https://www.classcentral.com/course/connected-leadership-121051?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">[New] Connected Leadership</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/edx-demand-and-supply-analytics-8206?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Demand and Supply Analytics</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-marketing-analytics-8214?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Marketing Analytics</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-free-cash-flow-analysis-9061?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Free Cash Flow Analysis</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/financial-engineering-advancedtopics-53149?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Advanced Topics in Derivative Pricing</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/financial-engineering-termstructure-53150?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Term-Structure and Credit Derivatives, </a>da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/financial-engineering-intro-53151?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Financial Engineering and Risk Management</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/financial-engineering-optimizationmethods-53152?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Optimization Methods in Asset Management</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/financial-engineering-computationalmethods-53153?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Computational Methods in Pricing and Model Calibration</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-business-strategy-from-wharton-competitive-advantage-6829?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Business Strategy from Wharton: Competitive Advantage</a>, da <em>Escola de</em> <em><em>Wharton </em></em>da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-introduction-to-connected-strategy-15196?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Connected Strategy</a>, da <em>Escola de</em> <em><em>Wharton </em></em>da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-developing-breakthrough-innovations-with-the-three-box-solution-11328?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Developing Breakthrough Innovations with the Three Box Solution</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/edx-executing-breakthrough-innovations-with-the-three-box-solution-11329?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Executing Breakthrough Innovations with the Three Box Solution</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/lessons-on-wisdom-74264?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Lessons on Wisdom: Personal Leadership for Your Life</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/decision-making-art-and-science-74265?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Decision-Making: Blending Art &amp; Science</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/superbosses-74266?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Superbosses: Managing Talent &amp; Leadership</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="ci-ncia-49-"><strong>Ciência (49)</strong></h2><ul><li><a href="https://www.classcentral.com/course/canvas-network-best-practices-for-biomedical-research-data-management-he-10172?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Best Practices for Biomedical Research Data Management (HE)</a>, da <em>Faculdade de Medicina de</em> <em><em>Harvard</em></em> ★★★★★(63)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-neuroscience-part-1-the-electrical-properties-of-the-neuron-942?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Neuroscience, Part 1: The Electrical Properties of the Neuron</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(20)</li><li><a href="https://www.classcentral.com/course/edx-principles-of-biochemistry-3462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Principles of Biochemistry</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(12)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-neuroscience-part-2-neurons-and-networks-2430?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Neuroscience, Part 2: Neurons and Networks</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-neuroscience-part-3-the-brain-3927?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Neuroscience, Part 3: The Brain</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-the-health-effects-of-climate-change-12106?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Health Effects of Climate Change</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/world-science-u-space-time-and-einstein-3407?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Space, Time and Einstein</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-super-earths-and-life-1874?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Super-Earths and Life</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-sharks-5865?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Sharks!</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/construction-cost-estimating-7106?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Construction Cost Estimating and Cost Control</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/world-science-u-special-relativity-3406?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Special Relativity</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/world-science-u-from-chemistry-to-life-5213?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">From Chemistry to Life</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-cell-biology-mitochondria-6022?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Cell Biology: Mitochondria</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-backyard-meteorology-the-science-of-weather-12108?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Backyard Meteorology: The Science of Weather</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/construction-project-management-7105?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Construction Project Management</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/otherearths-1271?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Imagining Other Earths</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/edx-the-climate-energy-challenge-9626?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Climate-Energy Challenge</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-the-einstein-revolution-2910?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Einstein Revolution</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-bioconductor-2970?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Bioconductor</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/neurobehavior-346?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Basic Behavioral Neurology</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/youtube-fundamentals-of-physics-with-ramamurti-shankar-53087?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Physics</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/fos4-climate-and-us-114651?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Frontiers of Science: Climate &amp; Us</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/world-science-u-the-edges-of-the-universe-5206?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Edges of the Universe</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-malariax-defeating-malaria-from-the-genes-to-the-globe-8413?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">MalariaX: Defeating Malaria from the Genes to the Globe</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-advanced-bioconductor-2976?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Advanced Bioconductor</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/world-science-u-new-ideas-about-dark-matter-8893?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">New Ideas About Dark Matter</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/construction-scheduling-7114?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Construction Scheduling</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/construction-finance-7107?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Construction Finance</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-reclaiming-broken-places-introduction-to-civic-ecology-2811?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Reclaiming Broken Places: Introduction to Civic Ecology</a>, da <em>Universidade de</em> <em><em>Cornell</em></em></li><li><a href="https://www.classcentral.com/course/world-science-u-fundamental-lessons-from-string-theory-5208?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamental Lessons From String Theory</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-case-studies-in-functional-genomics-2973?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Case Studies in Functional Genomics</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/energy-and-thermodynamics-61435?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Energy and Thermodynamics</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/electrochemistry-61436?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Electrochemistry</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/university-chemistry-entropy-and-equilibria-2-61437?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Entropy and Equilibria</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/energy-to-electrochemistry-final-exam-61438?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Energy to Electrochemistry Final Exam</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/philosophy-of-science-18142?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Philosophy of Science</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/yuzhou-duihua-9460?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">宇宙之旅：对话 (Journey of the Universe: Weaving Knowledge and Action)</a>, da <em>Universidade de</em> <em><em>Yale</em></em> (em chinês)</li><li><a href="https://www.classcentral.com/course/diqiu-fanrong-9461?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Thomas Berry的世界观：地球社区的繁荣 (The Worldview of Thomas Berry: The Flourishing of the Earth Community)</a>, da <em>Universidade de</em> <em><em>Yale</em></em> (em chinês)</li><li><a href="https://www.classcentral.com/course/yuzhou-zhi-lu-9462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">宇宙之旅：展现生命 (Journey of the Universe: The Unfolding of Life)</a>, da <em>Universidade de</em> <em><em>Yale</em></em> (em chinês)</li><li><a href="https://www.classcentral.com/course/tropicalforests101-65775?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Tropical Forest Landscapes 101: Conservation &amp; Restoration</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/journey-knowledge-action-6945?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Journey Conversations: Weaving Knowledge and Action</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/thomas-berry-6946?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Worldview of Thomas Berry: The Flourishing of the Earth Community</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/world-science-u-how-black-holes-became-real-58214?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">How Black Holes Became Real</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/world-science-u-rewriting-the-code-of-life-with-crispr-58218?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Rewriting the Code of Life with CRISPR</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/construction-industry-forward-27985?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Construction Industry: The Way Forward</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/world-science-u-endless-universe-beyond-the-big-bang-3404?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Endless Universe: Beyond the Big Bang</a>, da <em>Universidade de</em> <em><em>Princeton</em></em></li><li><a href="https://www.classcentral.com/course/question-reality-matter-120003?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Question Reality: Matter</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/edx-bipedalism-the-science-of-upright-walking-8493?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Bipedalism: The Science of Upright Walking</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/question-reality-cosmos-118916?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Question Reality: Cosmos</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="arte-e-design-18-"><strong>Arte e Design (18)</strong></h2><ul><li><a href="https://www.classcentral.com/course/gamification-343?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Gamification</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(58)</li><li><a href="https://www.classcentral.com/course/introclassicalmusic-2987?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Classical Music</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(25)</li><li><a href="https://www.classcentral.com/course/design-371?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Design: Creation of Artifacts in Society</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(18)</li><li><a href="https://www.classcentral.com/course/romanarchitecture-910?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Roman Architecture</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(13)</li><li><a href="https://www.classcentral.com/course/edx-the-architectural-imagination-7836?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Architectural Imagination</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/edx-18th-century-opera-handel-mozart-12061?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">18th-Century Opera: Handel &amp; Mozart</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-animation-and-cgi-motion-7242?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Animation and CGI Motion</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-handel-s-messiah-and-baroque-oratorio-4548?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">First Nights - Handel's Messiah and Baroque Oratorio</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-beethoven-s-9th-symphony-and-the-19th-century-orchestra-5383?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">First Nights - Beethoven's 9th Symphony and the 19th Century Orchestra</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/kadenze-reinventing-the-piano-3778?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Reinventing the Piano</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(4)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-monteverdi-s-l-orfeo-and-the-birth-of-opera-6365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">First Nights - Monteverdi’s L’Orfeo and the Birth of Opera</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-berlioz-s-symphonie-fantastique-and-program-music-in-the-19th-century-6612?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">First Nights - Berlioz’s Symphonie Fantastique and Program Music in the 19th Century</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-first-nights-stravinsky-s-rite-of-spring-modernism-ballet-and-riots-7319?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">First Nights - Stravinsky’s Rite of Spring: Modernism, Ballet, and Riots</a> da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-italian-opera-3840?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Italian Opera</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/edx-19th-century-opera-meyerbeer-wagner-verdi-12384?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">19th-Century Opera: Meyerbeer, Wagner, &amp; Verdi</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/age-of-cathedrals-9671?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Age of Cathedrals</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/music-and-social-action-5842?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Music and Social Action</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-german-opera-7474?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to German Opera</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="ci-ncias-sociais-86-"><strong>Ciências Sociais (86)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-justice-610?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Justice</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(52)</li><li><a href="https://www.classcentral.com/course/the-science-of-well-being-10346?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Science of Well-Being</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(29)</li><li><a href="https://www.classcentral.com/course/edx-constitutional-interpretation-13427?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Constitutional Interpretation</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(25)</li><li><a href="https://www.classcentral.com/course/americanlaw-2872?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">An Introduction to American Law</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(19)</li><li><a href="https://www.classcentral.com/course/introduction-psychology-12509?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Psychology</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(16)</li><li><a href="https://www.classcentral.com/course/moral-politics-2986?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Moral Foundations of Politics</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(15)</li><li><a href="https://www.classcentral.com/course/susdev-1533?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Age of Sustainable Development</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(14)</li><li><a href="https://www.classcentral.com/course/edx-contract-law-from-trust-to-promise-to-contract-2633?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Contract Law: From Trust to Promise to Contract</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(13)</li><li><a href="https://www.classcentral.com/course/warparadoxes-1361?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Paradoxes of War</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★☆(12)</li><li><a href="https://www.classcentral.com/course/awc-2677?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">America's Written Constitution</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edx-tangible-things-discovering-history-through-artworks-artifacts-scientific-specimens-and-the-stuff-around-you-1870?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Tangible Things: Discovering History Through Artworks, Artifacts, Scientific Specimens, and the Stuff Around You</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(7)</li><li><a href="https://www.classcentral.com/course/positive-psychology-applications-8332?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Positive Psychology: Applications and Interventions</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-pyramids-of-giza-ancient-egyptian-art-and-archaeology-10385?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Pyramids of Giza: Ancient Egyptian Art and Archaeology</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/constitution-2082?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Key Constitutional Concepts and Supreme Court Cases</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/microeconomics-part1-624?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Microeconomics: The Power of Markets</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(6)</li><li><a href="https://www.classcentral.com/course/money-banking-6632?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Economics of Money and Banking</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-civil-liberties-11764?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Civil Liberties</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(6)</li><li><a href="https://www.classcentral.com/course/edx-child-protection-children-s-rights-in-theory-and-practice-12686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Child Protection: Children's Rights in Theory and Practice</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/microeconomics-part2-5295?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Microeconomics: When Markets Fail</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-intellectual-property-law-and-policy-part-1-5001?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Intellectual Property Law and Policy: Part 1</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/auc-3008?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">America's Unwritten Constitution</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/edx-global-history-of-capitalism-10307?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global History of Capitalism</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/political-philosophy-4234?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Revolutionary Ideas: Utility, Justice, Equality, Freedom</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/law-student-4897?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">A Law Student's Toolkit</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(4)</li><li><a href="https://www.classcentral.com/course/wharton-corruption-6888?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Corruption</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-pyramids-of-giza-ancient-egyptian-art-and-archaeology-20964?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Pyramids of Giza: Ancient Egyptian Art and Archaeology</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-juryx-deliberations-for-social-change-3188?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">JuryX: Deliberations for Social Change</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-american-government-constitutional-foundations-11664?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">American Government: Constitutional Foundations</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-u-s-public-policy-social-economic-and-foreign-policies-11696?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">U.S. Public Policy: Social, Economic, and Foreign Policies</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-predictionx-omens-oracles-prophecies-8717?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">PredictionX: Omens, Oracles &amp; Prophecies</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/positive-psychology-project-8330?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Positive Psychology Specialization Project: Design Your Life for Well-being</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/positive-psychology-visionary-science-8337?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Positive Psychology: Martin E. P. Seligman’s Visionary Science</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/norms-5910?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Social Norms, Social Change I</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/political-philosophy-2-4171?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Revolutionary Ideas: Borders, Elections, Constitutions, Prisons</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/positive-psychology-methods-8335?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Positive Psychology: Character, Grit and Research Methods</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/contracts-1-12714?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">American Contract Law I</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/everyday-parenting-8875?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Everyday Parenting: The ABCs of Child Rearing</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/youtube-introduction-to-psychology-with-paul-bloom-54701?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Psychology</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-making-government-work-in-hard-places-4562?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Making Government Work in Hard Places</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/global-systemic-risk-55173?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global Systemic Risk</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-networks-crowds-and-markets-1565?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Networks, Crowds and Markets</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-wiretaps-to-big-data-privacy-and-surveillance-in-the-age-of-interconnection-1492?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wiretaps to Big Data: Privacy and Surveillance in the Age of Interconnection</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-american-civics-presented-by-zero-l-20365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to American Civics: Presented by Zero-L</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-u-s-political-institutions-congress-presidency-courts-and-bureaucracy-11694?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">U.S. Political Institutions: Congress, Presidency, Courts, and Bureaucracy</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-citiesx-the-past-present-and-future-of-urban-life-9738?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CitiesX: The Past, Present and Future of Urban Life</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/privacy-law-data-protection-13459?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Privacy Law and Data Protection</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/networkdynamics-9306?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Network Dynamics of Social Behavior</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-intellectual-property-law-and-policy-part-2-6490?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Intellectual Property Law and Policy: Part 2</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/change-7429?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Social Norms, Social Change II</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/privacy-law-hipaa-18049?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Privacy Law and HIPAA</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/youtube-philosophy-and-the-science-of-human-nature-w-tamar-gendler-54702?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Philosophy and the Science of Human Nature</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/youtube-yale-anthropology-92463?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Yale anthropology</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-global-muckraking-investigative-journalism-and-global-media-8029?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global Muckraking: Investigative Journalism and Global Media</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/the-jeffrey-sachs-book-club-25377?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Book Club with Jeffrey Sachs</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-risk-return-9062?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Risk &amp; Return</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-structuring-business-agreements-for-success-8285?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Structuring Business Agreements for Success</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/evaluating-upward-mobility-the-fading-american-dr-120493?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">[New] Evaluating Upward Mobility: The Fading American Dream</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/youtube-justice-with-michael-sandel-91448?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Justice with Michael Sandel</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/youtube-econ-2450a-public-economics-raj-chetty-91484?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Econ 2450A Public Economics | Raj Chetty</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/youtube-quantitative-social-science-methods-i-gov2001-at-harvard-university-53190?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Quantitative Social Science Methods,Quantitative Social Science Methods</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/early-child-development-global-strategies-for-imp-27971?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Early Childhood Development: Global Strategies for Implementation</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/civic-engagement-in-us-democracy-33440?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">We the People: Civic Engagement in a Constitutional Democracy</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-citizen-politics-in-america-public-opinion-elections-interest-groups-and-the-media-11695?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Citizen Politics in America: Public Opinion, Elections, Interest Groups, and the Media</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-justice-today-money-markets-and-morals-21573?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Justice Today: Money, Markets, and Morals</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/media-2839?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">English for Media Literacy</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/diverse-teams-7123?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Optimizing Diversity on Teams</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-top-10-social-issues-for-the-president-s-first-100-days-7586?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Top 10 Social Issues for the President’s First 100 Days</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-creating-an-effective-child-welfare-system-11665?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Creating an Effective Child Welfare System</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/urban-transit-for-livable-cities-23259?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Urban Transit for Livable Cities</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/introduction-intellectual-property-13446?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Intellectual Property</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/patents-13462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Patent Law</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/copyright-law-13463?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Copyright Law</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/trademark-law-13467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Trademark Law</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/intellectual-property-healthcare-industry-18053?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Intellectual Property in the Healthcare Industry</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/contracts-2-12715?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">American Contract Law II</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/edx-freedom-of-expression-in-the-age-of-globalization-6646?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Freedom of Expression in the Age of Globalization</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-protecting-children-in-humanitarian-settings-14482?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Protecting Children in Humanitarian Settings</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-freedom-of-expression-and-information-in-the-time-of-globalization-foundational-course-15198?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Freedom of Expression and Information in the Time of Globalization: Foundational Course</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-freedom-of-expression-and-information-in-the-time-of-globalization-advanced-course-15199?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Freedom of Expression and Information in the Time of Globalization: Advanced Course</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/indigenous-peoples-rights-22010?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Indigenous Peoples' Rights</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/inspire-96663?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">INSPIRE: Seven Strategies for Ending Violence Against Children</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/poverty-population-demographics-policy-12818?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Poverty &amp; Population: How Demographics Shape Policy</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/welfare-state-12819?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">US Social Services Compared</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/welfare-state-origin-12820?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">US Social Services: Where did they come from?</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/social-health-policy-programs-12823?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Social Services for Families, Seniors and Those with Disabilities</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/health-housing-educational-services-12826?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Health, Housing, and Educational Services</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li></ul><h2 id="sa-de-e-medicina-353-"><strong>Saúde e Medicina (353)</strong></h2><ul><li><a href="https://www.classcentral.com/course/medical-research-19515?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Understanding Medical Research: Your Facebook Friend is Wrong</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(364)</li><li><a href="https://www.classcentral.com/course/vitalsigns-1887?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Vital Signs: Understanding What the Body Is Telling Us</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(51)</li><li><a href="https://www.classcentral.com/course/edx-mechanical-ventilation-for-covid-19-19347?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Mechanical Ventilation for COVID-19</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(25)</li><li><a href="https://www.classcentral.com/course/edx-crisis-resource-management-21613?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Crisis Resource Management</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(25)</li><li><a href="https://www.classcentral.com/course/youtube-lecture-series-on-introduction-to-radiology-53061?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Radiology</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(17)</li><li><a href="https://www.classcentral.com/course/edx-improving-global-health-focusing-on-quality-and-safety-1950?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Improving Global Health: Focusing on Quality and Safety</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edx-humanitarian-response-to-conflict-and-disaster-6569?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Humanitarian Response to Conflict and Disaster</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/dentmedpenn-2902?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Dental Medicine</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(9)</li><li><a href="https://www.classcentral.com/course/edx-human-anatomy-musculoskeletal-cases-2024?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Human Anatomy: Musculoskeletal Cases</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/breast-cancer-causes-prevention-6044?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Breast Cancer</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/edx-predictionx-john-snow-and-the-cholera-epidemic-of-1854-7159?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">PredictionX: John Snow and the Cholera Epidemic of 1854</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(7)</li><li><a href="https://www.classcentral.com/course/edx-fundamentals-of-clinical-trials-924?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fundamentals of Clinical Trials</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/wo-pmo-healthcareinnovation-10802?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Health Care Innovation</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/trunk-anatomy-10390?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Anatomy of the Chest, Neck, Abdomen, and Pelvis</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-pediatric-hiv-nursing-11350?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Pediatric HIV Nursing</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(3)</li><li><a href="https://www.classcentral.com/course/onehealth-20756?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Bats, Ducks, and Pandemics: An Introduction to One Health Policy</a>, da <em>Universidade de</em> <em><em>Princeton</em></em> ★★★★★(3)</li><li><a href="https://www.classcentral.com/course/edx-prescription-drug-regulation-cost-and-access-current-controversies-in-context-13246?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Prescription Drug Regulation, Cost, and Access: Current Controversies in Context</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-united-states-health-policy-1616?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">United States Health Policy</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/health-behavior-change-19269?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Health Behavior Change: From Evidence to Action</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/essentials-global-health-7337?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Essentials of Global Health</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★☆(2)</li><li><a href="https://www.classcentral.com/course/addiction-treatment-17925?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Addiction Treatment: Clinical Skills for Healthcare Providers</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/edx-the-science-and-politics-of-the-gmo-6501?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Science and Politics of the GMO</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-readings-in-global-health-2017-5178?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Readings in Global Health (2017)</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-lessons-from-ebola-preventing-the-next-pandemic-4879?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Lessons from Ebola: Preventing the Next Pandemic</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-the-opioid-crisis-in-america-7830?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Opioid Crisis in America</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/oralcavity-9263?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Oral Cavity: Portal to Health and Disease</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/the-future-of-mrna-vaccines-covid-19-and-beyond-43715?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The COVID-19 Pandemic and the Use of mRNA Vaccines</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/tarasoff-duties-106380?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Tarasoff Duties</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/-dyslexia-116700?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Overcoming Dyslexia</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/diagnosticimaging-80464?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Visualizing the Living Body: Diagnostic Imaging</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-fighting-hiv-with-antiretroviral-therapy-implementing-the-treat-all-approach-11351?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fighting HIV with Antiretroviral Therapy: Implementing the Treat-All Approach</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/independent-creating-an-inclusive-environment-for-sexual-and-gender-minority-patients-and-trainees-in-academic-clinical-settings-107696?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Creating an Inclusive Environment for Sexual and Gender Minority Patients and Trainees in Academic Clinical Settings</a>, da <em>Universidade de</em> <em><em>Brown</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-strengthening-community-health-worker-programs-13318?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Strengthening Community Health Worker Programs</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/edx-practical-improvement-science-in-health-care-a-roadmap-for-getting-results-5003?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Practical Improvement Science in Health Care: A Roadmap for Getting Results</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/respiracion-mecanica-para-covid-19-22806?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Ventilación mecánica para pacientes con COVID-19</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> (em espanhol)</li><li><a href="https://www.classcentral.com/course/edx-innovating-in-health-care-1614?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Innovating in Health Care</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/feedingtheworld-3913?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Feeding the World</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/health-economics-us-healthcare-systems-10796?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Economics of Health Care Delivery</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/comparative-health-systems-18064?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Comparative Health Systems</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/health-law-fundamentals-18065?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">U.S. Health Law Fundamentals</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/conflicts-of-interest-in-biomedical-research-106357?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Conflicts of Interest in Biomedical Research</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/ethics-and-trial-design-106361?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Ethics and Trial Design</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/evidence-based-prescribing-an-online-course-with--106364?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Evidence-based Prescribing: An Online Course with Tools You Can Use to Fight the Opioid Epidemic</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/covid-19-rationing-and-drug-regulation-106358?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">COVID-19: Rationing and Drug Regulation</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/rationing-care-106375?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Rationing Care</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/research-with-vulnerable-populations-106378?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Research with Vulnerable Populations</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/research-in-global-settings-106377?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Research in Global Settings</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/focus-on-opioid-use-disorder-and-treatment-the-ge-106365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Focus on Opioid Use Disorder and Treatment: The Genetics of Addiction-How Discovery Is Informing the Path Forward for Opioid Use Disorder Treatment, Intervention, and Prevention</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/penn-medicine-opioid-stewardship-2022-comprehensi-106374?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Penn Medicine Opioid Stewardship 2022: Comprehensive Pain Management: Opioids and Beyond</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/improving-patient-safety-in-primary-care-settings-106367?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Improving Patient Safety in Primary Care Settings</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/re-imagining-emergency-department-care-for-substa-106376?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Re-Imagining Emergency Department Care for Substance Use Disorders</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/opioid-use-disorder-for-hospitalists-in-the-fenta-106373?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Opioid Use Disorder for Hospitalists in the Fentanyl Era</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/global-quality-maternal-and-newborn-care-22339?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Global Quality Maternal and Newborn Care</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/introduction-to-medical-software-57706?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Medical Software</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/anatomy-extremeties-58598?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Anatomy of the Upper and Lower Extremities</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/the-science-of-well-being-for-teens-121052?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Science of Well-Being for Teens</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/planetary-health-for-nurses-ysn-120105?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Planetary Health for Nurses</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/yale-teaching-and-learning-center-teaching-cultur-106185?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Yale Teaching and Learning Center: Teaching Cultural Sensitivity in the Patient-Clinician Relationship</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-2021-trust-your-gut-webinar-series-106183?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Trust Your Gut Webinar Series</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/covid-19-vaccination-a-communication-guide-for-pr-106182?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">COVID-19 Vaccination: A Communication Guide for Providers</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/training-course-bloodborne-pathogens-for-clinical-106180?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Training Course: Bloodborne Pathogens for Clinical Personnel</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/training-course-bloodborne-pathogens-for-laborato-106181?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Training Course: Bloodborne Pathogens for Laboratory Research Personnel</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-2021-update-what-s-new-in-the-field-of--106179?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">What's New in the Field of Multiple Sclerosis</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-musculoskeletal-review-course-for-the-p-106178?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Musculoskeletal Review Course for the Primary Care Provider, Part I: The Lower Extremity &amp; Lumbar Spine</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-15th-annual-yale-digestive-disease-week-106177?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">15th Annual Yale Digestive Disease Week Review</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-yale-s-review-of-advances-in-oncology-h-106175?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Yale’s Review of Advances in Oncology Highlights from the ASCO® Annual Meeting 2021</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-9th-annual-lawrence-m-brass-stroke-symp-106176?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">9th Annual Lawrence M. Brass Stroke Symposium: Controversies in Stroke Management</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/training-course-preventing-transmission-of-covid--106174?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Training Course: Preventing Transmission of COVID-19 in the Long-Term Care Setting</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-webinar-series-annual-clinical-intersec-106173?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Annual Clinical Intersection of HIV/AIDS: A Practical Discussion of Connecticut's Course Mandates</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-yale-epilepsy-virtual-cme-series-a-mont-106171?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Yale Epilepsy Virtual CME Series: A Monthly Live Case-Based Webinar</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-the-gi-hospitalist-model-addressing-the-106168?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The GI Hospitalist Model: Addressing the Needs of Hospital-Based Care</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-digestive-health-virtual-cme-series-202-106167?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Digestive Health Virtual CME Series 2022: Third Thursdays Trust your Gut</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-yale-rheumatology-state-of-the-art-symp-106166?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Yale Rheumatology State of the Art Symposium - Reactive Arthritis, Post-Infections, Inflammatory Disease, and Lessons for COVID</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/on-demand-critical-care-emergency-neuroscience-cu-106165?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Critical Care &amp; Emergency Neuroscience: Current Topics in Neuro-resuscitation after Traumatic Brain Injury and Cardiac Arrest</a>, da <em>Universidade de</em> <em><em>Yale</em></em></li><li><a href="https://www.classcentral.com/course/edx-traitement-antiretroviral-pour-lutter-contre-le-vih-mise-en-oeuvre-de-l-approche-traiter-tout-le-monde-13312?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Traitement antirétroviral pour lutter contre le VIH : mise en œuvre de l'approche « traiter tout le monde »</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> (em francês)</li><li><a href="https://www.classcentral.com/course/edx-soins-infirmiers-en-vih-pediatrique-13333?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Soins infirmiers en VIH pédiatrique</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> (em francês)</li><li><a href="https://www.classcentral.com/course/menstruation-in-a-global-context-addressing-polic-57799?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Menstruation in a Global Context: Addressing Policy and Practice</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/columbia-2021-obesity-course-etiology-prevention-and-treatment-110324?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Obesity Course: Etiology, Prevention and Treatment</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/columbia-how-common-is-celiac-disease-around-the-world-105236?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">How Common is Celiac Disease Around the World? Role of Gluten Timing and Quantity, and Environmental Risk Factors</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/columbia-the-clinical-picture-of-celiac-disease-and-how-to-make-the-diagnosis-105235?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Clinical Picture of Celiac Disease and How to Make the Diagnosis</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-artful-medicine-art-s-power-to-enrich-patient-care-8541?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Artful Medicine: Art’s Power to Enrich Patient Care</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/edx-beyond-medical-histories-gaining-insight-from-patient-stories-11762?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Beyond Medical Histories: Gaining Insight from Patient Stories</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-retaining-patients-in-office-based-buprenorphine-treatment-107706?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Retaining Patients in Office-based Buprenorphine Treatment</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-getting-your-scholarly-projects-unstuck-a-reference-management-workshop-107734?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">EFD On-Demand: Getting Your Scholarly Projects "Unstuck"- A Reference Management Workshop</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-no-longer-speechless-a-practical-workshop-on-responding-to-microaggressions-in-biomedical-settings-107683?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">No Longer Speechless - A Practical Workshop on Responding to Microaggressions in Biomedical Settings</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-improving-instruction-with-spaced-and-retrieval-practice-107719?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Improving Instruction with Spaced and Retrieval Practice</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-identification-and-management-of-adhd-and-impulse-control-in-tourette-syndrome-107699?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Identification and Management of ADHD and Impulse Control in Tourette Syndrome</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-march-5-2021-teaching-the-use-of-hit-to-support-relationship-based-care-promoting-wellness-in-clinical-care-107697?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Teaching the Use of HIT to Support Relationship-based Care &amp; Promoting Wellness in Clinical Care</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-strategic-cv-creation-and-maintenance-107720?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Strategic CV Creation and Maintenance</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-critical-junctures-creating-high-impact-advising-conversations-107726?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Critical Junctures: Creating High Impact Advising Conversations</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-evidence-based-emergency-care-for-opioid-use-disorder-107684?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Evidence-based Emergency Care for Opioid Use Disorder</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-refractory-tourette-syndrome-107698?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Refractory Tourette Syndrome</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li>Y<a href="https://www.classcentral.com/course/independent-efd-on-demand-you-ve-been-served-now-what-107723?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ou've Been Served: Now What?</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-program-in-educational-faculty-development-on-demand-courses-107724?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Program in Educational Faculty Development On-Demand Courses</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-practical-approaches-to-applying-conceptual-theoretical-frameworks-to-medical-education-research-107735?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Practical Approaches to Applying Conceptual &amp; Theoretical Frameworks to Medical Education Research</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-meeting-the-acgme-requirement-cqi-education-programs-for-residents-107693?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Meeting the ACGME Requirement: CQI Education Programs for Residents</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-best-practices-for-treatment-of-acute-pain-express-interest-and-pre-survey-107752?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Best Practices for Treatment of Acute Pain: Express Interest and Pre-Survey</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-may-7-2021-working-with-governments-institutions-stakeholders-to-support-healing-relationships-human-capital-ethical-stewardship-of-shared-data-107712?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Working with Governments, Institutions, &amp; Stakeholders to Support Healing Relationships &amp; Human Capital; Ethical Stewardship of Shared Data</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-academic-detailing-best-practices-for-treatment-of-acute-pain-107753?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Academic Detailing: Best Practices for Treatment of Acute Pain</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-academic-detailing-group-presentation-best-practices-for-treatment-of-acute-pain-post-activity-107754?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Academic Detailing Group Presentation: Best Practices for Treatment of Acute Pain - Post Activity</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-emergency-care-for-opioid-use-disorder-107685?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Emergency Care for Opioid Use Disorder</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-fears-bias-and-discrimination-substance-use-disorder-patient-care-107686?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Fears, Bias and Discrimination - Substance Use Disorder Patient Care</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-advances-in-the-treatment-of-tics-107687?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Advances in the Treatment of Tics</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-the-future-of-lung-cancer-screening-for-all-communities-in-ri-where-we-are-and-where-we-need-to-be-107701?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Future of Lung Cancer Screening for All Communities in RI: Where We Are and Where We Need to Be</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-transitioning-to-adult-care-time-is-ticcing-away-107700?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Transitioning to Adult Care: Time is Ticcing Away</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-psychological-flexibility-building-a-pragmatic-model-and-method-of-intentional-change-107727?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Psychological Flexibility: Building a Pragmatic Model and Method of Intentional Change</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-tiktoktherapist-understanding-the-role-of-social-media-in-adolescent-mental-health-107728?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">TikTokTherapist: Understanding the Role of Social Media in Adolescent Mental Health</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-social-in-justice-and-mental-health-107731?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Social (In)Justice and Mental Health</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-finding-the-ehr-data-to-tell-your-clinical-story-early-experiences-with-lifespan-pediatric-behavioral-health-emergency-services-107732?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Finding the EHR Data to Tell Your Clinical Story: Early Experiences with Lifespan Pediatric Behavioral Health Emergency Services</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-screen-media-social-interaction-and-asd-connecting-theory-and-research-107725?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Screen Media, Social Interaction and ASD: Connecting Theory and Research</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-adolescent-substance-use-and-treatment-translating-science-into-clinical-practice-107669?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Adolescent Substance Use and Treatment: Translating Science into Clinical Practice</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-racism-in-academic-psychiatry-hiding-beneath-the-cloak-of-our-benevolence-107670?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Racism in Academic Psychiatry: Hiding Beneath the Cloak of Our Benevolence</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-catatonia-evaluation-treatment-and-consideration-in-a-pediatric-population-107671?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Catatonia, Evaluation, Treatment and Consideration in a Pediatric Population</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-rapid-acting-treatments-for-pediatric-depression-and-suicidality-where-are-we-now-107672?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Rapid-acting Treatments for Pediatric Depression and Suicidality: Where are We Now?</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-implementation-science-driving-health-policy-change-in-learning-health-systems-107673?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Implementation Science: Driving Health Policy Change in Learning Health Systems</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-yoga-intervention-research-focus-on-people-with-depression-107675?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Yoga Intervention Research: Focus on People with Depression</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-social-in-justice-and-children-s-mental-health-107676?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Social (In)justice and Children’s Mental Health</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-leveraging-sleep-and-circadian-science-to-devise-and-disseminate-novel-transdiagnostic-treatments-to-improve-sleep-health-107677?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Leveraging Sleep and Circadian Science to Devise and Disseminate Novel Transdiagnostic Treatments to Improve Sleep Health</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-school-mental-health-suicide-prevention-and-wellbeing-promotion-lessons-from-the-last-10-years-wisdom-for-the-next-10-107678?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">School Mental Health, Suicide Prevention, and Wellbeing Promotion: Lessons from the last 10 years &amp; Wisdom for the next 10</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-translating-understanding-of-neural-network-dysfunction-into-novel-mood-disorder-risk-markers-and-brain-based-treatments-for-bipolar-disorder-107680?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Translating understanding of neural network dysfunction into novel, mood disorder risk markers and brain-based treatments for Bipolar Disorder</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-parent-based-treatment-for-childhood-anxiety-and-ocd-107681?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Parent-Based Treatment for Childhood Anxiety and OCD</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-socio-cognitive-behavioral-therapy-for-latinx-youth-with-suicidal-thoughts-and-behaviors-107682?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Socio-Cognitive Behavioral Therapy for Latinx Youth with Suicidal Thoughts and Behaviors</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-lethal-means-counseling-collaboration-at-the-patient-and-community-level-107730?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">On-Demand | Lethal Means Counseling: Collaboration at the Patient- and Community-Level</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-2022-the-patient-and-the-practitioner-in-the-age-of-technology-promoting-healing-relationships-107755?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">2022 The Patient and The Practitioner in the Age of Technology: Promoting Healing Relationships</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-providence-sleep-research-interest-group-seminar-series-107679?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Providence Sleep Research Interest Group Seminar Series</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-improving-the-care-of-patients-with-sickle-cell-disease-107694?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Improving the Care of Patients with Sickle Cell Disease</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-addressing-microaggressions-in-the-clinical-environment-107695?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Addressing Microaggressions in the Clinical Environment</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-medical-evaluation-of-the-sexual-assault-survivor-a-virtual-educational-curriculum-107737?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medical Evaluation of the Sexual Assault Survivor: A Virtual Educational Curriculum</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-building-a-better-suicide-risk-assessment-the-nuts-and-bolts-of-the-columbia-protocol-107713?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Building a Better Suicide Risk Assessment: The Nuts and Bolts of the Columbia Protocol</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-docs-for-health-considering-social-and-structural-determinants-in-medical-care-107704?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Docs for Health: Considering Social and Structural Determinants in Medical Care</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-dcyf-and-legal-considerations-session-vi-107714?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">DCYF and Legal Considerations: Session VI</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-neonatal-opioid-withdrawal-syndrome-nows-nas-session-v-107715?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Neonatal Opioid Withdrawal Syndrome (NOWS/NAS): Session V</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-trauma-and-oud-session-iv-107716?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Trauma and OUD: Session IV</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-micro-interventions-to-support-those-escaping-emotional-pain-addressing-overlapping-substance-use-and-suicide-risk-107729?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Micro-interventions to Support Those Escaping Emotional Pain: Addressing Overlapping Substance Use and Suicide Risk</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-efd-on-demand-from-abstract-to-poster-to-case-report-a-guide-for-clinicians-107733?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">From Abstract to Poster to Case Report: A Guide for Clinicians</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-on-demand-demystifying-palliative-care-107736?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Demystifying Palliative Care</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-9-21-22-5-ways-to-work-through-conflict-107746?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Ways to Work Through Conflict</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-10-06-22-owims-book-club-session-ii-zoom-option-crucial-conversations-107756?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">OWIMS Book Club (Session II): Crucial Conversations</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-10-06-22-owims-book-club-session-i-live-in-person-option-crucial-conversations-107757?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">OWIMS Book Club (Session I): Crucial Conversations</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-2-compassion-the-new-empathy-taking-the-me-out-of-empathy-107738?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 2: Compassion the new empathy? Taking the me out of empathy</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-3-how-life-gets-in-the-way-107739?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 3: How life gets in the way</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-4-the-habit-of-judging-ourselves-and-others-107740?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 4: The habit of judging ourselves and others</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-5-working-with-stress-and-anxiety-107741?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 5: Working with stress and anxiety</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-6-spreading-curiosity-don-t-just-do-something-sit-there-107742?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 6: Spreading Curiosity: Don’t just do something, sit there</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-8-a-summary-of-all-that-we-ve-explored-107743?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 8: A Summary of all that we’ve explored</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-7-the-obstacle-is-the-way-107745?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 7: The obstacle is the way</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-reducing-physician-burnout-107748?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Reducing Physician Burnout</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-session-1-feeling-the-pain-empathy-and-action-107749?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Session 1: Feeling the Pain: Empathy and Action</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-tom-f-anders-seminar-series-107750?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Tom F. Anders Seminar Series</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-2022-2023-child-and-adolescent-psychiatry-grand-rounds-107747?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Child and Adolescent Psychiatry Grand Rounds</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/independent-2022-2023-department-of-psychiatry-and-human-behavior-academic-grand-rounds-107751?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Department of Psychiatry and Human Behavior Academic Grand Rounds</a>, da <em>Universidade de</em> <em><em>Brown</em></em></li><li><a href="https://www.classcentral.com/course/world-science-u-foundations-of-understanding-and-combating-cancer-58165?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Foundations of Understanding and Combating Cancer</a>, da <em>Universidade de</em> <em><em>Cornell</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-improving-event-reporting-am-106582?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds More is Better: Improving Event Reporting in Ambulatory Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-heart-failure-education-guid-106581?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Heart Failure Education: A Guide for Nurses</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-gut-microbiome-lessons-reim-106580?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Gut Microbiome: Lessons from the REIMAGINE Study, Mark Pimentel, MD, FRCP(C)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-nursing-advocacy-difference-106579?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Nursing Advocacy: How YOU Can Make a Difference</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-haiti-earthquake-reflection-106578?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Haiti after the Earthquake: A Reflection 10 Years, March 6, 2020</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-recent-advances-treatment-s-106577?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Recent Advances in the Treatment of Scleroderma, March 13, 2020</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-severe-acute-respiratory-sy-106576?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Severe Acute Respiratory Syndrome Coronavirus 2 COVID-19: Science Update, March 20, 2020</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-critical-thinking-bedside-i-106575?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Critical Thinking at the Bedside: Incorporating Uncertainty into your Practice and Teaching - April 24, 2020</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-force-nursing-innovation-dh--106574?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds The Force Within: Nursing Innovation and DH's First Nursing Micro Hackathon</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-sex-differences-obstructive-106573?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Sex Differences in Obstructive Sleep Apnea Why it Matters, May 8, 2020</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-senior-resident-internal-me-106572?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Senior Resident in Internal Medicine Research Presentations</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-implementing-telemedicine-c-106571?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Implementing Telemedicine in a Chronic Care Model</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-metoo-addressing-gender-ine-106570?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - #MeToo: Addressing Gender Inequity in Academic Medicine</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/lwww-talk-self-care-practical-care-ourselves-106568?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Self-Care: Practical Ways We Can Take Care of Ourselves and Each Other</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-department-medicine-scholar-106569?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Department of Medicine Scholarship Enhancement in Academic Medicine (SEAM) Project Reports</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/surgery-grand-rounds-june-19-2020-perioperative-m-106567?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Surgery Grand Rounds June 19, 2020 - Perioperative Management of Pain and Addiction in Patients with Opioid Use Disorder</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/internal-medicine-education-conference-2020-manag-106566?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">General Internal Medicine Education Conference 2020 - Management of Hepatitis C in Primary Care 6/25/2020</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-suddenly-meatless-tick-bite-106565?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Suddenly Meatless: How Tick Bites and Reactions to Red Meat are Changing the Paradigm of Food Allergy</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-covid-19-immunology-boot-ca-106564?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - COVID-19 as Immunology Boot Camp: Cytokine Release Syndrome &amp; Prospects for Therapy</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-ve-thunderstruck-106563?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Youve Been Thunderstruck!</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-endocrine-complications-ano-106562?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Endocrine Complications of Anorexia Nervosa</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-structural-inequity-racial--106561?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Structural Inequity, Racial and Ethnic Disparities and Infectious Diseases: Are There Sustainable Solutions?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-frail-adults-106560?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Frail Older Adults and How to Find Them</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-pressure-hyperbaric-oxygen--106559?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Under Pressure: Should We Give Hyperbaric Oxygen to COVID-19 Patients?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-leveraging-education-techno-106557?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Leveraging Education Technology in our Brave New Medical Education World</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-unconscious-bias-106558?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Unconscious Bias</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-department-medicine-reports-106556?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Department of Medicine Case Reports</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-changing-culture-surrounding-106555?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Changing the Culture Surrounding Mental Illness: It's Way Past Time</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/perioperative-patient-care-leadership-106554?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Perioperative Patient Care: Leadership in the OR</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-covid-19-mission-operation-g-106553?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds COVID-19 Mission: Operation Gotham</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-unconscious-bias-106552?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Unconscious Bias: Where are We Now?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/virtual-conversations-justice-equity-bioethics-pa-106551?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Virtual Conversations in Justice and Equity in Bioethics Part 1 of 3: Challenging Patient Encounters: Psychologically Informed Patient and Family Centered Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-myths-evidence-future-tobac-106550?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Myths, Evidence, and the Future of Tobacco Treatment</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-nurse-leadership-advocacy-ac-106549?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Year of the Nurse: A Year of Leadership, Advocacy and Activism</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-decision-colonoscopy-adults-106548?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - When is Enough, Enough? Decision Making Around Colonoscopy in Older Adults</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-pulmonary-fibrosis-epitheli-106547?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Pulmonary Fibrosis - How Epithelial Cells and Fibroblasts Use the Same Language to Drive Each Other Mad</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-nicotine-addiction-101-106546?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Nicotine Addiction 101: What is it and why is it important to you?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/virtual-conversations-justice-equity-bioethics-pa-106545?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Virtual Conversations in Justice and Equity in Bioethics Part 2 of 3: Equity in the COVID-19 Pandemic</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-single-payer-106544?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Why We Need Single Payer</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-intersection-human-trafficki-106543?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds The Intersection of Human Trafficking and Domestic Violence: Is it DV or Could It Be Trafficking?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-part-2-changing-culture-surr-106542?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Part 2 Changing the Culture Surrounding Mental Illness: It's Way Past Time</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-emerging-science-transform--106541?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - How Emerging Science Can Transform Obesity Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-cultivating-empathy-medicin-106540?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Cultivating Empathy in Medicine: What Would Dr. Matthews Say? The Louis B. Matthews Visiting Professorship</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-opioids-pain-management-pre-106539?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Opioids and Pain Management: Preventing Harm and Maximizing Benefit</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/virtual-conversations-justice-equity-bioethics-pa-106538?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Virtual Conversations in Justice and Equity in Bioethics Part 3 of 3: Racism and Health Equity: Why Does it Matter in Bioethics?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-consult-conflict-medicine-106537?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Consult Conflict in Medicine</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-education-practice-partnersh-106536?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Education and Practice Partnerships in Nursing Education: The Capstone Experience in the RNBS Program at CSC</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-art-human-lived-ex-106535?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds The Art of Being Human:The Lived Experience of People with Disabilities</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-neuro-axis-fire-checkpoint--106534?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Neuro-Axis on Fire: Checkpoint Inhibitor Neuritis / Encephalitis and CAR-T Neurotoxicity. How fast can it burn?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/developing-trauma-informed-practice-part-series-106533?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Developing a Trauma-Informed Practice: Four Part Series</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-part-3-changing-culture-surr-106532?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Part 3 - Changing the Culture Surrounding Mental Illness: It's Way Past Time</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-team-based-learning-enginee-106530?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Team-Based Learning: Engineering Human Performance through Collaboration</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-team-based-learning-engineer-106531?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Team-Based Learning: Engineering Human Performance Through Collaboration (Combined with Medicine Grand Rounds)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/pediatric-lecture-series-baron-munchausen-medical-106529?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Pediatric Lecture Series - Baron Munchausen to Medical Child Abuse</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-anti-racism-healthcare-heal-106528?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Anti-Racism, Healthcare, and Health Policy: How far can we go?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-public-health-dermatology-p-106527?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Public Health and Dermatology From Policy to Pox</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/geriatric-education-series-appropriate-prescribin-106526?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Geriatric Education Series - Appropriate Prescribing Practices for Opioids for Pain Management in Older Adults</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/perianesthesia-procedural-topics-operating-room-a-106523?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Perianesthesia and Procedural Topics Non-Operating Room Anesthesia</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/perianesthesia-procedural-topics-duty-patient-ali-106524?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Perianesthesia and Procedural Topics Duty to Patient: Aligns Standards with Clinical Case Scenarios</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/perianesthesia-procedural-topics-team-nursing-106525?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Perianesthesia and Procedural Topics Team Nursing</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/pediatric-lecture-series-caring-adolescents-eatin-106522?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Pediatric Lecture Series - Caring for Adolescents with Eating Disorders in Northern New England</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-heart-failure-preserved-eje-106521?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Heart Failure with Preserved Ejection Fraction - A Misunderstood Disease in Search of a Therapy</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/surgery-grand-rounds-bias-assessment-treatment-pa-106520?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Surgery Grand Rounds - Bias in the Assessment and Treatment of Pain</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-virtually-science-practice--106519?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Virtually Better: The Science and Practice of Therapeutic Virtual Reality</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-education-practice-partnersh-106518?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Education and Practice Partnerships in Nursing Education: The Capstone Experience in the RNBS Program at CSC</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-serrated-pathway-colorectal-106517?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - The Serrated Pathway and Colorectal Cancer Screening</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-updates-polycystic-kidney-d-106516?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Updates in Polycystic Kidney Disease</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-aging-dying-prison-integrat-106515?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Aging and Dying in Prison: Integrating Geriatrics and Palliative Care into Criminal Justice Reform</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-night-violence-brain-injurie-106513?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Just Another Night of Violence: Brain Injuries from Intimate Partner Violence in New Hampshire</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-department-medicine-scholar-106514?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Department of Medicine Scholarship Enhancement in Academic Medicine (SEAM) Project Reports</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-shattering-silence-rape-trau-106511?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Shattering Silence: Rape Trauma Circa 2021</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/vaccine-anxiety-children-106512?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Vaccine Anxiety in Children</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-empathy-physician-covid-res-106510?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Empathy for the Physician: How COVID Has Reshaped Our Relationships and Lives</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-covid-19-lessons-learned-ov-106508?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - COVID-19: Lessons Learned Over the Past Year. Can We Do Better?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-part-4-changing-culture-surr-106509?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Part 4 - Changing the Culture Surrounding Mental Illness: It's Way Past Time</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/psychiatry-grand-rounds-physician-training-prospe-106507?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Psychiatry Grand Rounds - Physician Training: A Prospective Model to Understand How Stress Leads to Depression</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-exam-table-106506?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - From the Other Side of the Exam Table</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-happy-100th-anniversary-insu-106505?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Happy 100th Anniversary to Insulin! Diabetes Update 2021</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/holistic-care-webinar-introduction-clinical-hypno-106504?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Holistic Care Webinar: Introduction to Clinical Hypnosis - Strategies and Skills for Stress Reduction and Improved Communication</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-embedding-clinical-trials-c-106503?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Embedding Clinical Trials within Clinical Care: The Future of Learning Healthcare Systems</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/virtual-conversations-justice-equity-bioethics-co-106502?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Virtual Conversations in Justice and Equity in Bioethics: Controversies Around COVID-19 Vaccines</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-excessive-alcohol-nurse-s-ro-106501?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Excessive Alcohol Use: Nurse's Role in Screening, Brief Intervention (Advice) &amp; Referral for Treatment</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/fourth-annual-dartmouth-hitchcock-nursing-researc-106498?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Fourth Annual Dartmouth-Hitchcock Nursing Research Symposium - Keynote: Bedside to Bench to Bedside: Nursing Research to Inform Practice (Part 1 of 3)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/fourth-annual-dartmouth-hitchcock-nursing-researc-106499?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Fourth Annual Dartmouth-Hitchcock Nursing Research Symposium - What Can We Do By Next Tuesday? Bringing It All Together and Not Losing Steam (Part 3 of 3)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/fourth-annual-dartmouth-hitchcock-nursing-researc-106500?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Fourth Annual Dartmouth-Hitchcock Nursing Research Symposium - Tackling a problem: Panel on Research, Evidence-Based Practice, and Quality Improvement (Part 2 of 3)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/innovation-nursing-transforming-care-nurse-time-106496?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Innovation in Nursing: Transforming Care One Nurse at a Time!</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-personalized-therapeutics-m-106497?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Personalized Therapeutics Moving Beyond Precision Medicine</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/leadership-lessons-legends-106495?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Leadership Lessons from Legends</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/leadership-evolving-journey-mission-values-leadin-106494?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Leadership as an Evolving Journey: Mission and Values in Leading Others</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/becoming-106493?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Who are you BECOMING?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-resident-research-presentat-106492?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Resident Research Presentations</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-limited-english-proficient-p-106491?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Working with Limited English Proficient Patients and Interpreter Services at Dartmouth-Hitchcock</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/dh-ambulatory-nursing-presents-ambulatory-nurses--106490?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">DH Ambulatory Nursing Presents - Ambulatory Nurses and Innovation: How Nurses Can Shape Healthcare</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/dh-ambulatory-nursing-presents-professional-teleh-106488?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">DH Ambulatory Nursing Presents - Professional Telehealth Nursing: More than a Question, Click, and Conclusion</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-equity-efficiency-icu-triag-106489?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Equity, Efficiency, and ICU Triage during the COVID-19 Pandemic</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/shared-decision-youth-treated-psychotropic-medica-106487?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Shared Decision Making for Youth Treated with Psychotropic Medications</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/dh-ambulatory-nursing-presents-pandemic-help-driv-106486?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">DH Ambulatory Nursing Presents - How the Pandemic can Help us Drive the Implementation of Team-Based Care at DH-H</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-nursing-burnout-coping-strat-106485?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Nursing Burnout and Coping Strategies</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/psychiatry-grand-rounds-treatment-people-inject-d-106484?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Psychiatry Grand Rounds - Treatment of People Who Inject Drugs Hospitalized for Serious Infection</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/dh-ambulatory-nursing-presents-art-nursing-creati-106483?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">DH Ambulatory Nursing Presents The Art of Nursing: Creativity, Growth and Innovation</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-post-acute-sequelae-covid-1-106482?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Post-Acute Sequelae of COVID-19: Lessons in Clinical Care and Health Care Delivery Science</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-discovering-vexas-science-t-106481?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Discovering VEXAS: the Science of Team Science</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-part-5-changing-culture-surr-106480?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Part 5 - Changing the Culture Surrounding Mental Illness: It's Way Past Time</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-minimal-trauma-fractures-os-106479?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Minimal trauma fractures and osteoporosis, deadly but ignored...how do we solve this?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/department-surgery-grand-rounds-responsible-opioi-106478?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Department of Surgery Grand Rounds - Responsible Opioid Prescribing After Surgery</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-structural-heart-disease-in-106477?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Structural Heart Disease: Innovation, Implementation &amp; Interdisciplinary Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-found-holy-grail-blood-thin-106475?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Have We Found the Holy Grail of Blood Thinners?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-webinar-creating-t-106476?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Webinar - Creating a Trans Affirming Environment: Use of Gender Appropriate Language at Dartmouth-Hitchcock</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106462?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative Medication Assisted Treatment in Vermont Correctional Facilities</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106463?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Long-Term OUD Medication Management</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106464?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative Providing Care Coordination and Medication to Treat Pregnant and Post-pregnant People for OUD</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106465?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative MAT and Telemedicine</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106466?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Treating Alcohol Use Disorder in Patients Receiving Medication for OUD</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106467?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Developing a Stress Resilient Workforce</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106468?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Impact of Opioid Use Disorders on Children and Families</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106469?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Intersections of Intimate Partner Violence, Opioids, and Trauma: Theory to Practice</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106470?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Health Disparities &amp; Partner Agencies</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106471?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL - Advanced Opioid Use Disorder X-waiver Team Learning Collaborative: Opioid Use Disorders Co-morbid with Alcohol, Sedative, Stimulant, or Tobacco Use Disorders: A Person Centered Approach</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106472?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative: Managing Injection Behaviors: The Partial Responder to MAT</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106473?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative: Co-occurring Mental Illness and Substance Use</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-enduring-material-toxicology-testing-risk-str-106474?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL Enduring Material - Toxicology Testing and Risk Stratification Considerations</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/putting-trauma-informed-care-practice-perinatal-s-106461?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Putting Trauma-Informed Care into Practice in the Perinatal Setting (Part 1 of 3) - Foundations for Trauma Informed Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/psychiatry-grand-rounds-social-justice-mental-hea-106460?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Psychiatry Grand Rounds - Social (In)justice and Mental Health</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/putting-trauma-informed-care-practice-perinatal-s-106458?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Putting Trauma-Informed Care into Practice in the Perinatal Setting (Part 2 of 3) - Caring with Compassion Building Skills for Trauma-Responsive Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-interpreter-services-dartmou-106459?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Interpreter Services at Dartmouth-Hitchcock: A Deeper Dive</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/internal-medicine-education-conference-primary-ca-106457?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">General Internal Medicine Education Conference - Primary Care Education - Integrated Mental Health: Evidence, Policy, and Implementation</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/holistic-care-webinar-essential-oil-therapy-nursi-106456?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Holistic Care Webinar: Essential Oil Therapy for Nursing Practice</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/psychiatry-grand-rounds-understanding-addressing--106455?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Psychiatry Grand Rounds - Understanding and Addressing the Psychosocial Needs of Trans and Non-Binary Patients: An Affirming, Effective, and Research-Based Approach</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-trauma-informed-care-106453?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Trauma Informed Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/putting-trauma-informed-care-practice-perinatal-s-106454?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Putting Trauma-Informed Care into Practice in the Perinatal Setting (Part 3 of 3) - Birth Trauma Mitigation and Use of the Plan of Safe Care in Supportive Communication</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-bob-cimis-memorial-lecture--106452?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - The Bob Cimis Memorial Lecture - Challenges and Progress Towards the Prevention of Pancreatic Cancer</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-getting-basics-caring-stroke-106451?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Getting Back to the Basics: Caring for Stroke Patients at Dartmouth-Hitchcock</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-detection-pulmonary-fibrosi-106449?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Early Detection of Pulmonary Fibrosis</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-part-6-changing-culture-surr-106450?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Part 6 - Changing the Culture Surrounding Mental Illness: It's Way Past Time</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-finding-oasis-food-deserts-f-106448?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Finding the Oasis in Food Deserts: Food Access Awareness and Budget Conscious Nutrition</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-cardiovascular-disease-canc-106446?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Cardiovascular Disease and Cancer: Cross-Disease Communication</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-caring-victims-fatal-strangu-106447?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Caring for Victims of Non-fatal Strangulation</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/lung-cancer-screening-update-call-action-106445?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Lung Cancer Screening: An Update and Call to Action</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-healing-intention-106444?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Healing with Intention</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/51st-meeting-nh-vt-ethics-committees-navigating-d-106440?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 51st Meeting of the NH/VT Ethics Committees: Navigating Decision-Making Capacity amid Mental Illness Capacity Assessment Part 1 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/51st-meeting-nh-vt-ethics-committees-navigating-d-106441?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 51st Meeting of the NH/VT Ethics Committees: Navigating Decision-Making Capacity amid Mental Illness Eating Disorders Part 2 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/51st-meeting-nh-vt-ethics-committees-navigating-d-106442?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 51st Meeting of the NH/VT Ethics Committees: Navigating Decision-Making Capacity amid Mental Illness Ulysses Clause Part 4 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/51st-meeting-nh-vt-ethics-committees-navigating-d-106443?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 51st Meeting of the NH/VT Ethics Committees: Navigating Decision-Making Capacity amid Mental Illness Uncomfortable Ethical Quandaries Inherent When Psychiatrically Ill Children are Boarded on Non-psychiatric Pediatric Floors Part 3 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-medical-consequences-climat-106439?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Medical Consequences of Climate Change</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/secondary-traumatic-stress-burnout-106437?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Secondary Traumatic Stress and Burnout</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/laying-groundwork-adverse-childhood-experiences-a-106438?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Laying the Groundwork: Adverse Childhood Experiences (ACEs) and their Impact</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-questions-colorectal-cancer-106436?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Open Questions in Colorectal Cancer Screening</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-2021-ada-standards-care-over-106435?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds The 2021 ADA Standards of Care: An Overview of Diabetes Classifications and the Use of Technology in Diabetes Management</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/internal-medicine-primary-care-education-conferen-106434?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">General Internal Medicine and Primary Care Education Conference - Treating Unhealthy Alcohol Use: What's Our Disorder?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-action-plan-gender-equity-d-106432?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - An Action Plan toward Gender Equity in a Department of Medicine</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-thriving-life-quake-106433?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds - Thriving After a Life-Quake</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-nursing-research-self-effica-106431?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Nursing Research Self-Efficacy at an Academic Medical Center</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-insulin-100-historical-pers-106430?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Insulin @ 100: A Historical Perspective</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-cardiovascular-safety-urate-106429?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Cardiovascular Safety of Urate-Lowering Drugs in Gout</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-education-practice-partnersh-106428?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Education and Practice Partnerships in Nursing Education: The Capstone Experience in the RNBS Program at CSC</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/chad-pediatric-lecture-series-gerd-guidelines-con-106427?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CHaD Pediatric Lecture Series - GERD: Latest Guidelines and Controversies</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/wicked-pissah-update-management-male-voiding-symp-106426?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Wicked Pissah Update on Management of Male Voiding Symptoms</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/medicine-grand-rounds-immune-related-toxicities-i-106425?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Medicine Grand Rounds - Immune-Related Toxicities with Immune Checkpoint Inhibitors</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106422?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Treating HCV in Spokes</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-advanced-opioid-disorder-waiver-team-learning-106423?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL: Advanced Opioid Use Disorder X-waiver Team Learning Collaborative - Buprenorphine &amp; Diversion: The Vermont Regulatory Environment</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/axl-opioid-disorder-waiver-team-learning-collabor-106424?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">AXL - Opioid Use Disorder X-waiver Team Learning Collaborative - Pain Treatment in Substance Use Disorders</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/internal-medicine-education-conference-primary-ca-106421?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">General Internal Medicine Education Conference - Primary Care Education - Osteoporosis related fractures;Deadly but Ignored.....A way forward</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/help-helpers-building-foundation-trauma-informed--106420?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Help for the Helpers: Building a Foundation for Trauma Informed Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-webinar-human-traf-106419?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Webinar - Human Trafficking Awareness with Homeland Security: NH Updates</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/calming-de-escalation-106418?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Calming and De-Escalation</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/link-trauma-substance-misuse-strategies-address-m-106417?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Link Between Trauma and Substance Misuse: Strategies to Address This in Medical Practice</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/chad-pediatric-lecture-series-our-student-s-emoti-106416?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CHaD Pediatric Lecture Series - Our Student's Emotional and Behavioral Health: Improving Collaboration Between Schools, Families, and Physicians by Focusing on the Child</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/trauma-informed-primary-care-106415?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Trauma-Informed Primary Care</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-nurses-critical-role-enhanci-106414?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds Nurses Critical Role in Enhancing Health Literacy</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-innovation-translation-pract-106413?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds - Innovation: Translation into Practice</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-trauma-webinar-series-part-kinematics-trauma-106412?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Trauma Webinar Series - Part One: Kinematics of Trauma</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/chad-pediatric-lecture-series-communication-adver-106411?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CHaD Pediatric Lecture Series - Communication after Adverse Events</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/16th-ethics-committee-training-day-section-six-si-106405?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 16th Ethics Committee Training Day Section Six of Six - Ethics Simulation: A Collaborative Practice of an Ethics Consultation (Must complete sessions 1 5 before registering for this session)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/16th-ethics-committee-training-day-section-five-s-106406?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 16th Ethics Committee Training Day Section Five of Six - Surrogate Decision Making</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/16th-ethics-committee-training-day-section-six-in-106407?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 16th Ethics Committee Training Day Section Four of Six - Informed Consent</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/16th-ethics-committee-training-day-section-six-ex-106408?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 16th Ethics Committee Training Day - Section Three of Six Exploring the Ethical Foundation for Ethics Committees</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/16th-ethics-committee-training-day-section-six-he-106409?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 16th Ethics Committee Training Day Section Two of Six - What is a Healthcare Ethics Committee</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/16th-ethics-committee-training-day-section-six-co-106410?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 16th Ethics Committee Training Day - Section One of Six - Common Presentations of Ethical Concerns brought to a Clinical Ethics Committee</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nursing-grand-rounds-hope-design-thinking-nurse-i-106404?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nursing Grand Rounds: HOPE Design Thinking for Nurse Innovators</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-webinar-series-add-106403?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Webinar Series Addressing Sexual Violence: Working Together to Support Survivors (Advocacy) Session 1 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-trauma-webinar-series-part-massive-transfusi-106402?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Trauma Webinar Series Part Two: Massive Transfusion in Traumatically Injured Adults and Children</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/52nd-meeting-vt-nh-ethics-committees-ethics-ratio-106401?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 52nd Meeting of the VT and NH Ethics Committees The Ethics of Rationing</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-webinar-series-add-106400?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Webinar Series Addressing Sexual Violence: Working Together to Support Survivors (SANE &amp; Law Enforcement) Session 2 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/chad-pediatric-lecture-series-female-athlete-tria-106399?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CHaD Pediatric Lecture Series - Female Athlete Triad 2022: Optimizing Bone Health in Active Female Adolescents</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/app-precepting-workshop-4-14-2022-106398?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">APP Precepting Workshop - 4-14-2022</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-webinar-series-add-106397?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Webinar Series Addressing Sexual Violence: Working Together to Support Survivors (Title IX &amp; College Advocacy) Session 3 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/nonalcoholic-fatty-liver-disease-106396?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Nonalcoholic Fatty Liver Disease</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-webinar-series-add-106395?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Webinar Series Addressing Sexual Violence: Working Together to Support Survivors (Child Advocacy Model in Child Abuse Case) Session 4 of 4</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/tell-healthcare-providers-106394?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Know &amp; Tell for Healthcare Providers</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-holistic-care-webinar-combustion-avoidance-c-106393?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Holistic Care Webinar Combustion Avoidance: Communication Strategies to Prevent Interpersonal Conflict</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-nursing-leadership-webinar-series-nurse-lead-106391?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Nursing Leadership Webinar Series: When Nurse Leaders Speak, Legislators Listen</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/chad-pediatric-lecture-series-teen-brain-decision-106392?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CHaD Pediatric Lecture Series - The Teen Brain: Decision making, assent, and confidentiality</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/pediatric-grand-rounds-tackling-nation-s-overdose-106390?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Pediatric Grand Rounds - Tackling the Nation's Overdose Crisis: The Role of Pediatric Providers, 5/18/22</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-nursing-leadership-webinar-series-part-learn-106389?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Nursing Leadership Webinar Series - Part Three: What I Learned about Moving a Medical Center (and How it Impacted the Rest of My Nursing Career)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-trauma-webinar-series-part-acute-burn-care-2-106388?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Trauma Webinar Series Part Three: Acute Burn Care - The First 24 Hours</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/chad-pediatric-lecture-series-pediatric-covid-upd-106387?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">CHaD Pediatric Lecture Series - Pediatric COVID Update</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-trauma-webinar-series-part-geriatric-trauma--106386?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Trauma Webinar Series Part Four: Geriatric Trauma The Rising Tide</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/echo-climate-health-towards-climate-informed-care-106385?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">ECHO Climate &amp; Health: Towards Climate-Informed Care &amp; Advocacy</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/treatment-complex-chronic-pain-opioids-helping-hu-106384?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Treatment of Complex Chronic Pain: Are Opioids Helping or Hurting?</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/interprofessional-grand-rounds-s-wrong-s-trauma-106383?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Interprofessional Grand Rounds Nothing's wrong with them! It's Trauma</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li><li><a href="https://www.classcentral.com/course/2022-trauma-webinar-series-part-five-organ-donati-106382?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The 2022 Trauma Webinar Series: Part Five Organ Donation</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em></li></ul><h2 id="educa-o-e-ensino-23-"><strong>Educação e Ensino (23)</strong></h2><ul><li><a href="https://www.classcentral.com/course/edx-leaders-of-learning-2027?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Leaders of Learning</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(19)</li><li><a href="https://www.classcentral.com/course/usuniversities-1620?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Applying to U.S. Universities</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(10)</li><li><a href="https://www.classcentral.com/course/edref-2793?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">American Education Reform: History, Policy, Practice</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(9)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-family-engagement-in-education-6513?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Family Engagement in Education</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(8)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-1-history-and-politics-of-u-s-education-2365?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Saving Schools Mini-Course 1: History and Politics of U.S. Education</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/edx-the-science-of-learning-what-every-teacher-should-know-5725?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Science of Learning - What Every Teacher Should Know</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★★(2)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-reforming-the-u-s-education-system-8616?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Saving Schools: Reforming the U.S. Education System</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-introduction-to-data-wise-a-collaborative-process-to-improve-learning-teaching-3395?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Data Wise: A Collaborative Process to Improve Learning &amp; Teaching</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-3-accountability-and-national-standards-2695?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Saving Schools, Mini-Course 3: Accountability and National Standards</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-4-school-choice-2696?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Saving Schools Mini-Course 4: School Choice</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-saving-schools-mini-course-2-teacher-policies-2812?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Saving Schools, Mini-Course 2: Teacher Policies</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/classdiscussion-7421?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Orchestrating Whole Classroom Discussion</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-teaching-learning-in-the-diverse-classroom-15171?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Teaching &amp; Learning in the Diverse Classroom</a>, da <em>Universidade de</em> <em><em>Cornell</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/canvas-network-analytics-in-course-design-leveraging-canvas-data-he-6668?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Analytics in Course Design: Leveraging Canvas Data (HE)</a>, da <em>Faculdade de</em> <em><em>Dartmouth</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/edx-biograph-teaching-biology-through-systems-models-argumentation-13796?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">BioGraph: Teaching Biology Through Systems, Models, &amp; Argumentation</a>, do <em>Instituto de Tecnologia de</em> <em><em>Massachusetts</em></em></li><li><a href="https://www.classcentral.com/course/edx-understanding-classroom-interaction-7198?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Understanding Classroom Interaction</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/edx-innovating-instruction-reimagining-teaching-with-technology-8019?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Innovating Instruction: Reimagining Teaching with Technology</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-attaining-higher-education-13336?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Attaining Higher Education</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-inclusive-teaching-supporting-all-students-in-the-college-classroom-13690?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Inclusive Teaching: Supporting All Students in the College Classroom</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/learning-success-21907?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Learning Success</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-university-studies-for-student-veterans-9129?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">University Studies for Student Veterans</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/supporting-veteran-success-in-higher-education-62878?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Supporting Veteran Success in Higher Education</a>, da <em>Universidade de</em> <em><em>Columbia</em></em></li><li><a href="https://www.classcentral.com/course/edx-an-introduction-to-evidence-based-undergraduate-stem-teaching-6994?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">An Introduction to Evidence-Based Undergraduate STEM Teaching</a>, da <em>Universidade de</em> <em><em>Cornel</em>l</em></li></ul><h2 id="desenvolvimento-pessoal-16-"><strong>Desenvolvimento Pessoal (16)</strong></h2><ul><li><a href="https://www.classcentral.com/course/wharton-communication-skills-8235?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Improving Communication Skills</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(25)</li><li><a href="https://www.classcentral.com/course/negotiation-4336?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Introduction to Negotiation: A Strategic Playbook for Becoming a Principled and Persuasive Negotiator</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(13)</li><li><a href="https://www.classcentral.com/course/positive-psychology-resilience-8331?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Positive Psychology: Resilience Skills</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(7)</li><li><a href="https://www.classcentral.com/course/edx-rhetoric-the-art-of-persuasive-writing-and-public-speaking-16993?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Rhetoric: The Art of Persuasive Writing and Public Speaking</a>, da <em>Universidade de</em> <em><em>Harvard</em></em> ★★★★☆(5)</li><li><a href="https://www.classcentral.com/course/wharton-succcess-6893?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Success</a> da <em>Universidade da Pensilvânia</em> ★★★★★(5)</li><li><a href="https://www.classcentral.com/course/remote-work-37070?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Remote Work Revolution for Everyone</a>, da <em>Faculdade de Negócios de</em> <em><em>Harvard</em> </em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/removing-barriers-to-change-20203?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Removing Barriers to Change</a>, da <em>Universidade da Pensilvânia</em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/do-good-feel-good-58183?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Science of Generosity: Do Good...Feel Good</a>, da <em>Universidade da Pensilvânia</em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/managing-emotions-uncertainty-stress-22856?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Managing Emotions in Times of Uncertainty &amp; Stress</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/-genius-106126?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Nature of Genius</a>, da <em>Universidade de</em> <em><em>Yale</em></em> ★★★★★(1)</li><li><a href="https://www.classcentral.com/course/edx-find-your-calling-career-transition-principles-for-returning-veterans-12258?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Find Your Calling: Career Transition Principles for Returning Veterans</a>, da <em>Universidade de</em> <em><em>Columbia</em></em> ★★★★☆(1)</li><li><a href="https://www.classcentral.com/course/building-personal-resilience-managing-anxiety-and-120495?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">[New] Building Personal Resilience: Managing Anxiety and Mental Health</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/managing-happiness-65624?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Managing Happiness</a>, da <em>Universidade de</em> <em><em>Harvard</em></em></li><li><a href="https://www.classcentral.com/course/the-science-of-generosity-do-goodfeel-good-48153?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">The Science of Generosity: Do Good…Feel Good</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/wharton-online-negotiations-58635?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">Negotiations</a>, da <em>Universidade da Pensilvânia</em></li><li><a href="https://www.classcentral.com/course/negotiation-ar-13419?utm_source=fcc_medium&amp;utm_medium=web&amp;utm_campaign=ivy_league_courses_2023">مقدمة عن التفاوض: دليل استراتيجي لتصبح مُفاوضًا ذا مبادئ ومُقنعًا</a> da <em>Universidade de</em> <em><em>Yale</em></em> (em árabe)</li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Os 8 melhores sites de desafios de código para ajudar a aperfeiçoar suas habilidades ]]>
                </title>
                <description>
                    <![CDATA[ Apesar da menor taxa de desemprego em décadas, analistas estimaram [https://www.techrepublic.com/article/tech-jobs-will-see-steady-growth-through-2023/]  que contratações no setor de tecnologia continuem crescendo de maneira estável durante a década de 2020 a 2030. Essa é uma ótima notícia para recém-formados em ciência da computação e desenvolvedores que atualmente trabalham na área, mas não ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/os-8-melhores-sites-de-desafios-de-codigo-para-ajudar-a-aperfeicoar-suas-habilidades/</link>
                <guid isPermaLink="false">63679e0d7e77d305f28da261</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Erika Freitas ]]>
                </dc:creator>
                <pubDate>Sun, 09 Apr 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/codingchallenge2020.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/the-8-most-popular-coding-challenge-websites-of-2020/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The 8 Best Coding Challenge Websites to Help You Level Up Your Skills in 2020</a>
      </p><p>Apesar da menor taxa de desemprego em décadas, <a href="https://www.techrepublic.com/article/tech-jobs-will-see-steady-growth-through-2023/" rel="noopener nofollow">analistas estimaram</a> que contratações no setor de tecnologia continuem crescendo de maneira estável durante a década de 2020 a 2030.</p><p>Essa é uma ótima notícia para recém-formados em ciência da computação e desenvolvedores que atualmente trabalham na área, mas não significa que engenheiros ambiciosos podem ser complacentes. </p><p>Embora haja, provavelmente, oportunidades de crescimento no mercado em geral, ainda há mudanças significativas acontecendo o tempo todo e um senso de urgência para acompanhar as últimas tendências.</p><p>Hoje, existem mais tipos de funções técnicas do que nunca e uma contínua proliferação de novas linguagens, &nbsp;<em>frameworks</em> e tecnologias. Colaboradores de áreas técnicas que desejam estar à frente devem testar e refinar constantemente suas habilidades.</p><p>Para isso, reuni a lista de plataformas abaixo nas quais você pode aprimorar suas habilidades para várias funções, da ciência de dados ao <em>devops</em>.</p><h1 id="1-freecodecamp"><strong><strong><strong><strong>1. freeCodeCamp</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://www.freecodecamp.org/portuguese/learn">Site</a> | <a href="https://forum.freecodecamp.org/c/portugues/534">Fórum</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/freecodecamp-hero.png" class="kg-image" alt="freecodecamp-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/freecodecamp-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/freecodecamp-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/freecodecamp-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/freecodecamp-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="713" loading="lazy"></figure><p>Vamos começar com o freeCodeCamp, que é um ótimo site para quem está iniciando em programação. Ele oferece diversos recursos para aprender sintaxe, praticar código, criar projetos e se preparar para entrevistas.</p><p>Eles não têm tantos desafios interativos de código quanto outros sites, mas oferecem alguns <a href="https://www.freecodecamp.org/portuguese/learn/">desafios</a> divertidos e preparação para entrevistas para os iniciantes em JavaScript.</p><h3 id="-timo-para"><strong>Ótimo para</strong></h3><p>Iniciantes que estão aprendendo a programar pela primeira vez. É um ótimo lugar para se aprender HTML, CSS e JavaScript de uma modo divertido e interativo.</p><h3 id="pre-o-conte-do-premium"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium </strong></em></strong></h3><p>O freeCodeCamp é totalmente gratuito.</p><h1 id="2-coderbyte"><strong><strong><strong><strong>2. Coderbyte</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://coderbyte.com/" rel="noopener nofollow">Website</a>| <a href="https://medium.com/coderbyte" rel="noopener">Blog</a> | <a href="https://dev.to/coderbyte" rel="noopener nofollow">Dev.to</a> | <a href="https://coderbyte.com/challenges" rel="noopener nofollow">Desafios gratuitos</a> | <a href="https://coderbyte.com/member" rel="noopener nofollow">Premium</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/coderbyte-hero.png" class="kg-image" alt="coderbyte-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/coderbyte-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/coderbyte-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/coderbyte-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/coderbyte-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1111" loading="lazy"></figure><p>Minha plataforma, a Coderbyte, oferece mais de 300 desafios de código para você resolver em um editor on-line, utilizando 10 linguagens de programação diferentes. Você pode acessar soluções oficiais, mais de 1,5 milhões de soluções de usuários e ler artigos sobre como resolver os desafios de maneira eficiente.</p><p>A Coderbyte é recomendada pelos principais <a href="https://getcoding.hackreactor.com/coderbyte/" rel="noopener nofollow">bootcamps de código</a> (em inglês) e empresas, por ter uma coleção de desafios preparatórios para entrevistas.</p><h3 id="-timo-para-1"><strong>Ótimo para</strong></h3><p>A Coderbyte é perfeita para pessoas que estão entre as fases iniciais e intermediárias de suas carreiras e se preparando para entrevistas. Contém, também, uma biblioteca de desafios mais difíceis para aqueles que gostam de resolver desafios de código por diversão, mas esse não é um site voltado para programadores competitivos. </p><h3 id="pre-o-conte-do-premium-1"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Há diversos de desafios gratuitos na Coderbyte, centenas de desafios premium e mais de 1 milhão de soluções de usuário disponíveis para <a href="https://coderbyte.com/member" rel="noopener nofollow">membros</a>.</p><h1 id="3-leetcode"><strong><strong><strong><strong>3. LeetCode</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://leetcode.com/" rel="noopener nofollow">Site</a> | <a href="https://leetcode.com/discuss/interview-question?currentPage=1&amp;orderBy=hot&amp;query=" rel="noopener nofollow">Discussão</a> | <a href="https://leetcode.com/problemset/all/" rel="noopener nofollow">Desafios gratuitos</a> | <a href="https://leetcode.com/subscribe/" rel="noopener nofollow">Premium</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/leetcode-hero.png" class="kg-image" alt="leetcode-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/leetcode-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/leetcode-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/leetcode-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/leetcode-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1119" loading="lazy"></figure><p>A LeetCode tem, atualmente, uma das melhores coleções de desafios de código on-line. Os tópicos que abordam exigem conhecimento de estrutura de dados como árvores binárias, <em>heaps</em>, &nbsp;listas encadeadas, entre outros. Por isso, seus desafios são um pouco mais avançados do que os de outros sites. Eles, porém, são ótimos desafios, se usados como preparação para entrevistas de engenharia de software.</p><p>Eles também têm uma seção de <a href="https://leetcode.com/interview/" rel="noopener nofollow">entrevista simulada</a> que é especifica para preparação para entrevistas de emprego. Eles também organizam seu próprio <a href="https://leetcode.com/contest/" rel="noopener nofollow">concurso de código</a> e possuem um ótimo <a href="https://leetcode.com/discuss/interview-question?currentPage=1&amp;orderBy=hot&amp;query=" rel="noopener nofollow">fórum de discussão</a> onde as pessoas falam sobre perguntas feitas em entrevistas, empregos, remuneração e outros tópicos relacionados à engenharia. </p><h3 id="-timo-para-2"><strong>Ótimo para</strong></h3><p>A LeetCode é ótima para programadores intermediários a avançados. Talvez não seja adequada para iniciantes que ainda não sabem como escrever loops básicos, mas, após aprender os fundamentos, é um ótimo site para se praticar programação.</p><h3 id="pre-o-conte-do-premium-2"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Existem desafios gratuitos disponíveis na LeetCode e, também, uma assinatura <a href="https://leetcode.com/subscribe/" rel="noopener nofollow">premium</a>, que dá acesso a mais desafios e outros recursos da plataforma.</p><h1 id="4-edabit"><strong><strong><strong><strong>4. Edabit</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://edabit.com/" rel="noopener nofollow">Site</a> | <a href="https://dev.to/edabit" rel="noopener nofollow">Blog</a> | <a href="https://edabit.com/challenges" rel="noopener nofollow">Desafios</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/edabit-hero.png" class="kg-image" alt="edabit-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/edabit-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/edabit-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/edabit-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/edabit-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="975" loading="lazy"></figure><p>Essa é a primeira vez que o Edabit aparece na nossa lista! Ele cresceu em popularidade em anos passados e os desenvolvedores parecem realmente gostar dos desafios. Oferece uma grande coleção, com mais de 4 mil desafios, que podem ser solucionados on-line em diversas linguagens.</p><p>Atualmente, o site oferece apenas desafios com interação de código on-line — não há fóruns de discussão, artigos, soluções de usuários ou entrevistas simuladas como em outros sites — mas, com o tempo, eles podem adicionar algumas dessas opções.</p><h3 id="-timo-para-3"><strong>Ótimo para</strong></h3><p>O Edabit é ótimo para iniciantes que buscam praticar suas habilidades diariamente resolvendo pequenos desafios. Depois de atingir o nível intermediário, outros sites oferecem desafios mais difíceis e mais conteúdos voltados para programação competitiva e entrevistas de emprego.</p><h3 id="pre-o-conte-do-premium-3"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Todos os desafios no Edabit são gratuitos e não há opção premium.</p><h1 id="5-codewars"><strong><strong><strong><strong>5. Codewars</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://www.codewars.com/" rel="noopener nofollow">Site</a> | <a href="https://medium.com/@Codewars" rel="noopener">Blog</a> | <a href="https://www.codewars.com/kata/latest/my-languages" rel="noopener nofollow">Desafios gratuitos</a> | <a href="https://www.codewars.com/subscribe" rel="noopener nofollow">Premium</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/codewars-hero.png" class="kg-image" alt="codewars-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/codewars-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/codewars-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/codewars-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/codewars-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="978" loading="lazy"></figure><p>O Codewars oferece uma grande coleção de desafios de código enviados e editados por sua própria comunidade. Você pode solucionar os desafios on-line no editor do site usando mais de 20 linguagens de programação. Pode, também, visualizar a discussão de cada desafio, assim como as soluções dos usuários. Além disso, você pode ganhar pontos e subir no ranking resolvendo os desafios.</p><h3 id="-timo-para-4"><strong>Ótimo para</strong></h3><p>O Codewars é ótimo para pessoas nas fases iniciante e intermediária. Os desafios são criados pela comunidade então você verá diferentes tipos de desafios de código.</p><h3 id="pre-o-conte-do-premium-4"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Eles oferecem todos os desafios criados pela comunidade de maneira gratuita e a assinatura <a href="https://www.codewars.com/subscribe" rel="noopener nofollow">premium</a> dá acesso a alguns recursos interessantes da plataforma.</p><h1 id="6-hackerrank"><strong><strong><strong><strong>6. HackerRank</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://www.hackerrank.com/" rel="noopener nofollow">Site</a> | <a href="https://blog.hackerrank.com/" rel="noopener nofollow">Blog</a> | <a href="https://www.hackerrank.com/dashboard" rel="noopener nofollow">Desafios</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/hackerrank-hero.png" class="kg-image" alt="hackerrank-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/hackerrank-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/hackerrank-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/hackerrank-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/hackerrank-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1059" loading="lazy"></figure><p>O HackerRank tem uma vasta coleção de desafios de código orientados para algoritmos e estrutura de dados, junto com material de preparação para entrevistas, um fórum de discussão para cada desafio e uma lista das principais soluções de usuário. Eles têm desafios para outros tópicos, como programação funcional, IA, Shell, SQL e muito mais.</p><h3 id="-timo-para-5"><strong>Ótimo para</strong></h3><p>O HackerRank é ótimo para programadores intermediários a avançados que já aprenderam o básico de uma linguagem e estão prontos para solucionar problemas mais complicados. Os desafios são escritos com notação matemática e, às vezes, podem ser um pouco confusos. Por essa razão, pode não ser bom para desenvolvedores iniciantes.</p><h3 id="pre-o-conte-do-premium-5"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Todos os desafios no HackerRank são gratuitos e não há opção premium. </p><h1 id="7-topcoder"><strong><strong><strong><strong>7. TopCoder</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://www.topcoder.com/" rel="noopener nofollow">Site</a> | <a href="https://www.topcoder.com/blog/" rel="noopener nofollow">Blog</a> | <a href="https://www.topcoder.com/challenges" rel="noopener nofollow">Desafios</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/topcoder-hero.png" class="kg-image" alt="topcoder-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/topcoder-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/topcoder-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/topcoder-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/topcoder-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="754" loading="lazy"></figure><p>A TopCoder é uma das plataformas originais de programação competitiva on-line. Fornece uma lista de <a href="https://www.topcoder.com/challenges" rel="noopener nofollow">desafios</a> de algoritmos de competições passadas, que você pode completar on-line por conta própria usando o editor de código do site. </p><p>Suas <em>Single Round Matches</em> (ou em português, "partidas de rodada única") são oferecidas algumas vezes por mês em um horário específico, onde você compete contra outras pessoas para solucionar os desafios. Aqui estão alguns <a href="https://www.topcoder.com/community/competitive-programming/tutorials/" rel="noopener nofollow">tópicos</a> que seus desafios podem abordar. </p><p>Além de resolver desafios on-line por diversão, eles oferecem competições <a href="https://www.topcoder.com/challenges/30111105" rel="noopener nofollow">patrocinadas</a>, onde você pode ganhar prêmios por escrever a melhor solução.</p><h3 id="-timo-para-6"><strong>Ótimo para</strong></h3><p>A TopCoder é mais indicada para programadores avançados, que estão confortáveis com a resolução de desafios algorítmicos que lidam com tópicos avançados, como busca de grafos e a teoria dos números.</p><h3 id="pre-o-conte-do-premium-6"><strong>Preço<strong>/</strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Todos os desafios na TopCoder são gratuitos e não há opção premium. </p><h1 id="8-codeforces"><strong><strong><strong><strong>8. Codeforces</strong></strong></strong></strong></h1><p>Links úteis: <a href="https://codeforces.com/" rel="noopener nofollow">Site</a> | <a href="https://codeforces.com/groups" rel="noopener nofollow">Grupos de discussão</a> | <a href="https://codeforces.com/problemset" rel="noopener nofollow">Desafios</a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/04/codeforces-hero.png" class="kg-image" alt="codeforces-hero" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/04/codeforces-hero.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/04/codeforces-hero.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2023/04/codeforces-hero.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/04/codeforces-hero.png 2000w" sizes="(min-width: 720px) 720px" width="2000" height="1072" loading="lazy"></figure><p>A Codeforces é, hoje, um dos principais sites de programação competitiva (há alguns anos, a TopCoder era onde a maioria dos programadores competitivos passavam o tempo). </p><p>Existem alguns <a href="https://codeforces.com/problemset" rel="noopener nofollow">problemas</a> que você pode solucionar como prática, mas não há um editor on-line. Em vez disso, você escreve sua solução em seu próprio editor e, depois, faz o <em>upload</em> para o sistema deles, onde eles testarão o seu código em um conjunto de casos de testes. </p><p>Eles também costumam realizar <a href="https://codeforces.com/contests" rel="noopener nofollow">concursos</a>, nos quais participam os melhores programadores competitivos.</p><h3 id="-timo-para-7"><strong>Ótimo para</strong></h3><p>Programadores avançados e competitivos que realmente gostam de resolver desafios difíceis de algoritmos.</p><h3 id="pre-o-conte-do-premium-7"><strong>Preço<strong> / </strong>Conteúdo <em>p<strong>remium</strong></em></strong></h3><p>Todos os desafios na Codeforces são gratuitos e não há opção premium.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Por que a raiz de um domínio não pode ser um CNAME — e outras definições sobre o DNS ]]>
                </title>
                <description>
                    <![CDATA[ Este artigo usará a pergunta acima para explorar DNS, dig, registros A, registros CNAME e registros ALIAS/ANAME da perspectiva de um iniciante. Vamos começar. Primeiro, alguns conceitos  * Domain Name System (DNS): o sistema geral para converter um nome de domínio    inteligível para humanos (como "example.com") ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/por-que-a-raiz-de-um-dominio-nao-pode-ser-um-cname-e-outras-definicoes-sobre-o-dns/</link>
                <guid isPermaLink="false">63874c69d7295905e93497e5</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Deusiel da Cunha de Souza ]]>
                </dc:creator>
                <pubDate>Tue, 03 Jan 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/12/1_YNkO-BfTsVJYxslNrNn8LA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/why-cant-a-domain-s-root-be-a-cname-8cbab38e5f5c/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Why a domain’s root can’t be a CNAME — and other tidbits about the DNS</a>
      </p><p>Este artigo usará a pergunta acima para explorar <code>DNS</code>, <code>dig</code>, registros <code>A</code>, registros <code>CNAME</code> e registros <code>ALIAS/ANAME</code> da perspectiva de um iniciante. Vamos começar.</p><h3 id="primeiro-alguns-conceitos">Primeiro, alguns conceitos</h3><ul><li><strong>Domain Name System</strong> (DNS): o sistema geral para converter um nome de domínio inteligível para humanos (como "example.com") em um endereço IP (93.184.216.34). O endereço IP é de um servidor (geralmente, um servidor da web) onde são armazenados os arquivos necessários para exibir uma página da web.</li><li><strong>Servidor DNS</strong> (também conhecido como servidor de nomes): usa o software do DNS para armazenar informações sobre endereços de domínio. Existem vários níveis — aqueles pertencentes a cada provedor de serviços de internet, root (13 no total em todo o mundo), domínios de primeiro nível (em inglês, "TLD" – por exemplo, ".com") e servidores DNS de nível de domínio.</li><li><strong>Nome de domínio</strong>: o domínio (example) combinado com o TLD (.com). O termo 'domínio' é frequentemente usado como sinônimo do nome de domínio, embora sejam diferentes. Quando você compra um "domínio" de uma empresa de registro ou revendedor, você compra os direitos de um nome de domínio específico (como "example.com") e quaisquer subdomínios que desejar criar (meu-site.example.com, mail.example.com etc.).</li></ul><h3 id="fluxo-de-consulta-de-alto-n-vel">Fluxo de consulta de alto nível</h3><p>O fluxo de alto nível do que acontece quando você digita "example.com" em seu navegador pode ser simplificado para remover os saltos para os servidores ISP, root e DNS de TLDs, conforme vemos abaixo:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/12/-Yu9MR65z19xx2TDl-6phT7soy3g3KNgjArX.png" class="kg-image" alt="-Yu9MR65z19xx2TDl-6phT7soy3g3KNgjArX" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/12/-Yu9MR65z19xx2TDl-6phT7soy3g3KNgjArX.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/12/-Yu9MR65z19xx2TDl-6phT7soy3g3KNgjArX.png 800w" sizes="(min-width: 720px) 720px" width="800" height="162" loading="lazy"><figcaption>Simplificação do fluxo de uma requisição DNS. Mais detalhes podem ser consultados <a href="http://www.uxworld.com/?p=384">aqui</a> (texto em inglês).</figcaption></figure><p>Um domínio normalmente tem dois ou mais servidores de nome, contendo registros relacionados ao nome de domínio (como "example.com").</p><p>Muitos tipos de registros podem ser armazenados, a maioria dos quais pode ter várias entradas por tipo:</p><ul><li><code>A</code>: Registros de endereço que mapeiam o nome de domínio para um endereço IP</li><li><code>CNAME</code>: Registro de Nome Canônico. Usado para apelidar um nome de domínio (ou nome de subdomínio) para outro. Veremos isso em mais detalhes posteriormente.</li><li><code>MX</code>: registros do Mail eXchange que informam aos agentes de entrega de e-mail onde eles devem entregar seu e-mail</li><li><code>TXT</code>: registros de texto flexíveis, para armazenar strings para uma variedade de usos</li><li><code>SOA</code>: Registro Singular de Início de Autoridade mantido no nível superior do domínio. Contém informações específicas necessárias sobre o domínio, como por exemplo, seu servidor de nomes principal</li></ul><p>Quando seu dispositivo envia uma consulta que chega a um servidor de nomes, o servidor procura no nó de registro do domínio um registro <code>A</code> e o endereço IP armazenado associado (example.com: 93.184.216.34). Esse endereço é, então, retornado ao dispositivo para ser usado para enviar uma solicitação ao servidor da web correto para recuperar a página da web ou o recurso solicitado.</p><h3 id="usando-o-dig-">Usando o 'dig'</h3><p><code>dig</code> (<strong>explorador de informações de domínio </strong>– do inglês Domain <em>Information Groper</em>) é uma ferramenta de linha de comando para consultar servidores DNS. Esse comando geralmente é usado para solução de problemas ou, como agora, para entender mais sobre a configuração de um sistema.</p><p><code>$ dig example.com</code> resulta em uma resposta longa impressa no terminal, <a href="https://www.madboa.com/geek/dig/#understanding-the-default-output">cuja saída padrão é detalhada aqui</a> (texto em inglês). Dela, temos interesse apenas em ver a <code>SEÇÃO DE RESPOSTAS</code>(do inglês, <code>ANSWER SECTION</code>).</p><pre><code>;; ANSWER SECTION:
example.com.       72703      IN     A       93.184.216.34</code></pre><p>Podemos ver que <code>example.com</code> retorna um registro <code>A</code> de <code>93.184.216.34</code>. Às vezes, os domínios terão mais de um registro <code>A</code>, se mais de um servidor da web puder fornecer as informações necessárias.</p><p>Tem mais! Se tentarmos alguns outros exemplos, logo veremos que outro registro comum aparece: <code>CNAME</code>.</p><p><code>$ dig www.skyscanner.net</code>:</p><pre><code>;; ANSWER SECTION:
www.skyscanner.net. 169 IN CNAME www.skyscanner.net.edgekey.net.
www.skyscanner.net.edgekey.net. 5639 IN CNAME e11316.a.akamaiedge.net.
e11316.a.akamaiedge.net. 20 IN A 23.217.6.192</code></pre><pre><code>www.skyscanner.net.edgekey.net. 5639 IN CNAME e11316.a.akamaiedge.net.</code></pre><pre><code>e11316.a.akamaiedge.net. 20 IN A 23.217.6.192</code></pre><p>Usar o sinalizador <code>+short</code> nos permite ver claramente o caminho formado:</p><p><code>$ dig <a href="http://www.skyscanner.net" rel="noopener">www.skyscanner.net</a> +short</code></p><pre><code>www.skyscanner.net.edgekey.net.
e11316.a.akamaiedge.net.
23.217.6.192</code></pre><h3 id="cname">CNAME</h3><p>Um registro <code>CNAME</code> permite que um nome de domínio seja usado como um apelido para outro domínio canônico (verdadeiro).</p><p>Quando o servidor DNS retorna um registro <code>CNAME</code>, ele não o retorna ao <em>client</em>. Em vez disso, ele procurará novamente o nome de domínio retornado e, por sua vez, retornará o endereço IP do registro <code>A</code>. Essa cadeia pode continuar com muitos níveis de <code>CNAME</code> profundos, mas sofre pequenos impactos de desempenho de várias pesquisas antes do armazenamento em cache.</p><p>Um exemplo simples disso pode ser se você tiver um servidor onde guarda todas as suas fotos. Você pode acessá-lo normalmente através de <code>photos.example.com</code>. No entanto, você também pode querer permitir o acesso via <code>photographs.example.com</code>. Uma maneira de tornar isso possível é adicionar um registro <code>CNAME</code> que aponte <code>photographs</code> para <code>photos</code>. Isso significa que, quando alguém visitar <code>photographs.example.com</code>, receberá o mesmo conteúdo que <code>photos.example.com</code>.</p><p>Usando a consulta <code>$ dig photography.example.com</code>, veríamos:</p><pre><code>photographs.example.com    IN   CNAME photos.example.com
photos.example.com         IN   A     xx.xxx.x.xxx</code></pre><p>É importante observar que o <code>CNAME</code> é aquela parte do lado direito. O lado esquerdo é o nome do apelido ou rótulo.</p><p>Outro uso comum é para o subdomínio <code>www</code>. Depois de comprar <code>example.com</code>, você provavelmente também desejará que os usuários que digitem <code>www.example.com</code> vejam o mesmo conteúdo.</p><p>Vale a pena notar aqui que <code>example.com</code> pode ser chamado de ápice, raiz ou nome de domínio puro.</p><p>Uma opção seria configurar outro registro <code>A</code>, apontando para o mesmo endereço IP de <code>example.com</code>. Isso é totalmente válido e é o que o site real <code>example.com</code> faz, mas não escala bem. O que acontece se você precisar atualizar o endereço IP para o qual <code>example.com</code> aponta? Você também precisaria atualizá-lo para o subdomínio <code>www</code> e qualquer outro que possa usar.</p><p>Se um registro <code>CNAME</code> foi usado como apelido para <code>www.example.com</code> para apontar para <code>example.com</code>, apenas o domínio raiz teria que ser atualizado, já que todos os outros nós apontam para ele.</p><h3 id="limita-es-do-cname">Limitações do CNAME</h3><p>Na época em que os padrões de DNS foram escritos, algumas regras foram estabelecidas para reger seu uso. <a href="https://tools.ietf.org/html/rfc1912">RFC 1912</a> e <a href="https://tools.ietf.org/html/rfc2181">RFC 2181</a> estabelecem que:</p><ul><li>Os registros <code>SOA</code> e <code>NS</code> são obrigatórios no domínio raiz</li><li>Os registros <code>CNAME</code> só podem existir como registros únicos e não podem ser combinados com nenhum outro registro de recurso (com exceção dos registros DNSSEC <code>SIG</code>, <code>NXT</code> e <code>KEY RR</code>)</li></ul><p>Isso exclui um <code>CNAME</code> de ser usado no domínio raiz, pois isso faria com que as duas regras se contradissessem.</p><p>O importante aqui é que se trata de uma limitação contratual, não técnica. É possível usar um <code>CNAME</code> na raiz, mas pode resultar em erros inesperados, pois está quebrando o contrato de comportamento esperado.</p><p>Um exemplo disso é <a href="https://blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/">relatado pela Cloudflare</a>, descrevendo problemas que eles encontraram com os servidores de e-mail do Microsoft Exchange depois de usar um <code>CNAME</code> em seu domínio raiz:</p><blockquote>Os domínios geralmente designam os servidores que lidam com seus e-mails por meio do que é conhecido como registro MX. O problema era que os servidores Exchange… podiam pegar o CNAME no registro raiz e não respeitar adequadamente o CNAME definido no registro MX. Você não pode realmente culpar o Exchange. <strong>Eles estavam operando sob as suposições estabelecidas pela especificação do DNS.</strong></blockquote><p>Aqui, você vê a desvantagem que pode aparecer em vários softwares de servidor ou bibliotecas. Como existe um padrão para que um <code>CNAME</code> seja o <strong>único registro</strong> em um nó, <strong>nenhum outro registro é procurado</strong>. Todos os outros registros serão ignorados silenciosamente, sem aviso ou mensagens de erro. Mesmo que um registro MX tenha sido definido para receber e-mail, o MX será ignorado como se não existisse porque o <code>CNAME</code> é avaliado primeiro. O mesmo é verdadeiro se houvesse um registro <code>A</code>: o <code>CNAME</code> teria precedência e o registro <code>A</code> não seria lido.</p><h3 id="a-internet-moderna">A internet moderna</h3><p>Então, por que isso é um problema? Por que você desejaria usar um <code>CNAME</code> para seu domínio raiz? Certamente, esse é o fim do caminho ao procurar o endereço IP do servidor da web que hospeda seu conteúdo?</p><p>No cenário moderno da internet, esse não é mais o caso. O mundo é muito diferente de quando os padrões de DNS foram escritos. </p><p>Você pode optar por usar um provedor de plataforma como serviço (do inglês, PaaS), como o <a href="https://www.heroku.com/">Heroku</a>, e armazenar conteúdo em seus servidores da web. Você controla o conteúdo, mas não a infraestrutura. O provedor de PaaS faz o trabalho pesado da manutenção da rede. Eles normalmente fornecem um URL (`my-app.herokuapp.com`) que é um subdomínio de seu domínio raiz. Você pode visualizar os endereços IP dos servidores da web em que seu conteúdo está. Eles, no entanto, estão totalmente sob o controle do provedor de PaaS e serão alterados sem aviso prévio.</p><p>A escala e a frequência das alterações de <em>back-end</em> feitas pelo provedor de PaaS podem dificultar a manutenção do registro <code>A</code> do domínio raiz apontando para um único endereço IP. Idealmente, você gostaria de fazer isso:</p><pre><code>example.com      IN   CNAME    my-app.herokuapp.com.www.example.com  IN   CNAME    my-app.herokuapp.com.example.com      IN   CNAME    my-app.herokuapp.com.
www.example.com  IN   CNAME    my-app.herokuapp.com.</code></pre><p>para permitir que o Heroku (ou seu provedor de host escolhido) gerencie a atualização do registro <code>A</code> para a qual o <code>CNAME</code> aponta sem nenhuma alteração feita por você. No entanto, como sabemos agora, isso quebra a especificação do DNS e, portanto, é uma péssima ideia.</p><p>É possível simplesmente implementar um redirecionamento 301/302 de <code>example.com</code> para <code>www.example.com</code>. Porém, essa instrução ocorre no servidor da web (portanto, ainda tem o problema de precisar usar um registro <code>A</code> fixo no DNS para apontar para esse servidor da web) ou um redirecionamento de provedor de DNS personalizado (<a href="https://support.dnsimple.com/articles/url-record/">que sofre complicações com HTTPS</a>).</p><p>Isso também tem o efeito colateral de alterar o domínio que você vê na barra de URL, o que você pode não querer. Este método destina-se a quando seu site foi movido permanentemente ou quando você está tentando preservar as <a href="https://support.google.com/webmasters/answer/93633?hl=en">classificações de SEO</a>, em vez de resolver o problema de apontar para um <em>back-end</em> de mudança complexo de maneira escalável.</p><h3 id="a-solu-o">A solução</h3><p>Vários provedores de DNS já desenvolveram soluções personalizadas para contornar esse problema, incluindo:</p><ul><li><code>ALIAS</code> em DNSimple</li><li><code>ANAME</code> em DNS Made Easy</li><li><code>ANAME</code> em easyDNS</li><li><code>CNAME</code> (virtual) em CloudFlare</li></ul><p>Esses são todos os tipos de registro virtual que fornecem comportamento semelhante ao <code>CNAME</code>, sem nenhuma das desvantagens. A implementação exata pode diferir, mas, em um alto nível, quando o servidor DNS vê um desses tipos de registro virtual, ele age como um resolvedor de DNS. Ele segue a cadeia criada pelo apelido até resolver em um registro (ou registros) <code>A</code> e retornar esses registros <code>A</code> ao servidor DNS. Isso "achata" a cadeia <code>CNAME</code> nos registros <code>A</code> retornados e é indistinguível da consulta enviada. A consulta vê apenas um registro <code>A</code> puro, que não quebra a especificação do DNS e não apresenta nenhuma das desvantagens de um <code>CNAME</code>. </p><p>Esses registros virtuais podem ficar ao lado de outros registros na raiz, sem medo de comportamentos não intencionais. Dependendo do método de resolução de DNS do provedor ao seguir a cadeia <code>CNAME</code>, eles também podem ter benefícios de desempenho ao armazenar em cache pesquisas anteriores.</p><p>Para uma configuração simples de DNS, configuraríamos conforme abaixo. Essa solução tem todas as vantagens da técnica de apelidar ou rotular um nome de domínio e nenhum dos riscos de usá-lo no nível raiz.</p><pre><code>example.com      IN   ALIAS    my-app.herokuapp.com.www.example.com  IN   CNAME    my-app.herokuapp.com.</code></pre><p>Obrigado por ler este artigo!</p><p><em>Como sempre, estou aberto a quaisquer correções ou tópicos adicionais.</em></p><h3 id="refer-ncias-todas-em-ingl-s-">Referências (todas em inglês)</h3><ul><li><a href="http://www.itpro.co.uk/domain-name-system-dns/30232/what-is-a-dns-server" rel="noopener">What is a DNS Server</a></li><li><a href="https://www.wired.com/2010/02/Set_Up_a_DNS_Name_Server/" rel="noopener">Set Up a DNS Name Server</a></li><li><a href="https://support.dnsimple.com/categories/dns/" rel="noopener">Páginas de suporte do DNSimple</a> e <a href="https://blog.dnsimple.com/2014/01/why-alias-record/" rel="noopener">blog do ALIAS</a></li><li><a href="https://support.cloudflare.com/hc/en-us/articles/200169056-CNAME-Flattening-RFC-compliant-support-for-CNAME-at-the-root" rel="noopener">Suporte do Cloudflare</a> e <a href="https://blog.cloudflare.com/introducing-cname-flattening-rfc-compliant-cnames-at-a-domains-root/" rel="noopener">blog do CNAME</a></li><li><code><a href="https://www.madboa.com/geek/dig/" rel="noopener">dig</a></code><a href="https://www.madboa.com/geek/dig/" rel="noopener"> HowTo</a></li><li>Várias <a href="https://stackoverflow.com/questions/656009/how-to-overcome-root-domain-cname-restrictions/22659895#22659895">publicações</a> <a href="https://stackoverflow.com/questions/16022324/how-to-setup-dns-for-an-apex-domain-no-www-pointing-to-a-heroku-app">ótimas</a> no <a href="https://stackoverflow.com/questions/655235/is-root-domain-cname-to-other-domain-allowed-by-dns-rfc" rel="noopener">Stack Overflow</a> ou <a href="https://serverfault.com/questions/613829/why-cant-a-cname-record-be-used-at-the-apex-aka-root-of-a-domain/613830#613830">no</a> <a href="https://serverfault.com/questions/170194/why-cant-a-domains-root-be-a-cname?noredirect=1&amp;lq=1" rel="noopener">StackExchange</a></li><li>Entradas <a href="https://en.wikipedia.org/wiki/CNAME_record">bem-escritas</a> da Wikipédia</li><li><a href="https://www.netlify.com/blog/2017/02/28/to-www-or-not-www/" rel="noopener">Blog da Netlify</a> "To www or not www"</li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como atualizar objetos dentro de um array JSONB com PostgreSQL ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Leandro Cesquini Pereira Como atualizar um valor específico em um array JSONB Digamos que você decidiu armazenar dados em um banco de dados como json ou jsonb e descobriu que acaba de criar novos problemas para si mesmo que antes não existiam. Você não está sozinho. O JSONB ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-atualizar-objetos-dentro-de-um-array-jsonb-com-postgresql/</link>
                <guid isPermaLink="false">6351e66f191d0905ea418a97</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Victor Ferreira Yonemoto ]]>
                </dc:creator>
                <pubDate>Mon, 26 Dec 2022 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/11/0_TyYEPUBI96D1NDh4.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-update-objects-inside-jsonb-arrays-with-postgresql-5c4e03be256a/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to update objects inside JSONB arrays with PostgreSQL</a>
      </p><p>Escrito por: Leandro Cesquini Pereira</p><h3 id="como-atualizar-um-valor-espec-fico-em-um-array-jsonb">Como atualizar um valor específico em um array JSONB</h3><p>Digamos que você decidiu armazenar dados em um banco de dados como json ou jsonb e descobriu que acaba de criar novos problemas para si mesmo que antes não existiam. Você não está sozinho.</p><p>O JSONB é uma ferramenta poderosa, mas tem um custo, pois você precisa adaptar a maneira como faz consultas (em inglês, <em>queries</em>) e manipula os dados.</p><p>Não é raro carregar todo o objeto JSONB na memória, transformá-lo usando sua linguagem de programação preferida e salvar o objeto novamente no banco de dados. Você, no entanto, acaba de criar um problema de gargalos de desempenho e desperdício de recursos.</p><p>Neste artigo, vamos ver como atualizar um valor específico de um objeto dentro de um array com uma consulta.</p><p><strong>Versão resumida</strong>: a query final está no fim do artigo. Você pode conferir um exemplo no <a href="https://www.db-fiddle.com/f/e8aeGk7cRNYnpjsqi1ncrs/1" rel="noopener">DB Fiddle</a> para copiar, colar e testar por sua conta.</p><p>Suponha que você esteja implementando tela de clientes o armazenamento de contatos dinâmicos para cada cliente. Então, você tem a ideia de armazenar os contatos em uma coluna em JSONB, pois eles são dinâmicos. Assim, usar uma estrutura de dados não relacional faz sentido.</p><p>Em seguida, você cria uma tabela de clientes com uma coluna de contatos em JSONB e insere alguns dados nela:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/11/gfE87Cd6J1Jg8NG-SoiqfVGz1J8JN8rC6Fnj.png" class="kg-image" alt="gfE87Cd6J1Jg8NG-SoiqfVGz1J8JN8rC6Fnj" width="521" height="352" loading="lazy"></figure><p>Bem fácil, não é? Como, no entanto, podemos atualizar um contato específico para um cliente específico? Como mudar o e-mail de Jimi ou o telefone de Janis, por exemplo?</p><p>Felizmente, o PostgreSQL é seu amigo e fornece a função <em>jsonb_set</em>:</p><pre><code>jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])</code></pre><p>Dada uma coluna de jsonb, você pode definir um novo valor no caminho especificado:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/11/NsMb3UL3fPutaYFB4ebdOGq7rFVCqjJmiJPd.png" class="kg-image" alt="NsMb3UL3fPutaYFB4ebdOGq7rFVCqjJmiJPd" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/11/NsMb3UL3fPutaYFB4ebdOGq7rFVCqjJmiJPd.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/11/NsMb3UL3fPutaYFB4ebdOGq7rFVCqjJmiJPd.png 800w" sizes="(min-width: 720px) 720px" width="800" height="262" loading="lazy"><figcaption>Referência: <a href="https://www.postgresql.org/docs/9.5/functions-json.html" rel="noopener">funções de JSON do PostgreSQL</a></figcaption></figure><p>Os selects (seleções) acima retornarão:</p><pre><code>[{"type": "phone", "value": "+1–202–555–0105"}, {"type": "email", "value": "jimi.hendrix@gmail.com"}]

[{"type": "email", "value": "janis.joplin@gmail.com"}]</code></pre><p>Para alterar o e-mail de Jimi na lista de contatos, informe o caminho "<strong>1, value</strong>",<strong> </strong>que significa o segundo objeto do array (começando em 0) e a chave <strong>value </strong>(valor). Esse é o <em>path (caminho)</em>. O mesmo se aplica para alterar o e-mail de Janis, mas seu objeto de e-mail está no índice 0.</p><p>Você deve estar pensando: eu só preciso usar <code>jsonb_set</code> em um <em>statement</em> (instrução) de atualização e pronto? Essa é a ideia, mas ainda não é o suficiente.</p><p>O problema com dados não relacionais é que eles são dinâmicos. Bem, esse é um dos motivos para se usar JSONB, mas gera um problema: veja que o objeto de e-mail de Jimi está no índice 1 e o objeto de e-mail de Janis está no índice 0 do array. Outro cliente poderia ter um array muito diferente com índices diferentes. Então, como descobrir o índice de cada tipo de contato?</p><p>A resposta é ordenar os elementos do array e obter seu índice:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/11/KoTlVXRd73a57XhyrIfVj0QnZfqRK8KguWoZ.png" class="kg-image" alt="KoTlVXRd73a57XhyrIfVj0QnZfqRK8KguWoZ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/11/KoTlVXRd73a57XhyrIfVj0QnZfqRK8KguWoZ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/11/KoTlVXRd73a57XhyrIfVj0QnZfqRK8KguWoZ.png 754w" sizes="(min-width: 720px) 720px" width="754" height="133" loading="lazy"></figure><p>A query retorna <strong>1</strong>, que é o <em>índice</em> do objeto <em>email </em>(de tipo <em>email</em>) dentro do array de contatos do cliente Jimi.</p><p>Agora, temos todas as peças do quebra-cabeça: sabemos como atualizar um valor em jsonb e como descobrir o índice de um objeto a ser atualizado.</p><p>O único passo que resta é a própria atualização. Juntando tudo, temos:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/11/ysGG240RTX8t9rLeuMv4KdubaDVpzVMfjnEb.png" class="kg-image" alt="ysGG240RTX8t9rLeuMv4KdubaDVpzVMfjnEb" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/11/ysGG240RTX8t9rLeuMv4KdubaDVpzVMfjnEb.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/11/ysGG240RTX8t9rLeuMv4KdubaDVpzVMfjnEb.png 800w" sizes="(min-width: 720px) 720px" width="800" height="235" loading="lazy"></figure><p>A parte mais importante dessa query é o bloco <em>with</em>. É um recurso poderoso, mas, para este exemplo, você pode pensar nele como um "modo de armazenar uma variável", que é o <em>path(caminho)</em> do contato que é necessário atualizar, o qual será dinâmico, dependendo do registro.</p><p>Deixe-me explicar um pouco sobre esta parte:</p><pre><code>(‘{‘||index-1||’,value}’)::text[] as path</code></pre><p>Essa parte apenas constrói <em>path </em>como <em>'{1, value}'</em>, mas precisamos converter para <em>text[]</em>, pois esse é o tipo esperado em uma função <em>jsonb_path</em>.</p><h4 id="resumindo">Resumindo</h4><p>O JSONB é uma ferramenta excelente e valiosa para resolver muitos problemas. Tenha em mente, porém, que você também precisa consultar e atualizar esse tipo de dado. Isso traz um custo que você deve considerar ao decidir quais ferramentas escolher para usar.</p><p><em>Observação: essa solução surgiu de uma sessão de programação com <a href="https://www.freecodecamp.org/news/how-to-update-objects-inside-jsonb-arrays-with-postgresql-5c4e03be256a/undefined" rel="noopener">Lucas Cegatti</a>.</em></p><p><em>Está procurando por uma empresa criativa para implementar sua próxima ideia? Confira a <a href="https://lnasystems.com.br" rel="noopener">LNA Systems</a>.</em></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Um ótimo guia sobre como construir APIs RESTful com ASP.NET Core ]]>
                </title>
                <description>
                    <![CDATA[ Este artigo vai servir como um guia passo a passo sobre como implementar APIs RESTful limpas e de fácil manutenção. Visão geral RESTful não é um termo novo. Refere-se a um estilo de arquitetura em que os serviços da web recebem e enviam dados de e para aplicações de client. ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/um-otimo-guia-sobre-como-construir-apis-rest-com-asp-net-core/</link>
                <guid isPermaLink="false">62c9d1c88e388806e97fbcc5</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Rafael Fontenelle ]]>
                </dc:creator>
                <pubDate>Sun, 07 Aug 2022 18:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_DptwthtMZHQ1fi4x.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/an-awesome-guide-on-how-to-build-restful-apis-with-asp-net-core-87b818123e28/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">An awesome guide on how to build RESTful APIs with ASP.NET Core</a>
      </p><p>Este artigo vai servir como um guia passo a passo sobre como implementar APIs RESTful limpas e de fácil manutenção.</p><h2 id="vis-o-geral">Visão geral</h2><p>RESTful não é um termo novo. Refere-se a um estilo de arquitetura em que os serviços da web recebem e enviam dados de e para aplicações de client. O objetivo dessas aplicações é centralizar os dados que as diversas aplicações de client usarão.</p><p>Escolher as ferramentas certas para escrever serviços RESTful é crucial, pois precisamos nos preocupar com escalabilidade, manutenção, documentação e todos os outros aspectos relevantes. O <a href="https://docs.microsoft.com/pt-BR/aspnet/core/?view=aspnetcore-6.0">ASP.NET Core</a> nos oferece uma API poderosa e fácil de usar, que é ótima para atingir esses objetivos.</p><p>Neste artigo, mostrarei como escrever uma API RESTful bem estruturada para um cenário "quase" igual ao do mundo real, usando o framework ASP.NET Core. Vou detalhar padrões e estratégias comuns para simplificar o processo de desenvolvimento.</p><p>Também mostrarei como integrar estruturas e bibliotecas comuns, como <a href="https://docs.microsoft.com/pt-BR/ef/core/">Entity Framework Core</a> e <a href="https://automapper.org/">AutoMapper</a>, para fornecer as funcionalidades necessárias.</p><h2 id="pr-requisitos">Pré-requisitos</h2><p>Espero que você tenha conhecimento dos conceitos de programação orientada a objetos.</p><p>Mesmo abordando muitos detalhes da <a href="https://docs.microsoft.com/pt-BR/dotnet/csharp/">linguagem de programação C#</a>, recomendo que você tenha conhecimentos básicos sobre esse assunto.</p><p>Também suponho que você saiba o que é REST, como funciona o <a href="https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Overview">protocolo HTTP</a>, o que são endpoints de API e o que é <a href="https://www.json.org/">JSON</a>. <a href="https://medium.freecodecamp.org/restful-services-part-i-http-in-a-nutshell-aab3bfedd131">Aqui está um ótimo tutorial introdutório</a> sobre o assunto (texto em inglês). O requisito final é que você entenda como funcionam os bancos de dados relacionais.</p><p>Para codificar comigo, você terá que instalar o <a href="https://dotnet.microsoft.com/download">.NET Core 2.2</a>, assim como o <a href="https://www.getpostman.com/">Postman</a>, a ferramenta que vou usar para testar a API. Eu recomendo que você use um editor de código como o <a href="https://code.visualstudio.com/">Visual Studio Code</a> para desenvolver a API. Escolha o editor de código de sua preferência. Se você escolher este editor de código, recomendo que instale a <a href="https://code.visualstudio.com/docs/languages/csharp">extensão de C#</a> para ter um melhor realce de código.</p><blockquote><em>Nota do tradutor: a versão do .NET Core 2.2 mencionada neste texto, de acordo com a Microsoft, já atingiu seu final de ciclo no momento desta tradução. A empresa recomenda utilizar o <a href="https://dotnet.microsoft.com/en-us/download/dotnet/6.0">.NET 6.0</a> – que, acreditamos, não gerará alterações sensíveis ao resultado.</em></blockquote><p>Você pode encontrar um link para o repositório da API no GitHub ao final deste artigo, para conferir o resultado final.</p><h2 id="o-escopo">O escopo</h2><p>Vamos escrever uma API web fictícia para um supermercado. Vamos imaginar que temos que implementar o seguinte escopo:</p><ul><li><em>Criar um serviço RESTful que permita que aplicações de client gerenciem o catálogo de produtos do supermercado. Ele precisa expor endpoints para criar, ler, editar e excluir categorias de produtos, como laticínios e cosméticos, além de gerenciar produtos dessas categorias.</em></li><li><em>Para as categorias, precisamos armazenar seus nomes. Para os produtos, precisamos armazenar seus nomes, unidade de medida (por exemplo, kg para produtos medidos por peso), quantidade na embalagem (por exemplo, 10 se o produto for um pacote de biscoitos) e suas respectivas categorias.</em></li></ul><p>Para simplificar o exemplo, não tratarei de produtos em estoque, envio de produtos, segurança e qualquer outra funcionalidade. O escopo fornecido é suficiente para mostrar como o ASP.NET Core funciona.</p><p>Para desenvolver esse serviço, precisamos basicamente de dois endpoints de API: um para gerenciar categorias e outro para gerenciar produtos. Em termos de comunicação por meio de JSON, podemos pensar nas respostas da seguinte forma:</p><p><strong>Endpoint da API: </strong><code>/api/categories</code></p><p><strong>Resposta em JSON (para solicitações GET):</strong></p><pre><code class="language-json">{
  [
    { "id": 1, "name": "Fruits and Vegetables" },
    { "id": 2, "name": "Breads" },
    … // Outras categorias
  ]
}</code></pre><p><strong>Endpoint da API:</strong> <code>/api/products</code></p><p><strong>Resposta em JSON (para solicitações GET):</strong></p><pre><code class="language-json">{
  [
    {
      "id": 1,
      "name": "Sugar",
      "quantityInPackage": 1,
      "unitOfMeasurement": "KG"
      "category": {
        "id": 3,
        "name": "Sugar"
      }
    },
    … // Outros produtos
  ]
}</code></pre><p>Vamos começar a escrever a aplicação.</p><h2 id="etapa-1-criando-a-api">Etapa 1 — Criando a API</h2><p>Em primeiro lugar, temos que criar a estrutura de pastas para o serviço da web e, em seguida, usar as <a href="https://docs.microsoft.com/pt-BR/dotnet/core/tools/?tabs=netcore2x">ferramentas de CLI do .NET</a> para estruturar uma API web básica. Abra o terminal ou prompt de comando (dependendo do sistema operacional que você estiver usando) e digite os seguintes comandos, em sequência:</p><pre><code class="language-bash">mkdir src/Supermarket.API

cd src/Supermarket.API

dotnet new webapi</code></pre><p>Os dois primeiros comandos simplesmente criam um novo diretório para a API e alteram o local atual para a nova pasta. O último gera um novo projeto seguindo o modelo da API web, que é o tipo de aplicação que estamos desenvolvendo. Você pode ler mais sobre esses comandos e outros modelos de projeto que você pode gerar <a href="https://docs.microsoft.com/pt-BR/dotnet/core/tools/dotnet-new?tabs=netcore21">conferindo este link</a>.</p><p>O novo diretório agora terá a seguinte estrutura:</p><h3 id="vis-o-geral-da-estrutura">Visão geral da estrutura</h3><p>Uma aplicação ASP.NET Core consiste em um grupo de <a href="https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?view=aspnetcore-2.2">middlewares</a> (pequenos pedaços da aplicação anexados ao pipeline da aplicação, que manipulam solicitações e respostas) configurados na classe <code>Startup</code>. Se você já trabalhou com frameworks como <a href="https://expressjs.com/">Express.js</a> antes, esse conceito não é novo para você.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/251f30a7a0590ec1e0910ac2ecf5ac32.js"></script><!--kg-card-end: html--><p>Quando a aplicação é iniciada, o método <code>Main</code>, da classe <code>Program</code>, é chamado. Ele cria um host padrão usando a configuração de inicialização, expondo a aplicação via HTTP através de uma porta específica (por padrão, a porta 5000 para HTTP e a porta 5001 para HTTPS).</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/c053d2922ba7c3b16f9098709a753c7b.js"></script><!--kg-card-end: html--><p>Dê uma olhada na classe <code>ValuesController</code>, dentro da pasta <code>Controllers</code>. Ela expõe métodos que serão chamados quando a API receber requisições através da rota <code>/api/values</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/062a4f9d0e7475fc4f22d66f882982ca.js"></script><!--kg-card-end: html--><p>Não se preocupe se você não entender alguma parte desse código. Vou detalhar cada um ao desenvolver os endpoints de API necessários. Por enquanto, basta excluir esta classe, pois não vamos usá-la.</p><h2 id="etapa-2-criando-os-modelos-de-dom-nio">Etapa 2 — Criando os modelos de domínio</h2><p>Vou aplicar alguns conceitos de design que manterão a aplicação simples e fácil de manter.</p><p>Escrever código que possa ser entendido e mantido por você mesmo não é tão difícil, mas você deve ter em mente que trabalhará em equipe. Se você não tomar cuidado com a forma como escreve seu código, o resultado será um monstro que dará a você e seus colegas de equipe constantes dores de cabeça. Parece extremo, certo? Mas acredite, essa é a verdade.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_Obq8C7c3EuzmJBZb.jpg" class="kg-image" alt="0_Obq8C7c3EuzmJBZb" width="500" height="453" loading="lazy"><figcaption><a href="https://www.flickr.com/photos/smitty/2245445147" rel="noopener">wtf — code quality measurement</a>, criado por <a href="https://www.flickr.com/photos/smitty/" rel="noopener">smitty42</a> e sob a licença <a href="https://creativecommons.org/licenses/by-nd/2.0/" rel="noopener">CC-BY-ND 2.0</a></figcaption></figure><p>Vamos começar escrevendo a camada de domínio. Essa camada terá nossas classes de modelos, as classes que representarão nossos produtos e categorias, além de repositórios e interfaces de serviços. Vou explicar esses dois últimos conceitos daqui a pouco.</p><p>Dentro do diretório <code>Supermarket.API</code>, crie uma nova pasta chamada <code>Domain</code>. Dentro da nova pasta de domínio, crie outra chamada <code>Models</code>. O primeiro modelo que temos que adicionar a essa pasta é o <code>Category</code>. Inicialmente, será uma classe simples de <a href="https://en.wikipedia.org/wiki/Plain_old_CLR_object">Plain Old CLR Object (POCO)</a> – (que pode ser traduzido como "<em>Objeto de <a href="https://pt.wikipedia.org/wiki/Common_Language_Runtime">CLR</a> puro e simples</em>"). Isso significa que a classe terá apenas propriedades para descrever suas informações básicas.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/cdd117007f6c1bbc26426bd9a7f26237.js"></script><!--kg-card-end: html--><p>A classe tem uma propriedade <code>Id</code>, para identificar a categoria, e uma propriedade <code>Name</code>. Também temos uma propriedade <code>Products</code>. Essa última será usada pelo <strong>Entity Framework Core</strong>, o ORM que a maioria das aplicações ASP.NET Core usa para persistir dados em um banco de dados, para mapear o relacionamento entre categorias e produtos. Também faz sentido pensar em termos de programação orientada a objetos, já que uma categoria tem muitos produtos relacionados.</p><p>Também temos que criar o modelo do produto. Na mesma pasta, adicione uma nova classe <code>Product</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/3789d6b6c728acfef847c6e65e3d96a0.js"></script><!--kg-card-end: html--><p>O produto também possui propriedades para o Id e o Name. Há também uma propriedade <code>QuantityInPackage</code>, que informa quantas unidades do produto temos em um pacote (lembre-se do exemplo dos biscoitos, do escopo da aplicação) e uma propriedade <code>UnitOfMeasurement</code>. Esta é representada por um <strong><a href="https://docs.microsoft.com/pt-BR/dotnet/csharp/language-reference/builtin-types/enum">tipo enum</a></strong>, que representa uma enumeração de possíveis unidades de medida. As duas últimas propriedades, <code>CategoryId</code> e <code>Category</code>, serão usadas pelo ORM para mapear o relacionamento entre produtos e categorias. Isso indica que um produto tem uma, e apenas uma, categoria.</p><p>Vamos definir a última parte de nossos modelos de domínio, o enum <code>EUnitOfMeasurement</code>.</p><p>Por convenção, enums não precisam começar com um <em>"E"</em> na frente de seus nomes, mas em algumas bibliotecas e frameworks você encontrará esse prefixo como uma forma de distinguir enums de interfaces e classes.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/6c95a16fc9a9d669b6686db730ddf02c.js"></script><!--kg-card-end: html--><p>O código é realmente simples. Aqui, definimos apenas um punhado de possibilidades de unidades de medida. No entanto, em um sistema real de supermercado, você pode ter muitas outras unidades de medida e talvez um modelo separado para isso.</p><p>Observe o <a href="https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/concepts/attributes/">atributo</a> <code>Description</code> aplicado a todas as possibilidades de enumeração. Um atributo é uma maneira de definir metadados sobre classes, interfaces, propriedades e outros componentes da linguagem C#. Nesse caso, vamos usá-lo para simplificar as respostas do endpoint da API do produto, mas você não precisa se preocupar com isso por enquanto. Voltaremos aqui mais tarde.</p><p>Nossos modelos básicos estão prontos para serem usados. Agora podemos começar a escrever o endpoint da API que vai gerenciar todas as categorias.</p><h2 id="etapa-3-a-api-de-categorias">Etapa 3 — A API de categorias</h2><p>Na pasta Controllers, adicione uma nova classe chamada <code>CategoriesController</code>.</p><p>Por convenção, todas as classes nessa pasta que terminam com o sufixo <em>"Controller"</em> se tornarão controllers (controladores) da nossa aplicação. Isso significa que eles vão lidar com solicitações e respostas. Você precisa herdar essa classe da classe <code>Controller</code>, definida no <a href="https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/namespace">namespace</a> <code>Microsoft.AspNetCore.Mvc</code>.</p><p>Um namespace consiste em um grupo de classes, interfaces, enumerações e estruturas relacionadas. Você pode pensar nisso como algo semelhante a <a href="https://medium.freecodecamp.org/javascript-modules-a-beginner-s-guide-783f7d7a5fcc">módulos</a> da linguagem Javascript, ou <a href="https://docs.oracle.com/javase/tutorial/java/package/packages.html">pacotes</a> de Java (links em inglês).</p><p>O novo controlador deve responder através da rota <code>/api/categories</code>. Conseguimos isso adicionando o atributo <code>Route</code> acima do nome da classe, especificando um espaço reservado que indica que a rota deve usar o nome da classe sem o sufixo do controlador, por convenção.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/828f2099ad46de640c0a7565eec02c0b.js"></script><!--kg-card-end: html--><p>Vamos começar a lidar com solicitações GET. Em primeiro lugar, quando alguém solicita dados de <code>/api/categories</code> via verbo GET, a API precisa retornar todas as categorias. Podemos criar um <strong>serviço de categoria</strong> para este fim.</p><p>Conceitualmente, um serviço é basicamente uma classe ou interface que define métodos para lidar com alguma lógica de negócios. É uma prática comum em muitas linguagens de programação diferentes criar serviços para lidar com a lógica de negócios, como <a href="https://medium.com/@evandro.ggomes/json-web-token-authentication-with-asp-net-core-2-0-b074b0cfc870">autenticação e autorização</a> (texto em inglês), pagamentos, fluxos de dados complexos, cache e tarefas que exigem alguma interação entre outros serviços ou modelos.</p><p>Usando serviços, podemos isolar o tratamento de solicitações e respostas da lógica real necessária para concluir as tarefas.</p><p>O serviço que vamos criar inicialmente definirá um único comportamento, ou <strong>método</strong>: um método de listagem. Esperamos que este método retorne todas as categorias existentes no banco de dados.</p><p>Para simplificar, não lidaremos com paginação ou filtragem de dados nesse caso. Escreverei um artigo no futuro mostrando como lidar facilmente com esses recursos.</p><p>Para definir um comportamento esperado para algo em C# (e em outras linguagens orientadas a objetos, como Java, por exemplo), definimos uma <strong>interface</strong>. Uma interface diz como algo deve funcionar, mas <strong>não implementa a lógica real para o comportamento</strong>. A lógica é implementada em classes que implementam a interface. Se esse conceito não estiver claro para você, não se preocupe. Você vai entender daqui a pouco.</p><p>Dentro da pasta <code>Domain</code>, crie um novo diretório chamado <code>Services</code>. Lá, adicione uma interface chamada <code>ICategoryService</code>. Por convenção, todas as interfaces devem começar com a letra maiúscula <em>“I”</em> em C#. Defina o código da interface da seguinte forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/cfba938a84c1b18e1b215e8588c4707c.js"></script><!--kg-card-end: html--><p>As implementações do método <code>ListAsync</code> devem retornar de forma <strong>assíncrona</strong> uma enumeração de categorias.</p><p>A classe <code>Task</code>, encapsulando o retorno, indica assincronia. Precisamos pensar em um método assíncrono devido ao fato de termos que esperar o banco de dados concluir alguma operação para retornar os dados. Esse processo pode demorar um pouco. Observe também o sufixo <em>"async"</em>. É uma convenção que indica que nosso método deve ser executado de forma assíncrona.</p><p>Temos muitas convenções, certo? Eu pessoalmente gosto, porque mantém as aplicações fáceis de ler, mesmo se você for novo em uma empresa que usa a tecnologia .NET.</p><p><br></p><figure class="kg-card kg-embed-card"><iframe src="https://giphy.com/embed/3oKGzDTLPcbTJllamY" width="480" height="237" frameborder="0" class="giphy-embed" allowfullscreen="" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; line-height: inherit; font-family: Lato, sans-serif; font-size: 22px; vertical-align: middle; color: rgb(218, 215, 210); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(24, 26, 27); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></iframe></figure><p><em>"- Tudo bem. Definimos essa interface, mas ela vem com nada. Como ela pode ser útil?"</em></p><p>Se você vem de uma linguagem como Javascript ou outra linguagem não fortemente tipada, esse conceito pode parecer estranho.</p><p>As interfaces nos permitem abstrair o comportamento desejado da implementação real. Usando um mecanismo conhecido como <a href="https://medium.freecodecamp.org/a-quick-intro-to-dependency-injection-what-it-is-and-when-to-use-it-7578c84fa88f"><strong>injeção de dependência</strong></a><strong> </strong>(texto em inglês), podemos implementar essas interfaces e isolá-las de outros componentes.</p><p>Basicamente, quando você usa injeção de dependência, você define alguns comportamentos usando uma interface. Em seguida, você cria uma classe que implementa a interface. Por fim, você vincula as referências da interface à classe que criou.</p><p><em>" - Parece realmente confuso. Não podemos simplesmente criar uma classe que faça essas coisas para nós?"</em></p><p>Vamos continuar implementando nossa API e você entenderá por que usar essa abordagem.</p><p>Altere o código de <code>CategoriesController</code> da seguinte forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/1c82c93ad1d58694afebea87afa01113.js"></script><!--kg-card-end: html--><p>Eu defini uma função construtora para nosso controlador (um construtor é chamado quando uma nova instância de uma classe é criada) e ela recebe uma instância de <code>ICategoryService</code>. Isso significa que a instância pode ser qualquer coisa que implemente a interface de serviço. Eu armazeno esta instância em um campo privado e somente leitura <code>_categoryService</code>. Usaremos este campo para acessar os métodos de implementação de nosso serviço de categoria.</p><p>A propósito, o prefixo de sublinhado é outra convenção comum para denotar um campo. Esta convenção, em especial, não é recomendada pela <a href="https://docs.microsoft.com/pt-BR/dotnet/standard/design-guidelines/general-naming-conventions">diretriz oficial de convenção de nomenclatura do .NET</a>, mas é uma prática muito comum como forma de evitar ter que usar a palavra-chave <em>"this"</em> para distinguir campos de classe de variáveis ​​locais. Eu pessoalmente acho que é muito mais fácil de ler, e muitos frameworks e bibliotecas usam essa convenção.</p><p>Abaixo do construtor, defini o método que vai tratar as requisições de <code>/api/categories</code>. O atributo <code>HttpGet</code> informa ao pipeline do ASP.NET Core para usá-lo para lidar com solicitações GET (esse atributo pode ser omitido, mas é melhor escrevê-lo para facilitar a legibilidade).</p><p>O método usa nossa instância de serviço de categoria para listar todas as categorias e, em seguida, retorna as categorias para o client. O pipeline de estrutura lida com a serialização de dados para um objeto JSON. O tipo <code>IEnumerable&lt;Category&gt;</code> informa à estrutura que queremos retornar uma enumeração de categorias, e o tipo <code>Task</code>, precedido pela palavra-chave <code>async</code>, informa ao pipeline que esse método deve ser executado de maneira <strong>assíncrona</strong>. Finalmente, quando definimos um método assíncrono, temos que usar a palavra-chave <code>await</code> para tarefas que podem demorar um pouco.</p><p>Ok, definimos a estrutura inicial da nossa API. Agora, é preciso realmente implementar o serviço de categorias.</p><h2 id="etapa-4-implementando-o-servi-o-das-categorias">Etapa 4 — Implementando o serviço das categorias</h2><p>Na pasta raiz da API (a pasta <code>Supermarket.API</code>), crie uma pasta chamada <code>Services</code>. Aqui colocaremos todas as implementações de serviços. Dentro da nova pasta, adicione uma nova classe chamada <code>CategoryService</code>. Altere o código da seguinte forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/b172cc0fd4adfbf5edcdc2f4bd382f38.js"></script><!--kg-card-end: html--><p>É simplesmente o código básico para a implementação da interface, mas ainda não lidamos com nenhuma lógica. Vamos pensar em como o método de listagem deve funcionar.</p><p>Precisamos acessar o banco de dados e retornar todas as categorias, então precisamos retornar esses dados para o client.</p><p>Uma classe de serviço não é uma classe que deve manipular o acesso a dados. Existe um padrão chamado <strong>Padrão de Repositório</strong> (<a href="https://docs.microsoft.com/pt-BR/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/infrastructure-persistence-layer-design#the-repository-pattern">Repository Pattern</a>), que é usado para gerenciar dados de bancos de dados.</p><p>Ao usar o Padrão de Repositório, definimos <strong>classes de repositório</strong>, que basicamente encapsulam toda a lógica para lidar com o acesso aos dados. Esses repositórios expõem métodos para listar, criar, editar e excluir objetos de um determinado modelo, da mesma forma que você pode manipular <a href="https://docs.microsoft.com/pt-BR/dotnet/csharp/programming-guide/concepts/collections">coleções</a>. Internamente, esses métodos conversam com o banco de dados para realizar <strong>operações CRUD</strong>, isolando o acesso ao banco de dados do restante da aplicação.</p><p>Nosso serviço precisa conversar com um repositório de categorias, para obter a lista de objetos.</p><p>Conceitualmente, um serviço pode "conversar" com um ou mais repositórios ou outros serviços para realizar operações.</p><p>Pode parecer redundante criar uma outra definição para lidar com a lógica de acesso aos dados, mas você verá daqui a pouco que isolar essa lógica da classe de serviço é realmente vantajoso.</p><p>Vamos criar um repositório que será responsável por intermediar a comunicação do banco de dados como forma de persistir as categorias.</p><h2 id="etapa-5-o-reposit-rio-de-categorias-e-a-camada-de-persist-ncia">Etapa 5 — O repositório de categorias e a camada de persistência</h2><p>Dentro da pasta <code>Domain</code>, crie um novo diretório chamado <code>Repositories</code>. Em seguida, adicione uma nova interface chamada <code>ICategoryRespository</code>. Defina a interface da seguinte forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/a9263b0e596e02509e783c32f9fc5469.js"></script><!--kg-card-end: html--><p>O código inicial é basicamente idêntico ao código da interface de serviço.</p><p>Tendo definida a interface, podemos voltar para a classe de serviço e finalizar a implementação do método de listagem, usando uma instância de <code>ICategoryRepository</code> para retornar os dados.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/d41c9ebe891cfb29f920a418aa1501aa.js"></script><!--kg-card-end: html--><p>Agora temos que implementar a lógica real do repositório de categorias. Antes de fazer isso, temos que pensar em como vamos acessar o banco de dados.</p><p>A propósito, ainda não temos um banco de dados!</p><p>Usaremos o Entity Framework Core (vou chamá-lo de <em><strong>EF Core</strong></em> para simplificar) como nosso ORM de banco de dados. Essa estrutura vem com o ASP.NET Core como seu ORM padrão e expõe uma API amigável que nos permite mapear classes de nossas aplicações para tabelas de banco de dados.</p><p>O EF Core também nos permite projetar nossa aplicação primeiro e depois gerar um banco de dados de acordo com o que definimos em nosso código. Essa técnica é chamada de <strong>código primeiro </strong><em><strong>(code first)</strong></em>. Usaremos a abordagem de código primeiro para gerar um banco de dados (neste exemplo, na verdade, usarei um banco de dados na memória, mas você poderá alterá-lo facilmente para uma instância de servidor SQL Server ou MySQL, por exemplo).</p><p>Na pasta raiz da API, crie outro diretório chamado <code>Persistence</code>. Este diretório terá tudo o que precisamos para acessar o banco de dados, como implementações de repositórios.</p><p>Dentro da nova pasta, crie outro diretório chamado <code>Contexts</code> e adicione uma nova classe chamada <code>AppDbContext</code>. Essa classe deve herdar <code>DbContext</code>, uma classe que o EF Core usa para mapear seus modelos para tabelas de banco de dados. Altere o código da seguinte maneira:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/529ea627a0c02010a504fecd061a55fd.js"></script><!--kg-card-end: html--><p>O construtor que adicionamos a essa classe é responsável por passar a configuração do banco de dados para a classe base por meio de injeção de dependência. Você verá em um momento como isso funciona.</p><p>Agora, temos que criar duas propriedades <code>DbSet</code>. Essas propriedades são <strong><a href="https://pt.wikipedia.org/wiki/Conjunto_(tipo_de_dado_abstrato)">conjuntos</a></strong> (coleções de objetos exclusivos) que mapeiam modelos para tabelas de banco de dados.</p><p>Além disso, temos que mapear as propriedades dos modelos para as respectivas colunas da tabela, especificando quais propriedades são chaves primárias, quais são chaves estrangeiras, os tipos de coluna etc. Podemos fazer isso substituindo o método <code>OnModelCreating</code>, usando um recurso chamado <a href="http://www.entityframeworktutorial.net/efcore/fluent-api-in-entity-framework-core.aspx">Fluent API</a> (texto em inglês) para especificar o mapeamento do banco de dados. Altere a classe <code>AppDbContext</code> da seguinte maneira:</p><p>O código é intuitivo.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/2cd77d33f36c25cff2850a4bcc78acd5.js"></script><!--kg-card-end: html--><p>Especificamos para quais tabelas nossos modelos devem ser mapeados. Além disso, definimos as chaves primárias, usando o método <code>HasKey</code>, as colunas da tabela, usando o método <code>Property</code>, e algumas restrições como <code>IsRequired</code>, <code>HasMaxLength</code> e <code>ValueGeneratedOnAdd</code>, tudo com <a href="https://docs.microsoft.com/pt-BR/dotnet/csharp/language-reference/operators/lambda-expressions">expressões lambda</a> de um "modo fluido" (métodos de encadeamento).</p><p>Dê uma olhada no seguinte trecho de código:</p><pre><code>builder.Entity&lt;Category&gt;()
       .HasMany(p =&gt; p.Products)
       .WithOne(p =&gt; p.Category)
       .HasForeignKey(p =&gt; p.CategoryId);</code></pre><p>Aqui estamos especificando um relacionamento entre tabelas. Dizemos que uma categoria tem muitos produtos e definimos as propriedades que vão mapear esse relacionamento (<code>Products</code>, da classe <code>Category</code>, e <code>Category</code>, da classe <code>Product</code>). Também definimos a chave estrangeira (<code>CategoryId</code>).</p><p>Dê uma olhada <a href="https://www.learnentityframeworkcore.com/relationships">neste tutorial</a> (texto em inglês) se quiser saber como configurar relacionamentos um para um e muitos para muitos usando o EF Core, bem como usá-lo como um todo.</p><p>Há também uma configuração para propagação de dados, através do método <code>HasData</code>:</p><pre><code>builder.Entity&lt;Category&gt;().HasData

(
  new Category { Id = 100, Name = "Fruits and Vegetables" },
  new Category { Id = 101, Name = "Dairy" }
);</code></pre><p>Aqui, nós simplesmente adicionamos duas categorias exemplo por padrão. Isso é necessário para testar nosso endpoint API após finalizá-lo.</p><blockquote><strong>Aviso:</strong> estamos definindo manualmente as propriedades de <code>Id</code> aqui porque o provedor na memória o exige para que funcione. Estou configurando os identificadores como números grandes para evitar a colisão entre os identificadores gerados automaticamente e os dados iniciais.<br><br>Essa limitação não existe em provedores de banco de dados relacionais verdadeiros. Portanto, se você quiser usar um banco de dados como o SQL Server, por exemplo, não precisará especificar esses identificadores. Verifique <a href="https://github.com/aspnet/EntityFrameworkCore/issues/6872">este relatório de problemas no GitHub</a> se quiser entender esse comportamento.</blockquote><p>Tendo implementado a classe de contexto de banco de dados, podemos implementar o repositório de categorias. Adicione uma nova pasta chamada <code>Repositories</code> dentro da pasta <code>Persistence</code> e, então, adicione uma nova classe chamada <code>BaseRepository</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/ce2882c09b4b84e25306082e16c11d57.js"></script><!--kg-card-end: html--><p>Esta classe é apenas uma <strong>classe abstrata</strong> que todos os nossos repositórios herdarão. Uma classe abstrata é uma classe que não possui instâncias diretas. Você precisa criar classes diretas para criar as instâncias.</p><p>O <code>BaseRepository</code> recebe uma instância do nosso <code>AppDbContext</code> através de injeção de dependência e expõe uma propriedade protegida (uma propriedade que só pode ser acessada pelas classes filhas) chamada <code>_context</code>, que dá acesso a todos os métodos que precisamos para lidar com as operações do banco de dados.</p><p>Adicione uma nova classe na mesma pasta chamada <code>CategoryRepository</code>. Agora, vamos realmente implementar a lógica do repositório:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/f2138c526b717ec3d66d2a58f3dffe85.js"></script><!--kg-card-end: html--><p>O repositório herda o <code>BaseRepository</code> e implementa o <code>ICategoryRepository</code>.</p><p>Observe como é simples implementar o método de listagem. Usamos o conjunto de banco de dados <code>Categories</code> para acessar a tabela de categorias e, então, chamamos o método de extensão <code>ToListAsync</code>, que é responsável por transformar o resultado de uma consulta em uma coleção de categorias.</p><p>O EF Core <a href="https://docs.microsoft.com/pt-BR/ef/core/querying/how-query-works">converte nossa chamada de método em uma consulta SQL</a>, da maneira mais eficiente possível. A consulta só é executada quando você chama um método que transformará seus dados em uma coleção, ou quando você usa um método para obter dados específicos.</p><p>Agora temos uma implementação limpa do controlador de categorias, do serviço e do repositório.</p><p><a href="https://docs.microsoft.com/pt-br/dotnet/architecture/modern-web-apps-azure/architectural-principles#separation-of-concerns">Separamos os interesses</a>, criando classes que só fazem o que devem fazer.</p><p>A última etapa antes de testar a aplicação é vincular nossas interfaces às respectivas classes usando o mecanismo de injeção de dependência do ASP.NET Core.</p><h2 id="etapa-6-configurando-a-inje-o-de-depend-ncia">Etapa 6 — Configurando a injeção de dependência</h2><p>É hora de você finalmente entender como esse conceito funciona.</p><figure class="kg-card kg-embed-card"><iframe src="https://giphy.com/embed/3o6EQnG9JHIYCjUDny" width="480" height="359" frameborder="0" class="giphy-embed" allowfullscreen="" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; line-height: inherit; font-family: Lato, sans-serif; font-size: 22px; vertical-align: middle; color: rgb(218, 215, 210); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(24, 26, 27); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></iframe></figure><p>Na pasta raiz da aplicação, abra a classe <code>Startup</code>. Esta classe é responsável por configurar todos os tipos de configurações quando a aplicação é iniciada.</p><p>Os métodos <code>ConfigureServices</code> e <code>Configure</code> são chamados em tempo de execução pelo pipeline da estrutura para configurar como a aplicação deve funcionar e quais componentes ele deve usar.</p><p>Dê uma olhada no método <code>ConfigureServices</code>. Aqui, temos apenas uma linha, que configura a aplicação para que use o pipeline MVC, o que, basicamente, significa que a aplicação vai lidar com requisições e respostas usando classes controller (há mais coisas acontecendo aqui internamente, mas é isso que você precisa saber por enquanto).</p><p>Podemos usar o método <code>ConfigureServices</code>, acessando o parâmetro <code>services</code>, para configurar nossas ligações de dependência. Limpe o código da classe removendo todos os comentários e altere o código da seguinte forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/e918871474c84f2222f141ec8a40803f.js"></script><!--kg-card-end: html--><p>Veja este trecho de código:</p><pre><code class="language-cs">services.AddDbContext&lt;AppDbContext&gt;(options =&gt; {

  options.UseInMemoryDatabase("supermarket-api-in-memory");
  
});</code></pre><p>Aqui, configuramos o contexto do banco de dados. Dizemos ao ASP.NET Core para usar nosso <code>AppDbContext</code> com uma implementação de banco de dados na memória, que é identificada pela string passada como um argumento para nosso método. Normalmente, o provedor em memória é usado quando escrevemos <a href="https://docs.microsoft.com/pt-br/aspnet/core/test/integration-tests?view=aspnetcore-6.0&amp;viewFallbackFrom=aspnetcore-2.2">testes de integração</a>, mas estou usando aqui para simplificar. Dessa forma, não precisamos nos conectar a um banco de dados real para testar a aplicação.</p><p>A configuração dessas linhas define internamente nosso contexto de banco de dados para a injeção de dependência usando um <a href="https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.2#service-lifetimes-1">tempo de vida com escopo definido</a>.</p><p>O tempo de vida com escopo definido informa ao pipeline do ASP.NET Core que sempre que ele precisar resolver uma classe que recebe uma instância de <code>AppDbContext</code> como um argumento de construtor, ele deve usar a mesma instância da classe. Se não houver instância na memória, o pipeline criará uma nova instância e a reutilizará em todas as classes que precisarem dela, durante uma determinada solicitação. Desse modo, você não precisa criar manualmente a instância da classe quando precisar usá-la.</p><p>Existem outros escopos vitalícios que você pode conferir lendo a <a href="https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-2.2">documentação oficial</a>.</p><p>A técnica de injeção de dependência nos oferece muitas vantagens, como:</p><ul><li>Reutilização de código;</li><li>Melhor produtividade, pois quando temos que mudar a implementação, não precisamos nos preocupar em mudar uma centena de lugares onde você usa esse recurso;</li><li>Você pode facilmente testar a aplicação, pois podemos isolar o que temos para testar usando <strong>mocks</strong> (implementação falsa de classes) onde temos que passar interfaces como argumentos do construtor;</li><li>Quando uma classe precisa receber mais dependências por meio de um construtor, você não precisa alterar manualmente todos os locais onde as instâncias estão sendo criadas (<strong>isso é incrível!</strong>).</li></ul><p>Após configurar o contexto do banco de dados, também vinculamos nosso serviço e repositório às respectivas classes.</p><pre><code class="language-cs">services.AddScoped&lt;ICategoryRepository, CategoryRepository&gt;();

services.AddScoped&lt;ICategoryService, CategoryService&gt;();</code></pre><p>Aqui, também usamos um tempo de vida com escopo porque essas classes internamente precisam usar a classe de contexto do banco de dados. Faz sentido especificar o mesmo escopo, neste caso.</p><p>Agora que configuramos nossas ligações de dependência, temos que fazer uma pequena alteração na classe <code>Program</code>, para que o banco de dados semeie corretamente nossos dados iniciais. <strong>Esta etapa só é necessária ao usar o provedor de banco de dados na memória</strong> (consulte <a href="https://github.com/aspnet/EntityFrameworkCore/issues/11666">este relatório de problemas no GitHub</a> para entender o motivo).</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/5efb75bbe67491a868f434ea4ef041e7.js"></script><!--kg-card-end: html--><p>Foi necessário alterar o método <code>Main</code> para garantir que nosso banco de dados será "criado" quando a aplicação for iniciada, pois estamos usando um provedor na memória. Sem essa alteração, as categorias que queremos semear não serão criadas.</p><p>Com todos os recursos básicos implementados, é hora de testar nosso endpoint de API.</p><h2 id="etapa-7-testando-a-api-de-categorias">Etapa 7 — Testando a API de categorias</h2><p>Abra o terminal ou prompt de comando na pasta raiz da API e digite o seguinte comando:</p><pre><code>dotnet run</code></pre><p>O comando acima inicia a aplicação. O console vai mostrar uma saída similar a esta:</p><pre><code class="language-bash">info: Microsoft.EntityFrameworkCore.Infrastructure[10403]

Entity Framework Core 2.2.0-rtm-35687 initialized ‘AppDbContext’ using provider ‘Microsoft.EntityFrameworkCore.InMemory’ with options: StoreName=supermarket-api-in-memory

info: Microsoft.EntityFrameworkCore.Update[30100]

Saved 2 entities to in-memory store.

info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]

User profile is available. Using ‘C:\Users\evgomes\AppData\Local\ASP.NET\DataProtection-Keys’ as key repository and Windows DPAPI to encrypt keys at rest.

Hosting environment: Development

Content root path: C:\Users\evgomes\Desktop\Tutorials\src\Supermarket.API

Now listening on: https://localhost:5001

Now listening on: http://localhost:5000

Application started. Press Ctrl+C to shut down.</code></pre><p>Você pode ver que o EF Core foi chamado para inicializar o banco de dados. As últimas linhas mostram em quais portas a aplicação está sendo executada.</p><p>Abra um navegador e navegue até <a href="http://localhost:5000/api/categories">http://localhost:5000/api/categories</a> (ou para o URL exibido na saída do console). Se você vir um erro de segurança devido ao HTTPS, basta adicionar uma exceção para a aplicação.</p><p>O navegador mostrará os seguintes dados JSON como saída:</p><pre><code class="language-json">[
  {
     "id": 100,
     "name": "Fruits and Vegetables",
     "products": []
  },
  {
     "id": 101,
     "name": "Dairy",
     "products": []
  }
]</code></pre><p>Aqui vemos os dados que adicionamos ao banco de dados quando configuramos o contexto do banco de dados. Essa saída confirma que nosso código está funcionando.</p><p>Você criou um endpoint de GET de API com poucas linhas de código e tem uma estrutura de código que é muito fácil de alterar devido à arquitetura da API.</p><p>Agora, é hora de mostrar como é fácil alterar esse código quando você precisa ajustá-lo devido às necessidades do negócio.</p><h2 id="etapa-8-criando-um-recurso-de-categoria">Etapa 8 — Criando um recurso de categoria</h2><p>Se você se lembra da especificação do endpoint da API, notou que nossa resposta JSON real tem uma propriedade extra: <strong>um <em>array</em> de produtos</strong>. Dê uma olhada no exemplo da resposta desejada:</p><pre><code class="language-json">{
  [
    { "id": 1, "name": "Fruits and Vegetables" },
    { "id": 2, "name": "Breads" },
    … // Outras categorias
  ]
}</code></pre><p>O array de produtos está presente em nossa resposta JSON atual porque nosso modelo <code>Category</code> tem uma propriedade <code>Products</code>, necessária ao EF Core para mapear corretamente os produtos de uma determinada categoria.</p><p>Não queremos essa propriedade em nossa resposta, mas não podemos alterar nossa classe de modelo para excluir essa propriedade. Isso faria com que o EF Core gerasse erros quando tentamos gerenciar dados de categorias e também interromperia nosso design de modelo de domínio, pois não faz sentido ter uma categoria de produto que não tenha produtos.</p><p>Para retornar dados JSON contendo apenas os identificadores e nomes das categorias do supermercado, temos que criar uma <strong>classe de recurso</strong>.</p><p>Uma <a href="https://restful-api-design.readthedocs.io/en/latest/resources.html">classe de recurso</a> (texto em inglês) é uma classe que contém apenas informações básicas que serão trocadas entre aplicações de client e terminais de API, geralmente na forma de dados JSON, para representar algumas informações específicas.</p><p>Todas as respostas dos endpoints da API <strong>devem</strong> retornar um recurso.</p><p>É uma má prática devolver a representação do modelo real como resposta uma vez que pode conter informações que a aplicação de client não necessita ou que não tem permissão para ter (por exemplo, um modelo de usuário poderia devolver informações da senha do usuário, o que seria um grande problema de segurança).</p><p>Precisamos de um recurso para representar apenas nossas categorias, sem os produtos.</p><p>Agora que você sabe o que é um recurso, vamos implementá-lo. Antes de tudo, pare a aplicação em execução pressionando <strong>Ctrl + C</strong> na linha de comando. Na pasta raiz da aplicação, crie uma nova pasta chamada <code>Resources</code>. Lá, adicione uma nova classe chamada <code>CategoryResource</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/8593b7f2c0e7d523b57f244a69c62bed.js"></script><!--kg-card-end: html--><p>Temos que mapear nossa coleção de modelos de categoria, que é fornecida pelo nosso serviço de categoria, para uma coleção de recursos de categoria.</p><p>Usaremos uma biblioteca chamada <strong><a href="https://automapper.org/">AutoMapper</a></strong> para manipular o mapeamento entre objetos. O AutoMapper é uma biblioteca muito popular no mundo .NET e é usada em muitos projetos comerciais e de código aberto.</p><p>Digite as seguintes linhas na linha de comando para adicionar o AutoMapper à nossa aplicação:</p><pre><code>dotnet add package AutoMapper

dotnet add package AutoMapper.Extensions.Microsoft.DependencyInjection</code></pre><p>Para usar o AutoMapper, temos que fazer duas coisas:</p><ul><li>Registrá-lo para injeção de dependência;</li><li>Criar uma classe que vai dizer ao AutoMapper como manipular o mapeamento de classes.</li></ul><p>Primeiramente, abra a classe <code>Startup</code>. No método <code>ConfigureServices</code>, após a última linha, adicione o código a seguir:</p><p><code>services.AddAutoMapper();</code></p><p>Esta linha manipula todas as configurações necessárias do AutoMapper, tal como registrá-la para injeção de dependência e procurar na aplicação durante a inicialização para configurar perfis de mapeamento.</p><p>Agora, no diretório raiz, adicione uma nova pasta chamada <code>Mapping</code> e, em seguida, adicione uma classe chamada <code>ModelToResourceProfile</code>. Altere o código desta forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/9030a61943753475cd62b2bb421061fa.js"></script><!--kg-card-end: html--><p>A classe herda <code>Profile</code>, um tipo de classe que o AutoMapper usa para verificar como nossos mapeamentos funcionarão. No construtor, criamos um mapa entre a classe de modelo <code>Category</code> e a classe <code>CategoryResource</code>. Como as propriedades das classes têm os mesmos nomes e tipos, não precisamos usar nenhuma configuração especial para elas.</p><p>A etapa final consiste em alterar o controlador de categorias para usar AutoMapper para lidar com o mapeamento de nossos objetos.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/2217ebbbf115e89508940ec6a9212b49.js"></script><!--kg-card-end: html--><p>Alterei o construtor para receber uma instância de implementação de <code>IMapper</code>. Você pode usar esses métodos de interface para usar os métodos de mapeamento do AutoMapper.</p><p>Também alterei o método <code>GetAllAsync</code> para mapear nossa enumeração de categorias para uma enumeração de recursos usando o método Map. Este método recebe uma instância da classe ou coleção que queremos mapear e, por meio de <a href="https://www.geeksforgeeks.org/c-generics-introduction/">definições genéricas de tipos</a>, define para qual tipo de classe ou coleção deve ser mapeada.</p><p>Observe que alteramos facilmente a implementação sem precisar adaptar a classe de serviço ou repositório, simplesmente injetando uma nova dependência (<code>IMapper</code>) no construtor.</p><p>A injeção de dependência facilita a manutenção e alteração de sua aplicação, pois você não precisa interromper toda a implementação de seu código para adicionar ou remover recursos.</p><p>Você provavelmente percebeu que não apenas a classe do controlador, mas todas as classes que recebem dependências (incluindo as próprias dependências) foram resolvidas automaticamente para receber as classes corretas de acordo com as configurações de vinculação.</p><p>A injeção de dependência é incrível, não é?</p><p><br></p><figure class="kg-card kg-embed-card"><iframe src="https://giphy.com/embed/26gryRec47CcQj8fm" width="480" height="352" frameborder="0" class="giphy-embed" allowfullscreen="" title="Embedded content" loading="lazy" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; line-height: inherit; font-family: Lato, sans-serif; font-size: 22px; vertical-align: middle; color: rgb(218, 215, 210); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(24, 26, 27); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"></iframe></figure><p>Agora, inicie a API novamente usando o comando dotnet run e acesse <a href="http://localhost:5000/api/categories" rel="noopener">http://localhost:5000/api/categories</a> para ver a nova resposta JSON.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_QhjRK7dOyxX8FXL2.jpg" class="kg-image" alt="0_QhjRK7dOyxX8FXL2" width="230" height="195" loading="lazy"><figcaption>Estes são os dados de resposta que você deveria ver</figcaption></figure><p>Nós já temos nosso endpoint GET. Agora, vamos criar outro endpoint para fazer o POST (<strong>criação</strong>) de categorias.</p><h2 id="etapa-9-criando-outras-categorias">Etapa 9 — Criando outras categorias</h2><p>Ao lidar com a criação de recursos, temos que ter cuidado com muitas coisas, tais como:</p><ul><li>Validação de dados e integração de dados;</li><li>Autorização para criar recursos;</li><li>Manipulação de erros;</li><li>Registro.</li></ul><p>Não mostrarei como lidar com autenticação e autorização neste tutorial, mas você pode ver como implementar facilmente esses recursos lendo <strong><a href="https://medium.com/@evandro.ggomes/json-web-token-authentication-with-asp-net-core-2-0-b074b0cfc870">meu tutorial sobre autenticação de token da Web JSON</a></strong> (texto em inglês).</p><p>Além disso, existe um framework muito popular chamada <strong>ASP.NET Identity</strong>, que fornece soluções internas de segurança e registro de usuários que você pode usar em suas aplicações. Ele inclui provedores para trabalhar com o EF Core, como um <code>IdentityDbContext</code> interno que você pode usar. Você pode <a href="https://docs.microsoft.com/pt-BR/aspnet/identity/overview/getting-started/introduction-to-aspnet-identity">aprender mais sobre isso aqui</a>.</p><p>Vamos escrever um endpoint HTTP POST que cobrirá os outros cenários (exceto o de registro ou <em>logging</em>, que pode mudar de acordo com diferentes escopos e ferramentas).</p><p>Antes de criar outro endpoint, precisamos de um novo recurso. Este recurso vai mapear os dados que as aplicações de client enviam para este endpoint (neste caso, o nome da categoria) para uma classe da nossa aplicação.</p><p>Como estamos criando outra categoria, ainda não temos um ID. Isso significa que precisamos de um recurso que represente uma categoria contendo apenas seu nome.</p><p>Na pasta <code>Resources</code>, adicione uma nova classe chamada <code>SaveCategoryResource</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/e57e0bab6ac3c7bc87a2bbf648a76728.js"></script><!--kg-card-end: html--><p>Observe os atributos <code>Required</code> e <code>MaxLength</code> aplicados sobre a propriedade <code>Name</code>. Esses atributos são chamados de <a href="https://docs.microsoft.com/pt-BR/dotnet/api/system.componentmodel.dataannotations?view=netframework-4.7.2">anotações de dados</a>. O pipeline do ASP.NET Core usa esses metadados para validar solicitações e respostas. Como os nomes sugerem, o nome da categoria é obrigatório e tem um comprimento máximo de 30 caracteres.</p><p>Agora vamos definir a forma do novo endpoint de API. Adicione o seguinte código ao controlador de categorias:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/1468d4d0e087f8a1e6e3dcaddef56a4f.js"></script><!--kg-card-end: html--><p>Dizemos ao framework que este é um endpoint HTTP POST usando o atributo <code>HttpPost</code>.</p><p>Observe o tipo de resposta desse método, <code>Task&lt;IActionResult&gt;</code>. Os métodos presentes nas classes do controlador são chamados de <strong>ações</strong> e possuem essa assinatura porque podemos retornar mais de um resultado possível após a aplicação executar a ação.</p><p>Nesse caso, se o nome da categoria for inválido, ou se algo der errado, teremos que retornar uma resposta de <strong>código 400 (solicitação inválida)</strong>, contendo geralmente uma mensagem de erro que as aplicações de client podem usar para tratar o problema, ou podemos ter um <strong>200 resposta (sucesso)</strong> com dados se tudo der certo.</p><p>Existem muitos tipos de ação que você pode usar como resposta, mas geralmente podemos usar essa interface, e o ASP.NET Core usará uma classe padrão para isso.</p><p>O atributo <code>FromBody</code> informa ao ASP.NET Core para analisar os dados do corpo da solicitação em nossa nova classe de recurso. Isso significa que quando um JSON contendo o nome da categoria é enviado para nossa aplicação, o framework irá analisá-lo automaticamente para nossa nova classe.</p><p>Agora, vamos implementar nossa lógica de rota. Temos que seguir alguns passos para criar com sucesso uma nova categoria:</p><ul><li>Primeiro, temos que validar a solicitação recebida. Se a solicitação for inválida, temos que retornar uma resposta de solicitação inválida contendo as mensagens de erro;</li><li>Então, se a solicitação for válida, temos que mapear nosso novo recurso para nossa classe de modelo de categoria usando AutoMapper;</li><li>Agora, precisamos chamar nosso serviço, dizendo para salvar nossa nova categoria. Se a lógica de salvamento for executada sem problemas, ela deverá retornar uma resposta contendo nossos novos dados de categoria. Caso contrário, deve nos dar uma indicação de que o processo falhou e uma possível mensagem de erro;</li><li>Por fim, se houver um erro, retornamos uma solicitação inválida. Caso contrário, mapeamos nosso novo modelo de categoria para um recurso de categoria e retornamos uma resposta de sucesso ao client, contendo os novos dados de categoria.</li></ul><p>Parece ser complicado, mas é realmente fácil implementar essa lógica usando a arquitetura de serviço que estruturamos para nossa API.</p><p>Vamos começar validando a solicitação recebida.</p><h2 id="etapa-10-validando-o-corpo-da-solicita-o-usando-o-estado-do-modelo">Etapa 10 — Validando o corpo da solicitação usando o estado do modelo</h2><p>Os controladores do ASP.NET Core têm uma propriedade chamada <code>ModelState</code>. Esta propriedade é preenchida durante a execução da requisição <strong>antes</strong> de chegarmos à execução da nossa ação. É uma instância de <code>ModelStateDictionary</code>, uma classe que contém informações como se a solicitação é válida e possíveis mensagens de erro de validação.</p><p>Altere o código do endpoint da seguinte maneira:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/5dc3359cac70cb98cb167d2a18a28465.js"></script><!--kg-card-end: html--><p>O código verifica se o estado do modelo (neste caso, os dados enviados no corpo da solicitação) é válido, verificando nossas anotações de dados. Se não for, a API retornará uma solicitação inválida (com código de status 400) e as mensagens de erro padrão que nossos metadados de anotações forneceram.</p><p>O método <code>ModelState.GetErrorMessages()</code> ainda não foi implementado. É um <a href="https://docs.microsoft.com/pt-BR/dotnet/csharp/programming-guide/classes-and-structs/extension-methods">método de extensão</a> (um método que estende a funcionalidade de uma classe ou interface já existente) que vou implementar para converter os erros de validação em strings simples para retornar ao client.</p><p>Adicione uma nova pasta <code>Extensions</code> na raiz da nossa API e adicione uma nova classe <code>ModelStateExtensions</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/6f747c5f675e86e2f4209163005107bd.js"></script><!--kg-card-end: html--><p>Todos os métodos de extensão devem ser <strong>estáticos</strong>, assim como as classes onde são declarados. Isso significa que eles não lidam com dados de instância específicos e que são carregados apenas uma vez quando a aplicação é iniciada.</p><p>A palavra-chave <code>this</code> na frente da declaração do parâmetro diz ao compilador do C# para tratá-la como um método de extensão. O resultado é que podemos chamá-lo como um método normal desta classe desde que incluamos a respectiva diretiva <code>using</code> onde queremos usar a extensão.</p><p>A extensão usa <a href="https://www.tutorialsteacher.com/linq/what-is-linq">consultas LINQ</a>, um recurso muito útil do .NET que nos permite consultar e transformar dados usando expressões encadeadas. As expressões aqui transformam os métodos de erro de validação em uma lista de strings contendo as mensagens de erro.</p><p>Importe o namespace <code>Supermarket.API.Extensions</code> para o controlador de categorias antes de ir para a próxima etapa.</p><pre><code class="language-cs">using Supermarket.API.Extensions;</code></pre><p>Vamos continuar implementando a lógica do nosso endpoint mapeando nosso recurso para uma classe de modelo de categoria.</p><h2 id="etapa-11-mapeando-o-novo-recurso">Etapa 11 — Mapeando o novo recurso</h2><p>Nós já definimos um perfil de mapeamento para transformar modelos em recursos. Agora, precisamos de um novo perfil que faz o inverso.</p><p>Adicione uma nova classe <code>ResourceToModelProfile</code> na pasta <code>Mapping</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/55545874534fa574b738ad6e31197ef1.js"></script><!--kg-card-end: html--><p>Nada de novo aqui. Graças à mágica da injeção de dependência, o AutoMapper registrará automaticamente esse perfil quando a aplicação for iniciada, e não precisamos alterar nenhum outro local para usá-lo.</p><p>Agora podemos mapear nosso novo recurso para a respectiva classe de modelo:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/649cbd51b40920304fdef47e0b9a182d.js"></script><!--kg-card-end: html--><h2 id="etapa-12-aplicando-o-padr-o-solicita-o-resposta-para-manipular-a-l-gica-de-salvamento">Etapa 12 — Aplicando o padrão solicitação-resposta para manipular a lógica de salvamento</h2><p>Agora, temos que implementar a lógica mais interessante: salvar uma nova categoria. Esperamos que o nosso serviço faça isso.</p><p>A lógica de salvamento pode falhar devido a problemas na conexão com o banco de dados, ou talvez porque alguma regra de negócio interna invalide nossos dados.</p><p>Se algo der errado, não podemos simplesmente lançar um erro, porque isso poderia parar a API e a aplicação de client não saberia como lidar com o problema. Além disso, potencialmente teríamos algum mecanismo de log que registraria o erro.</p><p>O contrato do método de salvamento, ou seja, a assinatura do método e tipo de resposta, precisa nos indicar se o processo foi executado corretamente. Se o processo der certo, receberemos os dados da categoria. Caso contrário, temos que receber, pelo menos, uma mensagem de erro informando por que o processo falhou.</p><p>Podemos implementar esse recurso aplicando o <strong>padrão solicitação-resposta</strong>. Esse padrão de design corporativo encapsula nossos parâmetros de solicitação e resposta em classes como uma forma de encapsular informações que nossos serviços usarão para processar alguma tarefa e retornar informações para a classe que está usando o serviço.</p><p>Esse padrão nos dá algumas vantagens, como:</p><ul><li>Se precisarmos alterar nosso serviço para receber mais parâmetros, não precisamos quebrar sua assinatura;</li><li>Podemos definir um contrato padrão para nossa solicitação e/ou respostas;</li><li>Podemos lidar com a lógica de negócios e possíveis falhas sem interromper o processo da aplicação e não precisaremos usar muitos blocos try-catch.</li></ul><p>Vamos criar um tipo de resposta padrão para nossos métodos de serviços que lidam com alterações de dados. Para cada solicitação desse tipo, queremos saber se a solicitação é executada sem problemas. Se falhar, queremos retornar uma mensagem de erro ao client.</p><p>Na pasta <code>Domain</code>, dentro de <code>Services</code>, adicione um novo diretório chamado <code>Communication</code>. Adicione uma nova classe chamada <code>BaseResponse</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/d13dc12c61ba95cc206ec48c8b6a3dc9.js"></script><!--kg-card-end: html--><p>Essa é uma classe abstrata que nossos tipos de resposta herdarão.</p><p>A abstração define uma propriedade <code>Success</code>, que informará se as solicitações foram concluídas com sucesso, e uma propriedade <code>Message</code>, que terá a mensagem de erro se algo falhar.</p><p>Observe que essas propriedades são necessárias e somente as classes herdadas podem definir esses dados porque as classes filhas precisam passar essas informações pela função construtora.</p><blockquote><strong>Dica</strong>: não é uma boa prática definir classes base para tudo, porque as <a href="https://en.wikipedia.org/wiki/Fragile_base_class">classes base acoplam seu código</a> (texto em inglês) e impedem que você o modifique facilmente. Prefira usar <a href="https://medium.com/humans-create-software/composition-over-inheritance-cb6f88070205">composição sobre herança</a> (texto em inglês).<br><br>Para o escopo desta API, não é realmente um problema usar classes base, pois nossos serviços não crescerão muito. Se você perceber que um serviço ou uma aplicação crescerá e mudará com frequência, evite usar uma classe base.</blockquote><p>Agora, na mesma pasta, adicione uma nova classe chamada <code>SaveCategoryResponse</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/e3250e264841add70f7c8cae058259ac.js"></script><!--kg-card-end: html--><p>O tipo de respostas também define uma propriedade <code>Category</code>, a qual conterá os dados de nossa categoria se a solicitação for concluída com sucesso.</p><p>Note como eu defini três construtores diferentes para esta classe:</p><ul><li>Um privado, que vai passar os parâmetros de sucesso e mensagem para a classe base, e também define a propriedade <code>Category</code>;</li><li>Um construtor que recebe apenas a categoria como parâmetro. Este criará uma resposta bem-sucedida, chamando o construtor privado para definir as respectivas propriedades;</li><li>Um terceiro construtor que especifica apenas a mensagem. Este será usado para criar uma resposta de falha.</li></ul><p>Como o C# oferece suporte a vários construtores, simplificamos a criação da resposta sem definir métodos diferentes para lidar com isso, apenas usando construtores diferentes.</p><p>Agora podemos alterar nossa interface de serviço para adicionar o novo contrato do método de salvamento.</p><p>Altere a interface <code>ICategoryService</code> da seguinte forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/d60b53cb84a59aee2d0ea708c352e4f6.js"></script><!--kg-card-end: html--><p>Simplesmente passaremos uma categoria para este método e ele tratará de toda a lógica necessária para salvar os dados do modelo, orquestrando repositórios e outros serviços necessários para isso.</p><p>Observe que não estou criando uma classe de solicitação específica aqui, pois não precisamos de outros parâmetros para realizar essa tarefa. Existe um <a href="https://www.techopedia.com/definition/20262/keep-it-simple-stupid-principle-kiss-principle">conceito em programação de computadores chamado KISS</a> (texto em inglês)– abreviação de <em><strong>Keep it Simple, Stupid</strong></em>. Basicamente, ele diz que você deve manter sua aplicação mais simples possível.</p><p>Lembre-se disso ao projetar suas aplicações: <strong>aplique apenas o que você precisa para resolver um problema. Não exagere na engenharia de sua aplicação.</strong></p><p>Agora podemos finalizar a lógica de nosso endpoint:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/671ad2252b05346b68e0b8d490f70995.js"></script><!--kg-card-end: html--><p>Após validar os dados da solicitação e mapear o recurso para nosso modelo, passamos para o nosso serviço para persistir os dados.</p><p>Se algo falhar, a API retornará uma solicitação incorreta. Caso contrário, a API mapeia a nova categoria (agora incluindo dados como o novo <code>Id</code>) para nosso <code>CategoryResource</code> criado anteriormente e o envia para o client.</p><p>Agora, vamos implementar a lógica real para o serviço.</p><h4 id="etapa-13-a-l-gica-do-banco-de-dados-e-o-padr-o-unidade-de-trabalho"><strong>Etapa 13 — A lógica do banco de dados e o padrão unidade de trabalho</strong></h4><p>Já que faremos a persistência dos dados em um banco de dados, precisamos de um novo método em nosso repositório.</p><p>Adicione um novo método <code>AddAsync</code> para a interface <code>ICategoryRepository</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/88c418a20fed0f9b34661a86ef095c21.js"></script><!--kg-card-end: html--><p>Agora vamos implementar este método em nossa classe de repositório:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/d0ea98d8a16b5b2a4b7fe35ac6b6549a.js"></script><!--kg-card-end: html--><p>Aqui, estamos simplesmente adicionando uma nova categoria ao nosso conjunto.</p><p>Quando adicionamos uma classe a um <code>DBSet&lt;&gt;</code>, o EF Core começa a rastrear todas as alterações que acontecem em nosso modelo e usa esses dados no estado atual para gerar consultas que inserirão, atualizarão ou excluirão modelos.</p><p>A implementação atual simplesmente adiciona o modelo ao nosso conjunto, mas <strong>nossos dados ainda não serão salvos</strong>.</p><p>Existe um método chamado <code>SaveChanges</code> presente na classe de contexto que temos que chamar para realmente executar as consultas no banco de dados. Eu não chamei aqui porque <a href="https://programmingwithmosh.com/entity-framework/common-mistakes-with-the-repository-pattern/"><strong>um repositório não deve fazer a persistência de dados</strong></a>, é <strong>apenas uma coleção de objetos na memória</strong> (texto em inglês).</p><p>Esse assunto é muito controverso até mesmo entre desenvolvedores .NET experientes, mas deixe-me explicar por que você não deve chamar <code>SaveChanges</code> em classes de repositório.</p><p>Podemos pensar em um repositório conceitualmente como qualquer outra coleção presente no framework .NET. Ao lidar com uma coleção em .NET (e muitas outras linguagens de programação, como Javascript e Java), você geralmente pode:</p><ul><li>Adicionar novos itens a ela (como quando você insere dados em listas, vetores e dicionários);</li><li>Encontrar ou filtrar itens;</li><li>Remover um item da coleção;</li><li>Substituir um dado item ou atualizá-lo.</li></ul><p>Pense em uma lista do mundo real. Imagine que você está escrevendo uma lista de compras para comprar coisas em um supermercado (<em>que coincidência, não?</em>).</p><p>Na lista, você escreve todas as frutas que precisa comprar. Você pode adicionar frutas a esta lista, remover uma fruta se desistir de comprá-la ou substituir o nome de uma fruta. Mas você não pode <strong>salvar</strong> frutas na lista. Não faz sentido dizer uma coisa dessas naturalmente em português.</p><blockquote><strong>Dica:</strong> ao projetar classes e interfaces em linguagens de programação orientadas a objetos, tente usar linguagem natural para verificar se o que você está fazendo parece estar correto.<br><br>Faz sentido, por exemplo, dizer que um homem implementa uma interface de pessoa, mas não faz sentido dizer que um homem implementa uma conta.</blockquote><p>Se você quiser "salvar" as listas de frutas (neste caso, comprar todas as frutas), você paga e o supermercado processa os dados do estoque para verificar se eles têm que comprar mais frutas de um fornecedor ou não.</p><p>A mesma lógica pode ser aplicada na programação. Os repositórios não devem salvar, atualizar ou excluir dados. Em vez disso, eles devem delegá-lo a uma classe diferente para lidar com essa lógica.</p><p>Há outro problema ao salvar dados diretamente em um repositório: <strong>você não pode usar transações.</strong></p><p>Imagine que nossa aplicação possui um mecanismo de log que armazena algum nome de usuário e a ação realizada toda vez que é feita uma alteração nos dados da API.</p><p>Agora, imagine que, por algum motivo, você tem uma chamada para um serviço que atualiza o nome de usuário (não é um cenário comum, mas vamos considerar).</p><p>Você concorda que para alterar o nome de usuário em uma tabela de usuários fictícia, primeiro você precisa atualizar todos os logs para informar corretamente quem executou essa operação, certo?</p><p>Imagine, então, que implementamos o método de atualização para usuários e logs em diferentes repositórios, e ambos chamam <code>SaveChanges</code>. O que acontece se um desses métodos falhar no meio do processo de atualização? Você vai acabar com inconsistência de dados.</p><p>Devemos salvar nossas alterações no banco de dados somente depois que tudo terminar. Para fazer isso, temos que usar uma <strong><a href="https://pt.wikipedia.org/wiki/Transa%C3%A7%C3%A3o_(banco_de_dados)">transação</a></strong>, que é basicamente um recurso que a maioria dos bancos de dados implementa para salvar dados somente após a conclusão de uma operação complexa.</p><p><em>"- Tudo bem. Então, se não podemos salvar coisas aqui, onde devemos salvá-las?"</em></p><p>Um padrão comum para lidar com esse problema é o <strong>Padrão Unidade de Trabalho </strong>(<a href="https://docs.microsoft.com/pt-BR/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application">Unit of Work Pattern</a><strong>)</strong>. Esse padrão consiste em uma classe que recebe nossa instância <code>AppDbContext</code> como dependência e expõe métodos para iniciar, concluir ou abortar transações.</p><p>Usaremos uma implementação simples de uma unidade de trabalho para abordar nosso problema aqui.</p><p>Adicione uma nova interface dentro da pasta <code>Repositories</code> da camada <code>Domain</code> chamada <code>IUnitOfWork</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/58d90e0fc3a336824822d0f264a8f26c.js"></script><!--kg-card-end: html--><p>Como você pode ver, ela só expõe um método que vai concluir de forma assíncrona as operações de gerenciamento de dados.</p><p>Agora, vamos adicionar a implementação real.</p><p>Adicione uma nova classe chamada <code>UnitOfWork</code> na pasta <code>RepositoriesRepositories</code> da camada <code>Persistence</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/59036a427482075dab3edb503b3fb0e3.js"></script><!--kg-card-end: html--><p>Essa é uma implementação simples e limpa que só salvará todas as alterações no banco de dados depois que você terminar de modificá-lo usando seus repositórios.</p><p><br>Se você pesquisar implementações do padrão Unidade de Trabalho, encontrará outras mais complexas implementando operações de reversão (<em>rollback</em>).</p><p>Como o <strong>EF Core já implementa os padrões repositório e unidade de trabalho nos bastidores</strong>, não precisamos nos preocupar com um método de reversão.</p><p><em>"- O que? Então por que nós temos que criar todas essas interfaces e classes?"</em></p><p>Separar a lógica de persistência das regras de negócios oferece muitas vantagens em termos de reutilização e manutenção de código. Se usarmos o EF Core diretamente, acabaremos tendo classes mais complexas que não serão tão fáceis de mudar.</p><p>Imagine que no futuro você decida mudar o framework ORM para um diferente, como o <a href="https://www.c-sharpcorner.com/article/crud-operation-in-asp-net-core-2-0-using-dapper-orm/">Dapper</a> (texto em inglês), por exemplo, ou se tiver que implementar consultas SQL simples por causa do desempenho. Se você acoplar sua lógica de consultas aos seus serviços, será difícil mudar a lógica, pois você terá que fazer isso em muitas classes.</p><p>Usando o padrão de repositório, você pode simplesmente implementar uma nova classe de repositório e vinculá-la usando injeção de dependência.</p><p>Então, basicamente, se você usar o EF Core diretamente em seus serviços e precisar alterar alguma coisa, é isso que você obterá:</p><p>Como eu disse, o EF Core implementa os padrões Repositório e Unidade de Trabalho nos bastidores. Podemos considerar nossas propriedades <code>DbSet&lt;&gt;</code> como repositórios. Além disso, <code>SaveChanges</code> apenas persiste os dados em caso de sucesso para todas as operações do banco de dados.</p><p>Agora que você sabe o que é uma unidade de trabalho e por que usá-la com repositórios, vamos implementar a lógica do serviço real.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/72595a698c5e1ddcb688e16f7aeb0539.js"></script><!--kg-card-end: html--><p>Graças à nossa arquitetura desacoplada, podemos simplesmente passar uma instância de <code>UnitOfWork</code> como uma dependência para esta classe.</p><p>Nossa lógica de negócios é bastante simples.</p><p>Primeiro, tentamos adicionar a nova categoria ao banco de dados e depois a API tenta salvá-la, envolvendo tudo dentro de um bloco try-catch.</p><p>Se algo falhar, a API chama algum serviço de log fictício e retorna uma resposta indicando falha.</p><p>Se o processo terminar sem problemas, a aplicação retornará uma resposta de sucesso, enviando nossos dados de categoria. Simples, certo?</p><blockquote><strong>Dica:</strong> Em aplicações do mundo real, você não deve envolver tudo dentro de um bloco try-catch genérico, mas sim lidar com todos os erros possíveis separadamente.<br><br>Simplesmente adicionar um bloco try-catch não cobrirá a maioria dos possíveis cenários de falha. Certifique-se de corrigir o tratamento de erros do implemento.</blockquote><p>A última etapa antes de testar nossa API é vincular a interface de unidade de trabalho à sua respectiva classe.</p><p>Adicione esta nova linha ao método <code>ConfigureServices</code> da classe <code>Startup</code>:</p><pre><code class="language-cs">services.AddScoped&lt;IUnitOfWork, UnitOfWork&gt;();</code></pre><p>Agora vamos testá-la!</p><h2 id="etapa-14-testando-nosso-endpoint-de-post-usando-o-postman">Etapa 14 — Testando nosso endpoint de POST usando o Postman</h2><p>Inicie nossa aplicação novamente usando <code>dotnet run</code>.</p><p>Não podemos usar o navegador para testar um endpoint de POST. Vamos usar o <strong>Postman</strong> para testar nossos endpoints. É uma ferramenta muito útil para testar APIs RESTful.</p><p>Abra o Postman e feche as mensagens introdutórias. Você verá uma tela como esta aqui:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_ZZo6TwEXLK8ngpTV.jpg" class="kg-image" alt="0_ZZo6TwEXLK8ngpTV" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_ZZo6TwEXLK8ngpTV.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_ZZo6TwEXLK8ngpTV.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="221" loading="lazy"><figcaption>Tela mostrando as opções para testar endpoints</figcaption></figure><p>Altere o <code>GET</code> selecionado por padrão na caixa de seleção por <code>POST</code>.</p><p>Digite o endereço da API no campo <code>Enter request URL</code>.</p><p>Temos que fornecer os dados do corpo da solicitação a ser enviada à nossa API. Clique no item de menu <code>Body</code> e altere a opção exibida abaixo dela por <code>raw</code>.</p><p>O Postman vai mostrar uma opção <code>Text</code> à direita. Altere-a para <code>JSON (application/json)</code> e cole o seguinte dado JSON abaixo:</p><pre><code class="language-json">{
  "name": ""
}</code></pre><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_8hhlYg26sNJRWmbe.jpg" class="kg-image" alt="0_8hhlYg26sNJRWmbe" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_8hhlYg26sNJRWmbe.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_8hhlYg26sNJRWmbe.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="213" loading="lazy"><figcaption>Tela antes de enviar uma solicitação</figcaption></figure><p>Como você pode ver, vamos enviar uma string de nome vazio para nosso novo endpoint.</p><p>Clique no botão <code>Send</code>. Você vai receber uma saída como esta:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_eqRGjAtndTIgTyqw.jpg" class="kg-image" alt="0_eqRGjAtndTIgTyqw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_eqRGjAtndTIgTyqw.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_eqRGjAtndTIgTyqw.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="111" loading="lazy"><figcaption>Nossa lógica de validação funciona!</figcaption></figure><p>Se lembra da lógica de validação que criamos para o endpoint? Esta saída é a prova de que ela funciona!</p><p>Note também o código de status 400 exibido à direita. O resultado <code>BadRequest</code> adiciona automaticamente esse código de status à resposta.</p><p>Agora vamos alterar o dado JSON para um válido para ver a nova resposta:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_z0_hmEcSzvkvbQQX.jpg" class="kg-image" alt="0_z0_hmEcSzvkvbQQX" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_z0_hmEcSzvkvbQQX.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_z0_hmEcSzvkvbQQX.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="439" loading="lazy"><figcaption>Finalmente, o resultado que nós esperávamos ter</figcaption></figure><p>A API criou corretamente nosso novo recurso.</p><p>Até agora, nossa API pode listar e criar categorias. Você aprendeu muitas coisas sobre a linguagem C#, o framework ASP.NET Core e também algumas abordagens comuns de design para estruturar suas APIs.</p><p>Vamos continuar nossa API de categorias criando o endpoint para atualizar categorias.</p><p>Daqui para frente, já que eu expliquei a maioria dos conceitos, vou acelerar as explicações e me concentrar nos novos assuntos para não gastar seu tempo. Vamos lá!</p><h2 id="etapa-15-atualizando-categorias">Etapa 15 — Atualizando categorias</h2><p>Para atualizar as categorias, precisamos de um endpoint HTTP de PUT.</p><p>A lógica que temos que colocar no código é muito similar à do POST:</p><ul><li>Primeiro, temos que validar a solicitação recebida usando o <code>ModelState</code>;</li><li>Se a solicitação for válida, a API deve mapear o recurso de entrada para uma classe de modelo usando o AutoMapper;</li><li>Em seguida, precisamos ligar para o nosso serviço, informando para atualizar a categoria, fornecendo o respectivo <code>Id</code> da categoria e os dados atualizados;</li><li>Se não houver nenhuma categoria com o <code>Id</code> fornecido no banco de dados, retornaremos uma solicitação inválida. Poderíamos usar um resultado <code>NotFound</code>, mas isso não importa muito para esse escopo, pois fornecemos uma mensagem de erro para as aplicações de client;</li><li>Se a lógica de salvamento for executada corretamente, o serviço deverá retornar uma resposta contendo os dados da categoria atualizados. Caso contrário, deve nos dar uma indicação de que o processo falhou e uma mensagem indicando o motivo;</li><li>Por fim, se houver um erro, a API retornará uma solicitação incorreta. Caso contrário, ela mapeia o modelo de categoria atualizado para um recurso de categoria e retorna uma resposta de sucesso à aplicação de client.</li></ul><p>Vamos adicionar o novo método <code>PutAsync</code> à classe controladora:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/3589885761850a15bc88568f12fcdd27.js"></script><!--kg-card-end: html--><p>Se você comparar com a lógica do POST, você notará que temos apenas uma diferença aqui: o atributo <code>HttpPut</code> especifica um parâmetro que a rota dada deve receber.</p><p>Chamaremos esse endpoint especificando o <code>Id</code> da categoria como o último fragmento de URL, como <code>/api/categories/1</code>. O pipeline do ASP.NET Core analisa esse fragmento para o parâmetro de mesmo nome.</p><p>Agora, temos que definir a assinatura do método <code>UpdateAsync</code> na interface <code>ICategoryService</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/2ed8d168d91c6927dc992fe643a60265.js"></script><!--kg-card-end: html--><p>Passemos para a lógica real.</p><h2 id="etapa-16-a-l-gica-da-atualiza-o">Etapa 16 — A lógica da atualização</h2><p>Para atualizar nossa categoria, primeiro precisamos retornar os dados atuais do banco de dados, caso existam. Também precisamos atualizá-los em nosso <code>DBSet&lt;&gt;</code>.</p><p>Vamos adicionar dois novos contratos de método à nossa interface <code>ICategoryService</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/091a450f716ee0899f3c3ba958880718.js"></script><!--kg-card-end: html--><p>Definimos o método <code>FindByIdAsync</code>, que retornará de forma assíncrona uma categoria do banco de dados, e o método <code>Update</code>. Preste atenção no fato de que o método <code>Update</code> não é assíncrono, pois a API do EF Core não requer um método assíncrono para atualizar os modelos.</p><p>Agora vamos implementar a lógica real na classe <code>CategoryRepository</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/683412268007ec31a78cc97b0e65b7d4.js"></script><!--kg-card-end: html--><p>Finalmente, podemos adicionar o código para a lógica do serviço:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/aab855d881ba6ac90fabf499a7fec8b6.js"></script><!--kg-card-end: html--><p>A API tenta obter a categoria do banco de dados. Se o resultado for <code>null</code>, retornamos uma resposta informando que a categoria não existe. Se a categoria existir, precisamos definir seu novo nome.</p><p>A API, então, tenta salvar as alterações, como quando criamos uma nova categoria. Se o processo for concluído, o serviço retornará uma resposta de sucesso. Caso contrário, a lógica de log é executada e o endpoint recebe uma resposta contendo uma mensagem de erro.</p><p>Agora vamos ao teste. Primeiro, vamos adicionar uma nova categoria para ter um <code>Id</code> válido para usar. Poderíamos usar os identificadores das categorias que propagamos em nosso banco de dados, mas quero fazer dessa maneira para mostrar que nossa API atualizará o recurso correto.</p><p>Execute a aplicação novamente e, usando o Postman, envie um POST de uma nova categoria para o banco de dados:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_UIjyDcw4lnRqY072.jpg" class="kg-image" alt="0_UIjyDcw4lnRqY072" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_UIjyDcw4lnRqY072.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_UIjyDcw4lnRqY072.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="394" loading="lazy"><figcaption>Adicionando uma nova categoria para atualizá-la posteriormente</figcaption></figure><p>Com um <code>Id</code> válido em mãos, altere a opção <code>POST</code> para <code>PUT</code> na caixa de seleção e adicione o valor do ID no final da URL. Altere a propriedade <code>name</code> para um nome diferente e envie a solicitação para verificar o resultado:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_i2cpHjrW-422v7jt.jpg" class="kg-image" alt="0_i2cpHjrW-422v7jt" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_i2cpHjrW-422v7jt.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_i2cpHjrW-422v7jt.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="386" loading="lazy"><figcaption>Os dados da categoria foram atualizados com sucesso</figcaption></figure><p>Você pode enviar uma solicitação GET para o endpoint da API para garantir que você editor corretamente o nome da categoria:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_3b8rR_shOGcI6P8y.jpg" class="kg-image" alt="0_3b8rR_shOGcI6P8y" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_3b8rR_shOGcI6P8y.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_3b8rR_shOGcI6P8y.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="245" loading="lazy"><figcaption>Este é agora o resultado de uma solicitação GET</figcaption></figure><p>A última operação que nós temos que implementar para as categorias é a exclusão de categorias. Vamos fazer isso criando um endpoint de HTTP Delete.</p><h2 id="etapa-17-excluindo-categorias">Etapa 17 — Excluindo categorias</h2><p>A lógica para excluir categorias é realmente fácil de implementar já que a maioria dos métodos que precisamos foi construída anteriormente.</p><p>Estas são as etapas necessárias para nossa rota funcionar:</p><ul><li>A API precisa chamar nosso serviço, informando para excluir nossa categoria, fornecendo o respectivo <code>Id</code>;</li><li>Se não houver nenhuma categoria com o ID informado no banco de dados, o serviço deverá retornar uma mensagem indicando isso;</li><li>Se a lógica de exclusão for executada sem problemas, o serviço deve retornar uma resposta contendo nossos dados de categoria excluídos. Caso contrário, deve nos dar uma indicação de que o processo falhou e uma possível mensagem de erro;</li><li>Por fim, se houver um erro, a API retornará uma solicitação inválida. Caso contrário, a API mapeia a categoria atualizada para um recurso e retorna uma resposta de sucesso ao client.</li></ul><p>Vamos começar adicionando a lógica do novo endpoint:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/9b71d67997d4d8596b8a930c654f3368.js"></script><!--kg-card-end: html--><p>O atributo <code>HttpDelete</code> também define um modelo de <code>id</code>.</p><p>Antes de adicionar a assinatura <code>DeleteAsync</code> à nossa interface <code>ICategoryService</code>, precisamos fazer uma pequena refatoração.</p><p>O novo método de serviço deve retornar uma resposta contendo os dados da categoria, da mesma forma que fizemos para os métodos <code>PostAsync</code> e <code>UpdateAsync</code>. Poderíamos reutilizar o <code>SaveCategoryResponse</code> para essa finalidade, mas não estamos salvando dados neste caso.</p><p>Para evitar a criação de uma nova classe com a mesma forma para atender a esse requisito, podemos simplesmente renomear nosso <code>SaveCategoryResponse</code> para <code>CategoryResponse</code>.</p><p>Se estiver usando o Visual Studio Code, você pode abrir a classe <code>SaveCategoryResponse</code>, colocar o cursor do mouse acima do nome da classe e usar a opção <code>Change All Occurrences</code> para renomear a classe:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cdn-media-1.freecodecamp.org/images/0*0vbRNdSBgQqsf-TO" class="kg-image" alt="0*0vbRNdSBgQqsf-TO" width="522" height="374" loading="lazy"><figcaption>Forma fácil de alterar o nome em todos os arquivos</figcaption></figure><p>Certifique-se de renomear o nome de arquivo também.</p><p>Vamos adicionar a assinatura do método <code>DeleteAsync</code> à interface <code>ICategoryService</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/ffab9b7a5d5b3b7cd6036c63cb3c37d1.js"></script><!--kg-card-end: html--><p>Antes de implementar a lógica de exclusão, precisamos de um novo método em nosso repositório.</p><p>Adicione a assinatura do método <code>Remove</code> à interface <code>ICategoryRepository</code>:</p><pre><code>void Remove(Category category);</code></pre><p>E agora adicione a implementação real na classe do repositório:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/ebc67a8319a646914fbb45f7896df17f.js"></script><!--kg-card-end: html--><p>O EF Core requer que a instância do nosso modelo seja passada para o método <code>Remove</code> para entender corretamente qual modelo estamos excluindo, em vez de simplesmente passar um <code>Id</code>.</p><p>Finalmente, vamos implementar a lógica na classe <code>CategoryService</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/fb05d14fbaca913e749c136cd2a94569.js"></script><!--kg-card-end: html--><p>Não há nada de novo aqui. O serviço tenta encontrar a categoria por ID e então chama nosso repositório para excluir a categoria. Finalmente, a unidade de trabalho completa a transação executando a operação real no banco de dados.</p><p><em>"- </em>Ei, mas e os produtos de cada categoria? Você não precisa criar um repositório e excluir os produtos primeiro, para evitar erros?<em>"</em></p><p>A resposta é <strong>não</strong>. Graças ao <a href="https://docs.microsoft.com/pt-br/ef/core/querying/tracking">mecanismo de acompanhamento do EF Core</a>, quando carregamos um modelo do banco de dados, a estrutura sabe quais relacionamentos o modelo possui. Se o excluirmos, o EF Core saberá que deve excluir todos os modelos relacionados primeiro, recursivamente.</p><p>Podemos desabilitar esse recurso ao mapear nossas classes para tabelas de banco de dados, mas está fora do escopo deste tutorial. <a href="https://entityframeworkcore.com/saving-data-cascade-delete">Dê uma olhada aqui</a> (texto em inglês) se você quiser aprender sobre esse recurso.</p><p>Agora é hora de testar nosso novo endpoint. Execute a aplicação novamente e envie uma solicitação DELETE usando o Postman da seguinte maneira:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_Ju431skSI6l5IOvV.jpg" class="kg-image" alt="0_Ju431skSI6l5IOvV" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_Ju431skSI6l5IOvV.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_Ju431skSI6l5IOvV.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="300" loading="lazy"><figcaption>Como você pode ver, a API excluiu a categoria existente sem problemas</figcaption></figure><p>Podemos conferir se nossa API está funcionando corretamente enviando uma solicitação GET:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_v8PzsTC57h3uIlN1.jpg" class="kg-image" alt="0_v8PzsTC57h3uIlN1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/0_v8PzsTC57h3uIlN1.jpg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/0_v8PzsTC57h3uIlN1.jpg 800w" sizes="(min-width: 720px) 720px" width="800" height="324" loading="lazy"><figcaption>Agora, recebemos apenas uma categoria como resultado</figcaption></figure><p>Finalizamos a API de categorias. Agora é hora de passar para a API de produtos.</p><h2 id="etapa-18-a-api-de-produtos">Etapa 18 — A API de produtos</h2><p>Até agora, você aprendeu como implementar todos os verbos HTTP básicos para lidar com operações CRUD com ASP.NET Core. Vamos para o próximo nível implementando nossa API de produtos.</p><p>Não detalharei todos os verbos HTTP novamente porque seria exaustivo. Para a parte final deste tutorial, abordarei apenas a solicitação GET, para mostrar como incluir entidades relacionadas ao consultar dados do banco de dados e como usar os atributos <code>Description</code> que definimos para os valores de enumeração <code>EUnitOfMeasurement</code>.</p><p>Adicione um novo controlador na pasta <code>Controllers</code> chamada <code>ProductsController</code>.</p><p>Antes de codificar qualquer coisa aqui, temos que criar o recurso do produto.</p><p>Deixe-me refrescar sua memória mostrando novamente como nosso recurso deve ficar:</p><pre><code class="language-json">{
 [
  {
   "id": 1,
   "name": "Sugar",
   "quantityInPackage": 1,
   "unitOfMeasurement": "KG"
   "category": {
   "id": 3,
   "name": "Sugar"
   }
  },
  … // Outros produtos
 ]
}</code></pre><p>Queremos um array em JSON contendo todos os produtos do banco de dados.</p><p>Os dados em JSON diferem do modelo do produto por duas coisas:</p><ul><li>A unidade de medida é exibida em uma forma mais curta, mostrando apenas sua abreviação;</li><li>Emitimos os dados da categoria <strong>sem</strong> incluir a propriedade <code>CategoryId</code>.</li></ul><p>Para representar a unidade de medida, podemos usar uma propriedade de string simples em vez de um tipo enum (a propósito, não temos um tipo enum padrão para dados JSON. Então, temos que transformá-lo em um tipo diferente).</p><p>Agora que sabemos como moldar o novo recurso, vamos criá-lo. Adicione uma nova classe <code>ProductResource</code> na pasta <code>Resources</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/efbb79b4830c39a4d8ea33b1c6945d2e.js"></script><!--kg-card-end: html--><p>Agora temos que configurar o mapeamento entre a classe de modelo e nossa nova classe de recurso.</p><p>A configuração de mapeamento será quase a mesma usada para outros mapeamentos, mas aqui temos que lidar com a transformação de nosso enum <code>EUnitOfMeasurement</code> em uma string.</p><p>Você se lembra do atributo <code>StringValue</code> aplicado sobre os tipos de enumeração? Agora, vou mostrar como extrair essas informações usando um recurso poderoso do framework .NET: <a href="https://www.tutorialspoint.com/csharp/csharp_reflection.htm">a API Reflection</a> (texto em inglês).</p><p>A API Reflection é um poderoso conjunto de recursos que nos permite extrair e manipular metadados. Muitas estruturas e bibliotecas (incluindo o próprio ASP.NET Core) usam esses recursos para lidar com muitas coisas nos bastidores.</p><p>Agora, vamos ver como isso funciona na prática. Adicione uma nova classe na pasta <code>Extensions</code> chamada <code>EnumExtensions</code>.</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/b53d988e71388134a721f4aa5b68fc58.js"></script><!--kg-card-end: html--><p>Pode parecer assustador na primeira vez que você olhar para o código, mas não é tão complexo. Vamos detalhar a definição de código para entender como ele funciona.</p><p>Primeiramente, definimos um <a href="https://docs.microsoft.com/pt-BR/dotnet/csharp/fundamentals/types/generics">método genérico</a> (um método que pode receber mais de um tipo de argumento, neste caso, representado pela declaração <code>TEnum</code>) que recebe um determinado enum como argumento.</p><p>Como <code>enum</code> é uma palavra-chave reservada em C#, adicionamos um @ na frente do nome do parâmetro para torná-lo um nome válido.</p><p>A primeira etapa de execução desse método é obter as informações de tipo (classe, interface, enum ou definição de estrutura) do parâmetro usando o método <code>GetType</code>.</p><p>Em seguida, o método obtém o valor de enumeração específico (por exemplo, <code>Kilogram</code>) usando <code>GetField(@enum.ToString())</code>.</p><p>A próxima linha encontra todos os atributos de <code>Description</code> aplicados sobre o valor de enumeração e armazena seus dados em uma matriz (podemos especificar vários atributos para uma mesma propriedade em alguns casos).</p><p>A última linha usa uma sintaxe mais curta para verificar se temos pelo menos um atributo de descrição para o tipo de enumeração. Se tivermos, retornaremos o valor <code>Description</code> fornecido por este atributo. Caso contrário, retornamos a enumeração como uma string, usando a conversão padrão.</p><p>O operador <code>?.</code> (um <a href="https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/conditional-operator">operador condicional nulo</a>) verifica se o valor é <code>null</code> antes de acessar sua propriedade.</p><p>O operador <code>??</code> (um <a href="https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/null-coalescing-operator">operador de coalescência nula</a>) informa à aplicação para retornar o valor à esquerda se não estiver vazio ou o valor à direita caso contrário.</p><p>Como temos um método de extensão para extrair descrições, vamos configurar nosso mapeamento entre modelo e recurso. Graças ao AutoMapper, podemos fazê-lo com apenas uma linha extra.</p><p>Abra a classe <code>ModelToResourceProfile</code> e altere o código desta forma:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/e1594501f7072d4a1dd785962af8da17.js"></script><!--kg-card-end: html--><p>Essa sintaxe diz ao AutoMapper para usar o novo método de extensão para converter nosso valor <code>EUnitOfMeasurement</code> em uma string contendo sua descrição. Simples, certo? Você pode <a href="http://docs.automapper.org/en/stable/Inline-Mapping.html">ler a documentação oficial</a> (em inglês) para entender a sintaxe completa.</p><p>Observe que não definimos nenhuma configuração de mapeamento para a propriedade da categoria. Como configuramos anteriormente o mapeamento para categorias e porque o modelo de produto possui uma propriedade de categoria do mesmo tipo e nome, o AutoMapper sabe implicitamente que deve mapeá-lo usando a respectiva configuração.</p><p>Agora, vamos adicionar o código do endpoint. Altere o código <code>ProductsController</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/b41037451582792315634540584be0df.js"></script><!--kg-card-end: html--><p>Basicamente, a mesma estrutura definida para o controlador de categorias.</p><p>Vamos para a parte do serviço. Adicione uma nova interface <code>IProductService</code> à pasta <code>Services</code> presente na camada <code>Domain</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/b76512f2db624ac5a50141b12d9536f5.js"></script><!--kg-card-end: html--><p>Você deve ter percebido que precisamos de um repositório antes de realmente implementar o novo serviço.</p><p>Adicione uma nova interface chamada <code>IProductRepository</code> à respectiva pasta:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/7715aee5d59818d29d6bfea7f3025849.js"></script><!--kg-card-end: html--><p>Agora vamos implementar o repositório. Temos que implementá-lo quase da mesma forma que fizemos para o repositório de categorias, exceto que precisamos retornar os respectivos dados de categoria de cada produto ao consultar os dados.</p><p>O EF Core, por padrão, não inclui entidades relacionadas aos seus modelos ao consultar dados porque pode ser muito lento (imagine um modelo com dez entidades relacionadas, todas as entidades relacionadas com seus próprios relacionamentos).</p><p>Para incluir os dados das categorias, precisamos apenas de uma linha extra:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/17cb4c67cf50b03a02a781fb1080683b.js"></script><!--kg-card-end: html--><p>Observe a chamada para <code>Include(p =&gt; p.Category)</code>. Podemos encadear essa sintaxe para incluir quantas entidades forem necessárias ao consultar dados. O EF Core vai convertê-lo em uma junção ao realizar a seleção.</p><p>Agora podemos implementar a classe <code>ProductService</code> da mesma forma que fizemos para as categorias:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/01ecadb5bfa07534fd3c005641dd9ccc.js"></script><!--kg-card-end: html--><p>Vamos vincular as dependências alterando a classe <code>Startup</code>:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/f76d4bd23ebd239a4c938bd970b69932.js"></script><!--kg-card-end: html--><p>Finalmente, antes de testar a API, vamos alterar a classe <code>AppDbContext</code> para incluir alguns produtos quando inicializar a aplicação de modo que podemos ver os resultados:</p><!--kg-card-begin: html--><script src="https://gist.github.com/evgomes/45ccfd24c90c4431f55ca648def25aa2.js"></script><!--kg-card-end: html--><p>Adicionei dois produtos fictícios associando-os às categorias que criamos quando da inicialização da aplicação.</p><p>É hora de testar! Execute a API novamente e envie uma solicitação GET para <code>/api/products</code> usando Postman:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/08/1_ztoCnav4f95YwGJnQkiuxQ.png" class="kg-image" alt="1_ztoCnav4f95YwGJnQkiuxQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/08/1_ztoCnav4f95YwGJnQkiuxQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/08/1_ztoCnav4f95YwGJnQkiuxQ.png 800w" sizes="(min-width: 720px) 720px" width="800" height="377" loading="lazy"><figcaption>Conseguimos! Aqui estão nossos produtos</figcaption></figure><p>É isso! Parabéns!</p><p>Agora, você tem uma base sobre como construir uma API RESTful usando ASP.NET Core usando uma arquitetura desacoplada. Você aprendeu muitas coisas sobre a estrutura do .NET Core, como trabalhar com C#, os conceitos básicos do EF Core e AutoMapper e muitos padrões úteis para usar ao projetar suas aplicações.</p><p>Você pode verificar a implementação completa da API, contendo os demais verbos HTTP para produtos, verificando o repositório do GitHub (em inglês):</p><p><a href="https://github.com/evgomes/supermarket-api" rel="noopener"><strong>evgomes/supermarket-api</strong></a><br><a href="https://github.com/evgomes/supermarket-api">API RESTful simples criada com ASP.NET Core 2.2 para mostrar como criar serviços RESTful usando uma arquitetura desacoplada e de fácil manutenção.</a></p><h2 id="conclus-o">Conclusão</h2><p>O ASP.NET Core é um ótimo framework para usar ao criar aplicações da web. Ele vem com muitas APIs úteis que você pode usar para criar aplicações limpas e de fácil manutenção. Considere-o como uma opção ao criar aplicações profissionais.</p><p>Este artigo não abordou todos os aspectos de uma API profissional, mas você aprendeu todos os conceitos básicos. Você também aprendeu muitos padrões úteis para resolver padrões que enfrentamos diariamente.</p><p>Espero que tenha gostado deste artigo e espero que tenha sido útil para você. Agradeço seu <em>feedback</em> para entender como posso melhorar isso.</p><h3 id="refer-ncias-para-continuar-aprendendo">Referências para continuar aprendendo</h3><p><a href="https://docs.microsoft.com/pt-BR/dotnet/core/tutorials/">Tutoriais de .NET — Microsoft Docs</a></p><p><a href="https://docs.microsoft.com/pt-BR/aspnet/core/?view=aspnetcore-6.0#pivot=core&amp;panel=core_tutorials">Documentação do ASP.NET Core — Microsoft Docs</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Tudo o que você precisa saber sobre ng-template, ng-content, ng-container e *ngTemplateOutlet em Angular ]]>
                </title>
                <description>
                    <![CDATA[ Era um dia daqueles em que eu me encontrava ocupado trabalhando em novos recursos de um projeto para o meu escritório. Foi aí que, de repente, algo chamou minha atenção: DOM final renderizado no AngularAo inspecionar o DOM, eu vi que ngcontent estava sendo aplicado nos elementos pelo Angular. Hmm… ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/tudo-o-que-voce-precisa-saber-sobre-ng-template-ng-content-ng-container-e-ngtemplateoutlet-em-angular/</link>
                <guid isPermaLink="false">62bb92aea3520206e79ceeda</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Wed, 29 Jun 2022 17:41:53 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_mFnAxpS3I_lpRPnIyevxKw.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/everything-you-need-to-know-about-ng-template-ng-content-ng-container-and-ngtemplateoutlet-4b7b51223691/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Angular Views, Routing, and NgModules Explained</a>
      </p><p>Era um dia daqueles em que eu me encontrava ocupado trabalhando em novos recursos de um projeto para o meu escritório. Foi aí que, de repente, algo chamou minha atenção:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_mIQLobNDf0JSUgL7jfq9aQ.png" class="kg-image" alt="1_mIQLobNDf0JSUgL7jfq9aQ" width="330" height="67" loading="lazy"><figcaption>DOM final renderizado no Angular</figcaption></figure><p>Ao inspecionar o DOM, eu vi que <code>ngcontent</code> estava sendo aplicado nos elementos pelo Angular. Hmm… se eles contêm os elementos no DOM final, qual é a função do <code>&lt;ng-container&gt;</code>? Naquele momento, me senti confuso sobre a diferença entre <code>&lt;ng-container&gt;</code> e <code>&lt;ng-content&gt;</code>.</p><p>Ao tentar buscar respostas para minhas perguntas, descobri o conceito de <code>&lt;ng-template&gt;</code>. Para minha surpresa, também havia um <code>*ngTemplateOutlet</code>. Comecei minha jornada à iluminação sobre os dois conceitos e, agora, tinha quatro conceitos que pareciam a mesma coisa!</p><p>Você já esteve na mesma situação? Caso isso tenha acontecido com você, está no lugar certo. Sem mais delongas, vamos examinar um por um.</p><h3 id="1-ng-template"><strong>1. &lt;ng-template&gt;</strong></h3><p>Como o nome sugere, <code>&lt;ng-template&gt;</code> é um elemento de <em>template</em> (em português, modelo) que o Angular usa com as diretivas estruturais (<code>*ngIf</code>, <code>*ngFor</code>, <code>[ngSwitch]</code> e as diretivas personalizadas).</p><p><strong><strong>Esses elementos de modelo, ou <strong><strong><em>template</em></strong></strong>, funcionam apenas na presença de diretivas estruturais</strong></strong><em><em>. </em>O </em>Angular envolve o elemento <em>host</em> (ao qual a diretiva é aplicada) dentro de <code>&lt;ng-template&gt;</code> e consome <code>&lt;ng-template&gt;</code> no DOM final substituindo-o por comentários de diagnóstico.</p><p>Considere um exemplo simples de <code>*ngIf</code>:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_5QM2oe5GQVf7HATJxrX8Cw.png" class="kg-image" alt="1_5QM2oe5GQVf7HATJxrX8Cw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_5QM2oe5GQVf7HATJxrX8Cw.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_5QM2oe5GQVf7HATJxrX8Cw.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_5QM2oe5GQVf7HATJxrX8Cw.png 1600w" sizes="(min-width: 720px) 720px" width="1600" height="715" loading="lazy"><figcaption><strong><strong>Ex</strong>e<strong>mpl</strong>o<strong> 1</strong></strong>- processo do Angular de interpretação das diretivas estruturais</figcaption></figure><p>Acima, vemos a interpretação do Angular para <code>*ngIf</code>. O Angular coloca o elemento <em>host</em>, ao qual a diretiva é aplicada, dentro de <code>&lt;ng-template&gt;</code> e mantém o <em>host</em> como está. O DOM final é semelhante ao que vimos no começo deste artigo:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_y2SVXFRl57rxi5wr-FzKvA.jpeg" class="kg-image" alt="1_y2SVXFRl57rxi5wr-FzKvA" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_y2SVXFRl57rxi5wr-FzKvA.jpeg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_y2SVXFRl57rxi5wr-FzKvA.jpeg 642w" width="642" height="165" loading="lazy"><figcaption><strong><strong>Ex</strong>e<strong>mpl</strong>o<strong> 1</strong></strong>- DOM final renderizado</figcaption></figure><h4 id="uso-"><strong>Uso:</strong></h4><p>Vimos como o Angular usa <code>&lt;ng-template&gt;</code>, mas e se quiséssemos usá-lo? Como esses elementos funcionam apenas com uma diretiva estrutural, podemos escrever:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_FLw4KCyW4vU1NupwP1z1uQ.png" class="kg-image" alt="1_FLw4KCyW4vU1NupwP1z1uQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_FLw4KCyW4vU1NupwP1z1uQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_FLw4KCyW4vU1NupwP1z1uQ.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_FLw4KCyW4vU1NupwP1z1uQ.png 1086w" sizes="(min-width: 720px) 720px" width="1086" height="406" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- usando &lt;ng-template&gt;</figcaption></figure><p>Aqui, <code>home</code> é uma propriedade <code>boolean</code> do componente definida com o valor <code>true</code>. O resultado do código acima no DOM é:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_Iki7GXryxU_o9gCuGte0YA.jpeg" class="kg-image" alt="1_Iki7GXryxU_o9gCuGte0YA" width="528" height="191" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- DOM final renderizado</figcaption></figure><p>Nada foi renderizado! :(</p><p>Por que não conseguimos ver nossa mensagem mesmo depois de usar <code>&lt;ng-template&gt;</code> corretamente com uma diretiva estrutural?</p><p>Esse era o resultado esperado. Como já havíamos discutido, o Angular substitui <code>&lt;ng-template&gt;</code> por comentários de diagnóstico. Sem dúvidas, o código acima não geraria erros, pois o Angular está confortável com o caso de uso. Você jamais saberia o que aconteceu de fato internamente.</p><p>Vamos comparar os dois DOMs acima que foram renderizados pelo Angular:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_y2SVXFRl57rxi5wr-FzKvA-1.jpeg" class="kg-image" alt="1_y2SVXFRl57rxi5wr-FzKvA-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_y2SVXFRl57rxi5wr-FzKvA-1.jpeg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_y2SVXFRl57rxi5wr-FzKvA-1.jpeg 642w" width="642" height="165" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_Iki7GXryxU_o9gCuGte0YA-1.jpeg" class="kg-image" alt="1_Iki7GXryxU_o9gCuGte0YA-1" width="528" height="191" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 1 </strong></strong>x <strong><strong>Ex</strong>emplo<strong> 2</strong></strong></figcaption></figure><p>Se olhar mais de perto, verá que existe uma <strong><strong><strong><strong>tag</strong></strong></strong></strong> <strong>de</strong> <strong><strong>comentário e<strong><strong>xtra </strong></strong></strong></strong>no DOM final do <strong><strong><strong><strong>Ex</strong></strong>emplo <strong><strong>2</strong></strong></strong></strong>. O código que o Angular interpretou foi:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_Nrmv3ivT8fB-h3qMS8gzkw.png" class="kg-image" alt="1_Nrmv3ivT8fB-h3qMS8gzkw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_Nrmv3ivT8fB-h3qMS8gzkw.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_Nrmv3ivT8fB-h3qMS8gzkw.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_Nrmv3ivT8fB-h3qMS8gzkw.png 1318w" sizes="(min-width: 720px) 720px" width="1318" height="754" loading="lazy"><figcaption>Processo de interpretação do Angular para o <strong><strong>Ex</strong>emplo<strong> 2</strong></strong></figcaption></figure><p>O Angular envolveu o <code>&lt;ng-template&gt;</code> de <em>host</em> dentro de outro <code>&lt;ng-template&gt;</code> e converteu não apenas o <code>&lt;ng-template&gt;</code> externo em comentários de diagnóstico, mas o interno também! É por isso que não foi possível ver sua mensagem.</p><p>Para se livrar disso, há duas maneiras de obter seu resultado desejado:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_WSp1Iep84HFY9iOM1TLPDw.png" class="kg-image" alt="1_WSp1Iep84HFY9iOM1TLPDw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_WSp1Iep84HFY9iOM1TLPDw.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_WSp1Iep84HFY9iOM1TLPDw.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_WSp1Iep84HFY9iOM1TLPDw.png 1354w" sizes="(min-width: 720px) 720px" width="1354" height="598" loading="lazy"><figcaption>Uso correto do &lt;ng-template&gt;</figcaption></figure><h4 id="m-todo-1-"><strong>Método 1:</strong></h4><p>Neste método, você fornece ao Angular um formato "sem rodeios", que não necessita de mais processamento. Neste caso, o Angular somente converteria <code>&lt;ng-template&gt;</code> em comentários, mas deixaria o conteúdo dentro dele intocado (O conteúdo já não está dentro de <code>&lt;ng-template&gt;</code> como estaria no caso anterior). Assim, ele será renderizado corretamente.</p><p>Para saber mais sobre como usar esse formato com outras diretivas estruturais, consulte este <a href="https://www.concretepage.com/angular-2/angular-4-ng-template-example#ngSwitch" rel="noopener">artigo</a> (em inglês).</p><h4 id="m-todo-2-"><strong>Método 2:</strong></h4><p>Este é um formado visto muito pouco e raramente usado (com dois <code>&lt;ng-template&gt;</code> irmãos). Aqui, damos uma referência de <em>template</em> a <code>*ngIf</code> em seu <code>then</code> para informar a ele qual <em>template</em> deve ser usado se a condição for verdadeira.</p><p>Usar vários <code>&lt;ng-template&gt;</code> assim não é recomendado (você pode usar <code>&lt;ng-container&gt;</code> em vez disso), já que não é para isso que ele serve. Ele é usado como um contêiner para <em>templates</em> que podem ser reutilizados em diversos locais. Trataremos mais sobre isso em uma seção posterior deste artigo.</p><h3 id="2-ng-container"><strong>2. &lt;ng-container&gt;</strong></h3><p>Você já escreveu ou viu algum código que se pareça com isso:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_xSzfSSecltMEvHbwKoTlhQ.png" class="kg-image" alt="1_xSzfSSecltMEvHbwKoTlhQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_xSzfSSecltMEvHbwKoTlhQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_xSzfSSecltMEvHbwKoTlhQ.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_xSzfSSecltMEvHbwKoTlhQ.png 1230w" sizes="(min-width: 720px) 720px" width="1230" height="484" loading="lazy"><figcaption><strong>Exemplo 1</strong></figcaption></figure><p>O motivo pelo qual muitos de nós escrevemos código assim é a incapacidade de usar diversas diretivas estruturais em um único elemento <em>host</em> no Angular. Agora, esse código funciona bem, mas introduz várias <code>&lt;div&gt;</code> adicionais vazias ao DOM se <code>item.id</code> for um valor falso que pode não ser obrigatório.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_EZDOC5gDjhx0y-2pMGgP1A.jpeg" class="kg-image" alt="1_EZDOC5gDjhx0y-2pMGgP1A" width="320" height="530" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 1</strong></strong>- DOM final renderizado</figcaption></figure><p>Pode ser que você não se preocupe com um exemplo simples como esse, mas, para uma aplicação maior, com um DOM mais complexo (exibindo dezenas de milhares de dados), isso pode passar a ser um problema, já que os elementos podem ter <em>listeners</em> associados a eles que ainda estarão lá, no DOM, escutando os eventos.</p><p>O que é pior: imagine o nível de aninhamento necessário para aplicar a estilização (CSS)!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_sTllfe9eYy24VzWXEVZMew.jpeg" class="kg-image" alt="1_sTllfe9eYy24VzWXEVZMew" width="487" height="300" loading="lazy"><figcaption>Imagem extraída de: <a href="https://inside.unbounce.com/product-dev/making-css-fit/" rel="noopener">Inside Unbounce</a></figcaption></figure><p>Sem problemas. É quando <code>&lt;ng-container&gt;</code> aparece para salvar o dia!</p><p>O <code>&lt;ng-container&gt;</code> do Angular é um elemento de agrupamento que não interfere nos estilos ou no layout, pois o Angular <em>não o coloca<em> </em>no<em> DOM</em></em>.</p><p>Assim, se escrevermos o <strong><strong><strong><strong>Ex</strong></strong></strong>emplo<strong><strong><strong> 1</strong></strong></strong></strong> com <code>&lt;ng-container&gt;</code>, teremos:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_j-TJRTA11OrLKdLrmrjQjA.png" class="kg-image" alt="1_j-TJRTA11OrLKdLrmrjQjA" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_j-TJRTA11OrLKdLrmrjQjA.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_j-TJRTA11OrLKdLrmrjQjA.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_j-TJRTA11OrLKdLrmrjQjA.png 1230w" sizes="(min-width: 720px) 720px" width="1230" height="484" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 1 </strong></strong>com &lt;ng-container&gt;</figcaption></figure><p>O DOM final seria:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_7D-if7f35ct3vkY3AnozUQ.jpeg" class="kg-image" alt="1_7D-if7f35ct3vkY3AnozUQ" width="312" height="549" loading="lazy"><figcaption>DOM final renderizado com &lt;ng-container&gt;</figcaption></figure><p>Percebeu que nos livramos das <code>&lt;div&gt;</code> vazias? Devemos usar o <code>&lt;ng-container&gt;</code> quando queremos apenas aplicar várias diretivas estruturais sem introduzir elementos extras ao DOM.</p><p>Para mais informações, consulte a <a href="https://angular.io/guide/structural-directives#group-sibling-elements-with-ng-container" rel="noopener">documentação</a> (em inglês). Existe um outro caso de uso, em que ele é usado para injetar um <em>template</em> dinamicamente em uma página. Trataremos desse caso de uso na última seção do artigo.</p><h3 id="3-ng-content"><strong>3. &lt;ng-content&gt;</strong></h3><p><code>&lt;ng-content&gt;</code> é usado para criar componentes configuráveis. Isso significa que os componentes podem ser configurados, dependendo das necessidades do usuário. Essa situação é bem conhecida como <strong>projeção de conteúdo</strong>. Os componentes que são usados em bibliotecas publicadas fazem uso de <code>&lt;ng-content&gt;</code> para se tornar configuráveis.</p><p>Considere um componente <code>&lt;project-content&gt;</code> simples:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_gzHVRbeW6JYv3XUxX5tQRA.png" class="kg-image" alt="1_gzHVRbeW6JYv3XUxX5tQRA" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_gzHVRbeW6JYv3XUxX5tQRA.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_gzHVRbeW6JYv3XUxX5tQRA.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_gzHVRbeW6JYv3XUxX5tQRA.png 1142w" sizes="(min-width: 720px) 720px" width="1142" height="862" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 1</strong></strong>- definição de &lt;project-content&gt;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_HIp3l46s5LRIPS8Cs3ZPlg.png" class="kg-image" alt="1_HIp3l46s5LRIPS8Cs3ZPlg" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_HIp3l46s5LRIPS8Cs3ZPlg.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_HIp3l46s5LRIPS8Cs3ZPlg.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_HIp3l46s5LRIPS8Cs3ZPlg.png 1030w" sizes="(min-width: 720px) 720px" width="1030" height="436" loading="lazy"><figcaption>Projeção de conteúdo com o componente &lt;project-content&gt;</figcaption></figure><p>O conteúdo em HTML passado dentro das tags de abertura e de fechamento do componente <code>&lt;project-content&gt;</code> é o conteúdo a ser projetado. É a isso que chamamos de <strong>projeção de conteúdo</strong>. O conteúdo será renderizado dentro de <code>&lt;ng-content&gt;</code>, dentro do componente. Isso permite que o consumidor do componente <code>&lt;project-content&gt;</code> passe um <em>footer</em> personalizado dentro do componente e controle <em><em>exa</em>tamente</em> a maneira como ele quer que o <em>footer</em> seja renderizado.</p><h4 id="proje-es-m-ltiplas-"><strong>Projeções múltiplas:</strong></h4><p>E se você pudesse decidir qual conteúdo deve ser colocado em qual posição? Em vez de todo conteúdo ser projetado dentro de um único <code>&lt;ng-content&gt;</code>, você também pode controlar a maneira como o conteúdo será projetado com o atributo <code>select</code> de <code>&lt;ng-content&gt;</code>. Ele recebe um seletor de elementos para decidir qual conteúdo deve projetar em um <code>&lt;ng-content&gt;</code> específico.</p><p>Aqui vemos como:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_G6Ruc21MJctpiYqkdD5DjQ.png" class="kg-image" alt="1_G6Ruc21MJctpiYqkdD5DjQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_G6Ruc21MJctpiYqkdD5DjQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_G6Ruc21MJctpiYqkdD5DjQ.png 958w" sizes="(min-width: 720px) 720px" width="958" height="646" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- diversas projeções de conteúdo com o &lt;project-content&gt; atualizado</figcaption></figure><p>Modificamos a definição de <code>&lt;project-content&gt;</code> para que realize diversas projeções de conteúdo. O atributo <code>select</code> decide o tipo de conteúdo que será renderizado dentro de um <code>&lt;ng-content&gt;</code> específico. Aqui, temos o primeiro <code>select</code> renderizando o elemento de título <code>h1</code>. Se o conteúdo projetado não tiver um elemento <code>h1</code>, nada será renderizado ali. Da mesma forma, o segundo <code>select</code> procura por uma <code>div</code>. O resto do conteúdo é renderizado dentro do último <code>&lt;ng-content&gt;</code> que não tem um <code>select</code>.</p><p>A chamado ao componente teria essa aparência:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_rZar8_BvO5g53BQVJS36aQ.png" class="kg-image" alt="1_rZar8_BvO5g53BQVJS36aQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_rZar8_BvO5g53BQVJS36aQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_rZar8_BvO5g53BQVJS36aQ.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_rZar8_BvO5g53BQVJS36aQ.png 1094w" sizes="(min-width: 720px) 720px" width="1094" height="544" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- chamada ao componente &lt;project-content&gt; em um componente pai</figcaption></figure><h3 id="4-ngtemplateoutlet"><strong>4. *ngTemplateOutlet</strong></h3><blockquote><em><em><em><em>…</em></em></em></em>Ele é usado como um contêiner para <em>templates</em> que podem ser reutilizados em diversos locais. Trataremos mais sobre isso em uma seção posterior deste artigo.<br><br><em><em><em><em>…</em></em></em></em>Existe um outro caso de uso, em que ele é usado para injetar um <em>template</em> dinamicamente em uma página. Trataremos desse caso de uso na última seção do artigo.</blockquote><p>Esta é a seção onde discutiremos os dois pontos acima, mencionados anteriormente. <code>*ngTemplateOutlet</code> é usado para dois cenários — inserir um <em>template</em> comum em diversas seções de uma <em>view</em>, não importando os laços ou condições, e criar um componente altamente configurável.</p><h4 id="reutiliza-o-de-um-template-"><strong>Reutilização de um <em>template</em>:</strong></h4><p>Considere uma <em>view</em> em que você precise inserir um <em>template</em> em diversos lugares. Por exemplo, o logotipo de uma empresa em um site da web. Podemos conseguir isso escrevendo o <em>template</em> para o logotipo uma vez e reutilizando-o em todos os locais da <em>view</em>.</p><p>A seguir, vemos o trecho de código para isso:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_M2mxgv1g3VcftdHOFFmTdw.png" class="kg-image" alt="1_M2mxgv1g3VcftdHOFFmTdw" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_M2mxgv1g3VcftdHOFFmTdw.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_M2mxgv1g3VcftdHOFFmTdw.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/06/1_M2mxgv1g3VcftdHOFFmTdw.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_M2mxgv1g3VcftdHOFFmTdw.png 1918w" sizes="(min-width: 720px) 720px" width="1918" height="1462" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 1</strong></strong>- reutilização do <em>template</em></figcaption></figure><p>Como você pode ver, simplesmente escrevemos o <em>template</em> do logotipo uma vez e o utilizamos três vezes na mesma página com uma única linha de código!</p><p><code>*ngTemplateOutlet</code> também aceita um objeto de contexto, que pode ser passado para personalizar o que é exibido por um <em>template</em> comum. Para obter mais informações sobre o objeto de contexto, consulte a <a href="https://angular.io/api/common/NgTemplateOutlet" rel="noopener">documentação oficial</a> (em inglês).</p><h4 id="componentes-personaliz-veis-"><strong>Componentes personalizáveis:</strong></h4><p>O segundo caso de uso para <code>*ngTemplateOutlet</code> é o dos componentes altamente personalizáveis. Considere nosso exemplo anterior do componente <code>&lt;project-content&gt;</code> com algumas modificações:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_AwPv-pFH7e-Abhr-odvPyQ.png" class="kg-image" alt="1_AwPv-pFH7e-Abhr-odvPyQ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_AwPv-pFH7e-Abhr-odvPyQ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_AwPv-pFH7e-Abhr-odvPyQ.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/06/1_AwPv-pFH7e-Abhr-odvPyQ.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_AwPv-pFH7e-Abhr-odvPyQ.png 2048w" sizes="(min-width: 720px) 720px" width="2048" height="1138" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- tornando o componente project-content.html personalizável</figcaption></figure><p>Acima, vemos a versão modificada do componente <code>&lt;project-content&gt;</code>, que aceita três propriedades de entrada — <code>headerTemplate</code>, <code>bodyTemplate</code> e <code>footerTemplate</code>. A seguir, vemos o trecho para <code>project-content.ts</code>:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_KHFWhtDmaysZMxGDTT_61Q.png" class="kg-image" alt="1_KHFWhtDmaysZMxGDTT_61Q" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_KHFWhtDmaysZMxGDTT_61Q.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_KHFWhtDmaysZMxGDTT_61Q.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_KHFWhtDmaysZMxGDTT_61Q.png 1182w" sizes="(min-width: 720px) 720px" width="1182" height="976" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- tornando o componente project-content.ts personalizável</figcaption></figure><p>O que estamos tentando conseguir aqui é mostrar os elementos <em>header</em>, <em>body</em> e <em>footer</em> do modo como são recebidos do componente pai de <code>&lt;project-content&gt;</code>. Se qualquer um deles não for fornecido, o componente exibirá o <em>template</em> padrão em seu lugar. Assim, criamos um componente altamente personalizável.</p><p>Para usarmos o componente que acabamos de modificar:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_13rIyei1HqPdOsQ44l9tug.png" class="kg-image" alt="1_13rIyei1HqPdOsQ44l9tug" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/06/1_13rIyei1HqPdOsQ44l9tug.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/06/1_13rIyei1HqPdOsQ44l9tug.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/06/1_13rIyei1HqPdOsQ44l9tug.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/06/1_13rIyei1HqPdOsQ44l9tug.png 2048w" sizes="(min-width: 720px) 720px" width="2048" height="1192" loading="lazy"><figcaption><strong><strong>Ex</strong>emplo<strong> 2</strong></strong>- usando o componente que acaba de ser modificado, &lt;project-content&gt;</figcaption></figure><p>É assim que passaremos as referências do <em>template</em> para nosso componente. Se alguma delas não for passada, o componente renderizará o <em>template</em> padrão.</p><h3 id="ng-content-x-ngtemplateoutlet"><strong>ng-content x *ngTemplateOutlet</strong></h3><p>Ambos nos ajudarão a obter componentes altamente personalizáveis, mas qual deles escolheremos e quando faremos isso?</p><p>Pode-se ver, claramente, que <code>*ngTemplateOutlet</code> nos dá uma capacidade maior de mostrar o <em>template</em> padrão se nenhum componente for fornecido.</p><p>Não é o que ocorre com <code>ng-content</code>. Ele renderiza o conteúdo como ele está. No máximo, é possível dividir o conteúdo e renderizá-lo em locais diferentes da <em>view</em> com a ajuda do atributo <code>select</code>. Não é possível renderizar condicionalmente o conteúdo dentro de <code>ng-content</code>. Você precisa mostrar o conteúdo que é recebido do elemento pai sem poder decidir com base no conteúdo.</p><p>Porém, a escolha de um ou de outro depende totalmente de seu caso de uso. Pelo menos, agora, você tem uma nova ferramenta, <code>*ngTemplateOutlet</code>, que poderá usar para ter mais controle sobre o conteúdo, juntamente com os recursos de <code>ng-content</code>!</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Como configurar o VS Code para melhorar sua produtividade ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Chiamaka Ikeanyi Os editores de código evoluíram com o passar dos anos. Há alguns anos, não havia o Visual Studio Code (VS Code). Na época, provavelmente, você usava o Sublime Text, o Atom, o Brackets etc. Porém, com o lançamento do VS Code, ele se tornou o editor ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-configurar-o-vscode-para-melhorar-sua-produtividade/</link>
                <guid isPermaLink="false">624b689a6daab205304b00aa</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Tue, 05 Apr 2022 00:12:16 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/1_cgkkTflpK9s3jL1yb1Jygw.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-to-set-up-vscode-to-improve-your-productivity-fb14c81d4991/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to set up VSCode to improve your productivity</a>
      </p><p>Escrito por: Chiamaka Ikeanyi</p><p>Os editores de código evoluíram com o passar dos anos. Há alguns anos, não havia o Visual Studio Code (VS Code). Na época, provavelmente, você usava o Sublime Text, o Atom, o Brackets etc. Porém, com o lançamento do VS Code, ele se tornou o editor de código favorito da maioria dos desenvolvedores.</p><h3 id="por-que-usar-o-vs-code"><strong>Por que usar o<strong> VS Code?</strong></strong></h3><p>Os desenvolvedores preferem o VS Code porque:</p><ul><li>É personalizável</li><li>Torna fácil a depuração</li><li>Emmet</li><li>Extensões</li><li>Integração com o Git</li><li>Terminal integrado</li><li>Intellisense</li><li>Temas e mais…</li></ul><p>Agora que você viu as vantagens de usar o VS Code, este artigo tratará da configuração do VS Code e das extensões necessárias ao usar o VS Code para se ter o máximo de produtividade.</p><h3 id="terminal"><strong><strong>Terminal</strong></strong></h3><p>No Mac, você pode <a href="https://chiamakaikeanyi.dev/how-to-configure-your-macos-terminal-with-zsh-like-a-pro/" rel="noopener">configurar seu terminal</a> para que use o iTerm2 e o ZSh e fazer com que o VS Code o utilize também.</p><p>Após configurar o Zsh, abra o terminal integrado do VS Code <code>Terminal &gt; New Terminal</code> e execute o comando</p><pre><code>source ~/.zshrc</code></pre><p>ou</p><pre><code>. ~/.zshrc</code></pre><p>para rodar o conteúdo do arquivo de configuração .zshrc no shell.</p><h3 id="fonte"><strong><strong>Font</strong>e</strong></h3><p><a href="https://github.com/tonsky/FiraCode" rel="noopener">FiraCode</a> parece interessante por causa do suporte a ligaduras de texto. Baixe e instale a fonte FiraCode, e adicione-a ao seu arquivo <code>settings.json</code>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/vqdv5dokMCcD5yivbaPUBTtYsWBiUIMo6gZ6.png" class="kg-image" alt="vqdv5dokMCcD5yivbaPUBTtYsWBiUIMo6gZ6" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/vqdv5dokMCcD5yivbaPUBTtYsWBiUIMo6gZ6.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/vqdv5dokMCcD5yivbaPUBTtYsWBiUIMo6gZ6.png 800w" sizes="(min-width: 720px) 720px" width="800" height="133" loading="lazy"></figure><pre><code>"editor.fontFamily": "Fira Code","editor.fontLigatures": true,</code></pre><h3 id="abrindo-pela-linha-de-comando"><strong>Abrindo pela linha de comando</strong></h3><p>Abrir o VS Code a partir do terminal parece interessante. Para fazer isso, pressione CMD + SHIFT + P (no Mac), digite <strong><strong>shell command</strong></strong> e selecione <strong><strong>Install code command in path</strong> (Instalar o comando do VS Code no path)</strong>. Depois disso, navegue até qualquer projeto a partir do terminal e digite <code><strong><strong>code .</strong></strong></code><strong> </strong>no diretório para abrir o projeto usando o VS Code.</p><h3 id="configura-o"><strong><strong>Configura</strong>ção</strong></h3><p>As configurações do VS Code que não são específicas de um espaço de trabalho estão no arquivo settings.json. Você pode configurar o VS Code para se ajustar às suas preferências.</p><p>Para abrir o arquivo settings.json, pressione</p><pre><code>CMD ou Ctrl + ,</code></pre><p>Copie e cole o código abaixo no arquivo settings.json:</p><pre><code>{    "editor.multiCursorModifier": "ctrlCmd",    "editor.formatOnPaste": true,    "editor.wordWrap": "bounded",    "editor.trimAutoWhitespace": true,    "editor.fontFamily": "Fira Code",    "editor.fontLigatures": true,    "editor.fontSize": 14,    "editor.formatOnSave": true,    "files.autoSave": "onFocusChange",    "emmet.syntaxProfiles": {        "javascript": "jsx"    },    "eslint.autoFixOnSave": true,    "eslint.validate": [        "javascript",        "javascriptreact"    ],    "javascript.validate.enable": true,    "git.enableSmartCommit": true,    "files.trimTrailingWhitespace": true,    "editor.tabSize": 2,    "gitlens.historyExplorer.enabled": true,    "diffEditor.ignoreTrimWhitespace": false,    "workbench.sideBar.location": "right",    "explorer.confirmDelete": false,    "javascript.updateImportsOnFileMove.enabled": "always",}</code></pre><h3 id="extens-es"><strong><strong>Extensõ</strong>es</strong></h3><p>Abaixo temos algumas extensões úteis que podem melhorar sua experiência de desenvolvimento ao trabalhar com uma base de código.</p><p>Para acessar essas extensões,</p><ul><li>Vá para <code>View -&gt; Extensions</code></li><li>Procure por extensões no Marketplace</li><li>Clique em Install</li></ul><h4 id="1-auto-import"><strong><strong>1. </strong>Auto Import</strong></h4><p>Com essa extensão, você não precisará importar arquivos manualmente. Se estiver trabalhando com um projeto baseado em componentes, basta digitar o nome do componente e ele será importado automaticamente.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/d88RTDvyIzGWYC5BuLcnIaFOjHiyDMaqE5Bh.png" class="kg-image" alt="d88RTDvyIzGWYC5BuLcnIaFOjHiyDMaqE5Bh" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/d88RTDvyIzGWYC5BuLcnIaFOjHiyDMaqE5Bh.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/d88RTDvyIzGWYC5BuLcnIaFOjHiyDMaqE5Bh.png 800w" sizes="(min-width: 720px) 720px" width="800" height="151" loading="lazy"></figure><h4 id="2-add-jsdoc-comments"><strong><strong>2. Add jsdoc comments</strong></strong></h4><p>Essa extensão adiciona blocos de comentário ao código. Para usá-la, realce a primeira linha da função, pressione <code>CMD/Ctrl + SHIFT + P</code> e selecione <em><em><strong><strong>Add Doc Comments</strong></strong></em><strong> (Adicionar comentários aos documentos)</strong><em><strong><strong>.</strong></strong></em></em></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/jlJk05MHt3HknnqZyKQB-8d1Oj7qgh7ZOBGL.png" class="kg-image" alt="jlJk05MHt3HknnqZyKQB-8d1Oj7qgh7ZOBGL" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/jlJk05MHt3HknnqZyKQB-8d1Oj7qgh7ZOBGL.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/jlJk05MHt3HknnqZyKQB-8d1Oj7qgh7ZOBGL.png 800w" sizes="(min-width: 720px) 720px" width="800" height="457" loading="lazy"></figure><h4 id="3-esdoc-mdn"><strong><strong>3. ESDoc MDN</strong></strong></h4><p>Em alguns cenários, podemos esquecer como algumas coisas funcionam. É nesse caso que a extensão a seguir se torna útil. Não é preciso abrir seu navegador para encontrar a sintaxe. Basta digitar</p><pre><code>//mdn [objeto].[método];</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/r8pUHOgNQwAyNq0DU9VPcL5xb8zGgT1ybCZV.png" class="kg-image" alt="r8pUHOgNQwAyNq0DU9VPcL5xb8zGgT1ybCZV" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/r8pUHOgNQwAyNq0DU9VPcL5xb8zGgT1ybCZV.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/r8pUHOgNQwAyNq0DU9VPcL5xb8zGgT1ybCZV.png 800w" sizes="(min-width: 720px) 720px" width="800" height="556" loading="lazy"></figure><h4 id="4-css-peek"><strong><strong>4. CSS Peek</strong></strong></h4><p>Como o próprio nome sugere, essa extensão ajuda você a conferir as regras aplicadas ao estilo definido na base de código e sua <a href="https://chiamakaikeanyi.dev/css-specificity" rel="noopener">especificidade</a>. Ela é útil quando trabalhamos com bases de código legadas.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/7orGFqwr8mdQPOVPuQVMTlRO8XtPgnR0Ggmj.png" class="kg-image" alt="7orGFqwr8mdQPOVPuQVMTlRO8XtPgnR0Ggmj" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/7orGFqwr8mdQPOVPuQVMTlRO8XtPgnR0Ggmj.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/7orGFqwr8mdQPOVPuQVMTlRO8XtPgnR0Ggmj.png 800w" sizes="(min-width: 720px) 720px" width="800" height="487" loading="lazy"></figure><h4 id="5-gitlens"><strong><strong>5. GitLens</strong></strong></h4><p>A extensão GitLens aumenta o que você pode conseguir com o Git. Ela ajuda você a fazer muito mais, como explorar os repositórios do Git sem interrupções, dar uma olhada nas revisões de código, autoria e muito mais.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/Sf2hWdpXSF7CPBhmQ9sTf9zGPD-OiXQsf2aM.png" class="kg-image" alt="Sf2hWdpXSF7CPBhmQ9sTf9zGPD-OiXQsf2aM" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/Sf2hWdpXSF7CPBhmQ9sTf9zGPD-OiXQsf2aM.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/Sf2hWdpXSF7CPBhmQ9sTf9zGPD-OiXQsf2aM.png 800w" sizes="(min-width: 720px) 720px" width="800" height="483" loading="lazy"></figure><h4 id="6-eslint"><strong><strong>6. ESLint</strong></strong></h4><p>Essa extensão integra o ESLint no VS Code para usar o lint em seus códigos. O projeto no qual você está trabalhando precisa ter o ESLint instalado localmente o globalmente para aproveitar os recursos que essa extensão oferece.</p><p>Para instalar o ESLint localmente, execute</p><pre><code>npm install eslint</code></pre><p>ou instale-o globalmente usando</p><pre><code>npm install -g eslint</code></pre><p>Você também precisa criar o arquivo de configuração <code>.eslintrc</code>. Se você instalou o ESLint localmente, execute</p><pre><code>./node_modules/.bin/eslint --init</code></pre><p>ou</p><pre><code>eslint --init</code></pre><p>para a instalação global.</p><h4 id="7-debugger-for-chrome"><strong><strong>7. Debugger for Chrome</strong></strong></h4><p>Essa extensão permite que você faça a depuração de seu código em JavaScript diretamente no navegador do Google Chrome.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/O4SSLTXtEEdU3AjZODIdUKG7AYao27y6O7jq.png" class="kg-image" alt="O4SSLTXtEEdU3AjZODIdUKG7AYao27y6O7jq" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/O4SSLTXtEEdU3AjZODIdUKG7AYao27y6O7jq.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/O4SSLTXtEEdU3AjZODIdUKG7AYao27y6O7jq.png 800w" sizes="(min-width: 720px) 720px" width="800" height="639" loading="lazy"></figure><h4 id="8-google-fonts"><strong><strong>8. Google Fonts</strong></strong></h4><p>Adicionar as fontes do Google é mais fácil com essa extensão. Você não precisa mais procurar pelas fontes com o navegador. Para acessar uma lista de fontes, pressione <code>CMD/Ctrl + SHIFT + P</code> e procure por <em><em><strong><strong>Google fonts</strong></strong></em></em> para continuar.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/sqVCRBo5mlEUjIFcSsp28oEo4ugo3LMXjKoS.png" class="kg-image" alt="sqVCRBo5mlEUjIFcSsp28oEo4ugo3LMXjKoS" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/sqVCRBo5mlEUjIFcSsp28oEo4ugo3LMXjKoS.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/sqVCRBo5mlEUjIFcSsp28oEo4ugo3LMXjKoS.png 800w" sizes="(min-width: 720px) 720px" width="800" height="572" loading="lazy"></figure><h4 id="9-todo-highlight"><strong><strong>9. TODO Highlight</strong></strong></h4><p>Com tanto trabalho naquilo que precisa ser priorizado, às vezes, tendemos a esquecer tarefas que ainda precisam se concluídas. A extensão TODO Highlight torna mais fácil vê-las ao destacá-las.</p><h4 id="10-docker"><strong><strong>10. Docker</strong></strong></h4><p>Você pode criar Dockerfiles na hora com essa extensão. Ela também fornece realce de sintaxe, intellisense e muito mais.</p><p>Pressione CMD/Ctrl + SHIFT + P e procure por <em><em>Add Docker files to workspace</em> (Adicionar arquivos do Docker ao espaço de trabalho)<em>.</em></em></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/Yv09L4W8lraVLXLr-aYpCHz8hfLC-tuORELa-1.png" class="kg-image" alt="Yv09L4W8lraVLXLr-aYpCHz8hfLC-tuORELa-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/Yv09L4W8lraVLXLr-aYpCHz8hfLC-tuORELa-1.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/Yv09L4W8lraVLXLr-aYpCHz8hfLC-tuORELa-1.png 800w" sizes="(min-width: 720px) 720px" width="800" height="555" loading="lazy"></figure><h4 id="11-code-spellchecker"><strong><strong>11. Code Spellchecker</strong></strong></h4><p>Essa extensão é útil na identificação de erros tipográficos dentro da base de código.</p><h4 id="12-import-cost"><strong><strong>12. Import Cost</strong></strong></h4><p>Import Cost mostra o impacto de pacotes importados dentro do código. Ela ajuda a medir gargalos de desempenho.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/4Xl2OdUzPmPFW54eqzrHz59Kg9qSFbCDxUWf.png" class="kg-image" alt="4Xl2OdUzPmPFW54eqzrHz59Kg9qSFbCDxUWf" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/4Xl2OdUzPmPFW54eqzrHz59Kg9qSFbCDxUWf.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/4Xl2OdUzPmPFW54eqzrHz59Kg9qSFbCDxUWf.png 800w" sizes="(min-width: 720px) 720px" width="800" height="381" loading="lazy"></figure><h4 id="13-htmlhint"><strong><strong>13. HTMLHint</strong></strong></h4><p>Essa extensão valida seu HTML ajudando você a escrever <a href="https://chiamakaikeanyi.dev/writing-standards-compliant-html/" rel="noopener">código em conformidade com os padrões</a>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/ZJN4LadCSa6e1EVHlEMs7gB1f4AVINChBxaY.png" class="kg-image" alt="ZJN4LadCSa6e1EVHlEMs7gB1f4AVINChBxaY" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/ZJN4LadCSa6e1EVHlEMs7gB1f4AVINChBxaY.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/ZJN4LadCSa6e1EVHlEMs7gB1f4AVINChBxaY.png 800w" sizes="(min-width: 720px) 720px" width="800" height="596" loading="lazy"></figure><h4 id="14-peacock"><strong><strong><strong><strong>14. Peacock</strong></strong></strong></strong></h4><p>Essa extensão dá a você a capacidade de alterar a cor de seu espaço de trabalho. Ela é ideal para quando você têm diversas instâncias do VS Code e quer identificar rapidamente uma instância específica.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/04/BRiUh7NQh1PdVW7aP5mZJcnbzZFaCQcblYpq.png" class="kg-image" alt="BRiUh7NQh1PdVW7aP5mZJcnbzZFaCQcblYpq" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/04/BRiUh7NQh1PdVW7aP5mZJcnbzZFaCQcblYpq.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/04/BRiUh7NQh1PdVW7aP5mZJcnbzZFaCQcblYpq.png 800w" sizes="(min-width: 720px) 720px" width="800" height="564" loading="lazy"></figure><p>Após instalar o Peacock, clique no ícone das configurações, vá para elas, selecione a guia das configurações do espaço de trabalho, clique em {} e cole o código abaixo.</p><pre><code>{    "workbench.colorCustomizations": {        "activityBar.background": "#e90b8d",        "activityBar.foreground": "#fff",        "activityBar.inactiveForeground": "#b5b5b5",    },    "peacock.affectedElements": [        "activityBar",    ]}</code></pre><p>Você também pode adicionar <code>titleBar</code> e <code>statusBar</code> aos affectedElements e adicionar personalizações de cor para as barras de títulos e de status dentro da seção colorCustomizations.</p><p>Para usar uma das cores padrão, pressione CMD/Ctrl + SHIFT + P, digite <strong><strong>peacock</strong></strong> e selecione seu tema favorita. Isso sobrescreve as configurações de cor dentro do arquivo settings.json definidas para aquele espaço de trabalho.</p><h4 id="15-prettier"><strong><strong><strong><strong>15. Prettier</strong></strong></strong></strong></h4><p>Você sempre pressiona a barra de espaço ou a tecla Tab ao programar? O Prettier pode ajudar você. Ele formata as linhas de código e as torna mais legíveis.</p><p>Confira <a href="https://vscodecandothat.com/" rel="noopener">as coisas incríveis que você pode fazer com o Visual Studio Code</a> aqui (em inglês).</p><p>Fique à vontade para deixar um comentário sobre o que dá certo para você e compartilhe este artigo.</p><p>Você também pode conferir <a href="https://chiamakaikeanyi.dev/" rel="noopener">o blog do autor</a> para ver mais de seus artigos.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Passei 3 meses buscando emprego após um bootcamp de programação. Foi isso que eu aprendi. ]]>
                </title>
                <description>
                    <![CDATA[ Uma parte menos discutida sobre a jornada de quem faz um bootcamp é o que acontece depois de você concluir o programa — quando começa a procurar um emprego como desenvolvedor que o deixe bem financeiramente. Menos de 3% das procuras por emprego se tornam ofertas de emprego de fatoConcluí ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/passei-3-meses-buscando-emprego-apos-um-bootcamp-de-programacao-foi-isso-que-eu-aprendi/</link>
                <guid isPermaLink="false">61b78886f15c8104f2fda0d1</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Mon, 13 Dec 2021 22:10:21 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2021/12/1_tMOJBSqKfYd9M2zOskluFw.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">I spent 3 months applying to jobs after a coding bootcamp. Here’s what I learned.</a>
      </p><p>Uma parte menos discutida sobre a jornada de quem faz um bootcamp é o que acontece depois de você concluir o programa — quando começa a procurar um emprego como desenvolvedor que o deixe bem financeiramente.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2021/12/85L921BMzXxKhVySPo9gxWamr5J4QLFJaVEn.png" class="kg-image" alt="85L921BMzXxKhVySPo9gxWamr5J4QLFJaVEn" width="800" height="381" loading="lazy"><figcaption>Menos de 3% das procuras por emprego se tornam ofertas de emprego de fato</figcaption></figure><p>Concluí o Hack Reactor em julho de 2016 e levou quase 3 meses antes de eu aceitar uma oferta da Radius Intelligence. Me inscrevi para uma vaga em 291 empresas, fiz 32 entrevistas por telefone, 16 entrevistas técnicas, 13 desafios de programação, 11 entrevistas no local e recebi 8 ofertas de emprego. As ofertas iam de US$60 a 125 mil em termos de salário anual de empresas de todos os EUA, tanto para funções em front-end como em full-stack. No total, 2,8% das minhas tentativas viraram ofertas.</p><p>Aqui vão 5 coisas que eu gostaria de saber antes de começar a procurar um emprego.</p><h3 id="insight-n-1-converse-com-pessoas-reais"><strong><strong><strong>Insight </strong></strong>nº <strong><strong>1: </strong></strong>converse com pessoas reais</strong></h3><p>Primeiro, eu me inscrevi em empresas usando a abordagem de "atirar para todo o lado". Me inscrevi usando o Indeed.com, o AngelList, o LinkedIn, o StackOverflow, o Hacker News, sites de empresas e, até mesmo, o Craigslist.</p><p>Eu costumava enviar meu currículo para qualquer função que quisesse experiência com React, Node ou JavaScript. Na primeira semana, eu me inscrevia em 15 a 20 empresas por dia.</p><blockquote><em>Dica profissional<em>: </em>encontre empresas usando este<em> </em></em><a href="https://github.com/j-delaney/easy-application"><em>repositório que auxilia com a inscrição</em></a><em><em>.</em></em></blockquote><p>Meu retorno foi baixo. Menos de 5 por cento das empresas me responderam. Eu estava enviando currículos para um buraco negro.</p><p>Tudo mudou quando um conhecido meu, que já havia sido um recrutador no passado, compartilhou um guia para a busca de empregos. Ele disse que o ideal é enviar e-mails para pessoas reais diretamente a cada vez que nos inscrevêssemos para um emprego. Não importa para quem fosse, contanto que alguém do outro lado lesse a mensagem.</p><p>Desse momento em diante, sempre que enviei meu currículo, procurei a empresa no LinkedIn e mandei um e-mail para alguém da equipe de engenharia ou do RH.</p><p>Para a maioria das empresas menores ou para executivos do nível de chefia, o formato do endereço de e-mail costuma ser nome@empresaDosSonhos.com. Para grandes empresas, nome.sobrenome@empresaDosSonhos.com.</p><p>Para verificar os endereços de e-mail, eu usava o <a href="https://rapportive.com/" rel="noopener">Rapportive</a> e fazia a checagem dos e-mails com as contas das mídias sociais.</p><p>Os resultados foram incríveis. Como mais de 150 e-mails enviados, minha taxa de resposta foi de impressionantes 22%.</p><p>Foi uma sensação muito boa ter o retorno de pessoas reais. Para minha surpresa, CEOs e CTOs responderam os e-mails. Algumas vezes, até eram eles mesmos que me entrevistavam.</p><blockquote><em>Moral da história<em>: </em>se quiser se inscrever para vagas entrando pela porta da frente<em>, </em>certifique-se de entrar em contato direto com os "seres humanos" da empresa<em>.</em></em></blockquote><h3 id="insight-n-2-comece-de-baixo-e-v-subindo"><strong>Insight nº 2: comece de baixo e vá subindo</strong></h3><p>Você enfrentará entrevistas de nível 1 (uma empresa fora da área de tecnologia que precisa de um desenvolvedor qualquer), onde os entrevistadores não pedirão nada além de perguntas triviais sobre JavaScript.</p><p>Você enfrentará entrevistas de nível 9 (nível Google/Facebook), onde os entrevistadores fazem perguntas difíceis sobre algoritmos e estruturas de dados.</p><p>Defini meu processo estrategicamente de modo a fazer as entrevistas de nível mais baixo antes e deixar para depois as de mais alto nível.</p><p>Assim, cedo, eu ganhei experiência, aprendi a ter confiança e garanti ofertas de empresas que tinham entrevistas menos intensas.</p><p>Ao ganhar mais experiência, eu fui efetivamente "subindo de nível". Me tornei capacitado a completar entrevistas em empresas onde a expectativa era mais alta. Isso é ilustrado abaixo como uma correlação linear entre o número de semanas que passei no processo de busca e o salário base que me foi oferecido.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2021/12/bDp3eVv6VQS3Og3ulVpwp6dDylIybdpRczsD.png" class="kg-image" alt="bDp3eVv6VQS3Og3ulVpwp6dDylIybdpRczsD" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2021/12/bDp3eVv6VQS3Og3ulVpwp6dDylIybdpRczsD.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2021/12/bDp3eVv6VQS3Og3ulVpwp6dDylIybdpRczsD.png 800w" sizes="(min-width: 720px) 720px" width="800" height="574" loading="lazy"><figcaption>Há uma correlação direta entre o tempo que eu passei em entrevistas e a oferta de salário.</figcaption></figure><p>Eu "desbloqueei" perguntas mais difíceis. Desbloqueei salários mais altos e, no fim, desbloqueei o emprego que eu aceitei.</p><blockquote>Moral da história: lide com as entrevistas mais fáceis primeiro e com as mais difíceis depois.</blockquote><h3 id="insight-n-3-estude-como-se-seu-futuro-dependesse-disso-porque-de-fato-depende-"><strong><strong><strong>Insight </strong></strong>nº <strong><strong>3: </strong></strong>estude como se seu futuro dependesse disso<strong><strong> (</strong></strong>porque, de fato, depende<strong><strong>)</strong></strong></strong></h3><p>Detesto ter de ser eu a informar você a respeito disso, mas a coisa mais importante que você pode fazer a qualquer momento do processo é estudar e se preparar.</p><p>Por quê? Porque você não vai receber nenhuma oferta se não tiver boas respostas às perguntas que farão a você.</p><p>As pessoas não voltarão a procurar você se não acharem que está preparado para as entrevistas.</p><p>Ao sair do Hack Reactor, meu ponto fraco eram os algoritmos e estruturas de dados. <a href="http://blog.triplebyte.com/bootcamps-vs-college" rel="noopener">Um estudo da Triplebyte</a> descobriu que aqueles que se formam em bootcamps tinham menos facilidade nessas áreas que os que se formam em Ciência da Computação.</p><p>Então, eu fui aprender e praticar. Todos os dias.</p><p>Dediquei dias inteiros a aprender algoritmos de ordenação. Em outros dias, busquei entender como funcionava a internet.</p><p>Se eu não entendia um conceito por completo, passava o dia assistindo vídeos no YouTube ou pesquisando no StackOverflow até entender.</p><p>Achei os materiais de estudo a seguir muito úteis:</p><ul><li><a href="https://www.interviewcake.com/" rel="noopener">InterviewCake</a>: meu recurso favorito para algoritmos e estruturas de dados. Eles dividem a solução em partes, passo a passo — uma ótima alternativa ao Cracking the Code Interview (CTCI). Minha única queixa estava no fato de eles não terem mais problemas para resolver!</li><li><a href="https://www.hiredintech.com/classrooms/system-design/lesson/60" rel="noopener">Seção de Design de sistemas da HiredInTech</a>: um ótimo guia para perguntas de entrevistas sobre design de sistemas.</li><li><a href="https://www.educative.io/collection/5642554087309312/5679846214598656" rel="noopener">Coderust</a>: se você está evitando o CTCI com todas as suas forças, o Coderust 2.0 pode ser a saída perfeita para você. Por US$49, você obtém soluções em quase todas as linguagens de programação, com diagramas interativos.</li><li><a href="https://www.reddit.com/r/cscareerquestions/comments/1jov24/heres_how_to_prepare_for_tech_interviews/" rel="noopener">Como se preparar para entrevistas em tecnologia do Reddit</a>: usei constantemente esse site como régua de medição para meu nível de preparação.</li><li><a href="https://github.com/h5bp/Front-end-Developer-Interview-Questions" rel="noopener">Front End Interview Questions</a>: Uma lista <em><em>ex</em>tensa</em> de perguntas sobre front-end.</li><li><a href="https://leetcode.com/" rel="noopener">Leetcode</a>: o recurso ideal para perguntas sobre algoritmos e estruturas de dados. Você pode filtrar por empresa. Desse modo, por exemplo, você pode ver todas as perguntas que a Uber ou o Google geralmente fazem.</li></ul><blockquote>Moral da história: não existe algo do tipo "preparação em excesso".</blockquote><h3 id="insight-n-4-mostre-o-seu-melhor-ngulo"><strong><strong><strong>Insight </strong></strong>nº <strong><strong>4: </strong></strong>mostre o seu melhor ângulo</strong></h3><p>Entrar no setor é difícil. Você precisa ter um bom desempenho, mesmo quando não está totalmente preparado. Para ter sucesso, você precisa ser seu próprio advogado.</p><h4 id="venda-seu-peixe"><strong>Venda seu peixe</strong></h4><p>No Hack Reactor, fomos treinados a mascarar nossa inexperiência. Em nossas narrativas pessoais, omitíamos de propósito nossa educação em um bootcamp.</p><p>Por quê? Porque se fizéssemos o contrário, as empresas nos classificariam automaticamente como desenvolvedor júnior ou nos rotulariam como "sem experiência suficiente".</p><p>Em uma entrevista com uma startup, a entrevista já deu errado no momento em que perceberam que eu havia feito um bootcamp. Uma empresa usou isso contra mim e me fez uma oferta de US$60 mil, contrastando com outros desenvolvedores júnior.</p><p>No fim, você precisa convencer as empresas de que você consegue realizar as tarefas.</p><p>Ao mesmo tempo, é preciso convencer <em>a si mesmo </em>de que consegue realizar as tarefas.</p><p>Você consegue. Concentre-se no seu amor pela programação. COncentre-se no que você já criou com React e Node. Concentre-se em demonstrar seu grande conhecimento em JavaScript e em qualquer outra linguagem que tenha aprendido.</p><p>É somente nesse momento que eles podem justificar dar a você a vaga.</p><h4 id="-um-di-logo-n-o-um-mon-logo"><strong>É um diálogo, não um monólogo</strong></h4><p>Entrevistas são uma investigação mútua de acerto entre um empregador e um empregado. Embora seja sua tarefa convencer os empregadores a contratar você, também é a tarefa deles fazer você ter vontade de trabalhar com eles.</p><p>Não tenha vergonha de usar a entrevista como uma chance de avaliar a oportunidade de emprego.</p><p>Eu fazia perguntas sobre qualquer uma das empresas, mesmo aquelas nas quais eu tinha pouco interesse.</p><p>Eu fiz entrevistas presenciais em quase todo o país e com qualquer empresa que me convidasse. Eu fazia perguntas e absorvia o conhecimento sobre a organização da equipe de engenharia, sobre as tecnologias e as ferramentas utilizadas, sobre os desafios da empresa e sobre a arquitetura do sistema.</p><blockquote><em>Dica profissional<em>: Dur</em>ante as entrevistas<em>, </em>faça as seguintes perguntas<em>:</em></em></blockquote><blockquote><em>Quais são alguns dos desafios técnicos que vocês vêm enfrentando ultimamente<em>?</em></em></blockquote><blockquote><em>De que você gosta mais ao trabalhar na empresa <em>X?</em></em></blockquote><blockquote><em>Como são estruturadas as equipes e como as tarefas são divididas em geral<em>?</em></em></blockquote><p>Tratei cada interação como uma oportunidade de aprendizado. Cada interação me ajudou a melhorar minha apresentação, capacidade de lidar com entrevistas e habilidades técnicas. Cada insucesso me ajudou a encontrar meus pontos fracos.</p><blockquote><em>Moral da história<em>: </em>não se menospreze<em>! </em>E lembre-se<em>, </em>é uma investigação mútua<em>.</em></em></blockquote><h3 id="insight-n-5-uma-corrida-de-resist-ncia-n-o-de-velocidade"><strong><strong><strong>Insight </strong></strong>nº <strong><strong>5: </strong></strong>é uma corrida de resistência<strong><strong>, n</strong></strong>ão de velocidade</strong></h3><p>O caminho não é, de jeito algum, fácil. Por 3 meses, eu estudei sem descanso 6 dias por semana. Mas eu me esforcei para cuidar de mim.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2021/12/JCemFdVueUTGuA294JVs-b0pc5iPf3INw3ve.png" class="kg-image" alt="JCemFdVueUTGuA294JVs-b0pc5iPf3INw3ve" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2021/12/JCemFdVueUTGuA294JVs-b0pc5iPf3INw3ve.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2021/12/JCemFdVueUTGuA294JVs-b0pc5iPf3INw3ve.png 800w" width="800" height="659" loading="lazy"><figcaption>Um dia como qualquer outro, só que em JavaScript</figcaption></figure><p>Havia dias em que eu estudava com os amigos. Em outros, eu ia a um café estudava por minha conta, ou ia para a sala dos ex-alunos do Hack Reactor para me juntar aos outros. A cada semana, eu visitava nosso consultor de carreiras para falar sobre o andamento do processo.</p><p>É fácil chegar à exaustão nesse processo. Por isso, coma bem, durma o suficiente e faça exercícios.</p><p>Pode ser bastante solitário. Passe um tempo com amigos que estejam passando pela mesma experiência.</p><blockquote><em>Moral da história<em>: </em>p<em>repare</em>-se<em> </em>para uma competição longa e não se esqueça de cuidar de você mesmo<em>.</em></em></blockquote><h3 id="em-resumo-as-li-es-mais-importantes-s-o-"><strong>Em resumo, as lições mais importantes são:</strong></h3><ol><li>Converse com pessoas reais</li><li>Comece de baixo e vá subindo</li><li>Estude como se seu futuro dependesse disso</li><li>Mostre seu melhor ângulo</li><li>É uma corrida de resistência, não de velocidade</li></ol><p>O processo pode parecer interminável, mas você terá sucesso. Comece dedicando horas a isso. Siga enviando currículos. Continue cuidando de si mesmo. Tudo isso vale a pena no final.</p><p>Um agradecimento especial a <a href="https://www.freecodecamp.org/news/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331/undefined" rel="noopener">Dylan Tran</a>, <a href="https://www.freecodecamp.org/news/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331/undefined" rel="noopener">Karen Zhao</a>, <a href="https://www.freecodecamp.org/news/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331/undefined" rel="noopener">Rohit 'Sunny' Rekhi</a>, <a href="https://www.freecodecamp.org/news/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331/undefined" rel="noopener">Jake Pace</a>, <a href="https://www.freecodecamp.org/news/5-key-learnings-from-the-post-bootcamp-job-search-9a07468d2331/undefined" rel="noopener">Anamita Guha</a>, Stephanie Liu e a tantas outras pessoas.</p><p>Compartilhe com seus amigos que estiverem procurando emprego no momento.</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Os 10 sites da web mais populares com desafios de programação [Atualizado para 2021] ]]>
                </title>
                <description>
                    <![CDATA[ Uma ótima maneira de desenvolver suas habilidades ao aprender a programar é resolvendo desafios. Resolver tipos diferentes de desafios e enigmas pode ajudar você a melhorar suas habilidades na solução de problemas, aprender as especificidades de uma linguagem de programação, se preparar para entrevistas de emprego, aprender algoritmos novos e ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/os-10-sites-da-web-mais-populares-com-desafios-de-programacao/</link>
                <guid isPermaLink="false">61586b0a93a1630527b88eb0</guid>
                
                    <category>
                        <![CDATA[ Tecnologia ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Thu, 07 Oct 2021 10:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2021/10/1_vmGJG77e-nLnKlv-tUgf5w.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">The 10 Most Popular Coding Challenge Websites</a>
      </p><p>Uma ótima maneira de desenvolver suas habilidades ao aprender a programar é resolvendo desafios. Resolver tipos diferentes de desafios e enigmas pode ajudar você a melhorar suas habilidades na solução de problemas, aprender as especificidades de uma linguagem de programação, se preparar para entrevistas de emprego, aprender algoritmos novos e mais.</p><p>Abaixo, vemos uma lista de sites de desafios de programação conhecidos com uma breve descrição do que é oferecido por cada um.</p><h3 id="1-topcoder"><strong><a href="https://www.topcoder.com/challenges/?pageIndex=1" rel="noopener">1. TopCoder</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f" class="kg-image" alt="MTryRL4uVza1V87ERWY26L4cFeqD2rgAnW1f" width="800" height="133" loading="lazy"></figure><p>O TopCoder é uma das plataformas on-line originais de programação competitiva. Lá, você encontra uma lista de <a href="https://www.topcoder.com/community/how-it-works/" rel="noopener">desafios com algoritmos</a> do passado que você pode resolver por conta própria, on-line e diretamente, usando seu editor de código. As Single Round Matches do site são populares e oferecidas algumas vezes ao mês em horas específicas. Nelas, você pode competir contra os outros resolvendo desafios o mais rápido possível para ter as melhores pontuações.</p><p>Os <a href="https://www.topcoder.com/tc?module=AlgoRank" rel="noopener">usuários com a melhor classificação</a> no TopCoder são programadores e competidores muito bons que participam regularmente de competições de programação. O usuário com a melhor classificação tem <a href="http://petr-mitrichev.blogspot.com/" rel="noopener">seu próprio blog</a>, chamado <em><em>Algorithms weekly by Petr Mitrichev</em>,<em> </em></em>onde ele escreve sobre as competições de programações, algoritmos, matemática e mais.</p><h3 id="2-coderbyte"><strong><a href="https://www.coderbyte.com/" rel="noopener">2. Coderbyte</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig" class="kg-image" alt="sP6ow4n2alliqp5L-p5fVRQC9W0GTws1B9Ig" width="800" height="288" loading="lazy"></figure><p>O Coderbyte oferece mais de 200 desafios de programação, que você pode resolver diretamente on-line em uma entre 10 linguagens de programação (confira este <a href="https://www.coderbyte.com/information/First%20Factorial" rel="noopener">exemplo</a>). Os desafios vão de fáceis (encontrar a maior palavra em uma string) a difíceis (imprimir a correspondência de maior cardinalidade em um grafo).</p><p>Eles também oferecem uma coleção de <a href="https://www.coderbyte.com/algorithm/tree-traversal-algorithms" rel="noopener">tutoriais de algoritmos</a>, vídeos introdutórios e <a href="https://www.coderbyte.com/course/google-interview-questions" rel="noopener">cursos de preparação para entrevistas</a>. Diferente do HackerRank e de outros sites da web semelhantes, você pode ver soluções de outros usuários para qualquer um dos desafios, além das soluções <em><em>oficia</em>is</em> publicadas pelo Coderbyte.</p><h3 id="3-project-euler"><strong><a href="https://projecteuler.net/" rel="noopener">3. Project Euler</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V" class="kg-image" alt="plhA-E3btLLYRvc4hi3WxmUpAhu3aoef1o0V" width="742" height="422" loading="lazy"></figure><p>O Project Euler fornece uma grande coleção de desafios relacionados à ciência da computação e da matemática. Os desafios tipicamente envolvem escrever um pequeno programa para descobrir a solução para uma fórmula matemática ou equação interessante, <a href="https://projecteuler.net/problem=551" rel="noopener">como encontrar a soma dos dígitos</a> de todos os números que precedem cada número em uma série.</p><p>Você não pode programar a solução diretamente no site em um editor de código, mas precisa escrever uma solução em seu próprio computador e enviar a solução para o site.</p><h3 id="4-hackerrank"><strong><a href="https://www.hackerrank.com/domains" rel="noopener">4. HackerRank</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu" class="kg-image" alt="dOpMtufto0gLZiyDOHZ4BVF58S-z393wRlcu" width="796" height="416" loading="lazy"></figure><p>O HackerRank fornece desafios para vários domínios diferentes, como Algoritmos, Matemática, SQL, Programação Funcional, AI e mais. Você pode resolver todos os desafios diretamente on-line (<a href="https://www.hackerrank.com/challenges/simple-array-sum/problem">confira este exemplo</a>). Eles fornecem uma discussão e um quadro de melhores pontuações para cada desafio. A maioria dos desafios tem um editorial que explica mais sobre o desafio e sobre como abordá-lo para chegar a uma solução. Apesar do editorial, não é possível ver, no momento, as soluções dos outros usuários no HackerRank.</p><p>O HackerRank também dá a possibilidade de os usuários <a href="https://www.hackerrank.com/jobs/common-app" rel="noopener">enviarem inscrições</a> e se inscreverem para empregos por meio da solução de desafios de programação patrocinados por algumas empresas.</p><h3 id="5-codechef"><strong><a href="https://www.codechef.com/" rel="noopener">5. CodeChef</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa" class="kg-image" alt="81eunsDYPAqBSC8KwPpBxhPFTHiqGXp70kMa" width="800" height="354" loading="lazy"></figure><p>O CodeChef é um <a href="https://en.wikipedia.org/wiki/CodeChef" rel="noopener">site</a> indiano de programação competitiva que fornece centenas de desafios. Você consegue escrever o código em um <a href="https://www.codechef.com/ide" rel="noopener">editor</a> on-line e ver uma coleção de desafios separados em categorias diversas, dependendo do seu nível de habilidade (veja este <a href="https://www.codechef.com/problems/TREEFUN" rel="noopener">exemplo</a>). Eles têm uma grande comunidade de programadores que contribuem nos fóruns, escrevem <a href="https://www.codechef.com/wiki/tutorial-paying" rel="noopener">tutoriais</a> e participam das competições de programação do CodeChef.</p><h3 id="6-exercism-io"><strong>6. <a href="https://exercism.io/">Exercism.io</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2019/12/Screen-Shot-2019-12-11-at-8.14.45-AM.png" class="kg-image" alt="Screen-Shot-2019-12-11-at-8.14.45-AM" width="600" height="400" loading="lazy"></figure><p>O <a href="https://exercism.io/">Exercism</a> é um site de desafios de programação que oferece mais de 3100 desafios em 52 linguagens de programação diversas. Depois de escolher a linguagem que você quer dominar, você faz os desafios de programação diretamente de sua máquina (o Exercism tem sua própria interface de linha de comando que você pode baixar do GitHub).</p><p>Ele é um pouco diferente dos outros sites de desafios de programação, pois você pode trabalhar com um mentor após concluir cada desafio. O mentor revisa suas resposta on-line e ajuda você a melhorá-la, se necessário. Depois que suas respostas foram aprovadas e enviadas, você desbloqueia mais desafios.</p><h3 id="7-codewars"><strong><a href="https://www.codewars.com/" rel="noopener">7. Codewars</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq" class="kg-image" alt="QR7cVhZ7FGb6HjaEDu4N5Co1eTMNTbo1JFzq" width="800" height="406" loading="lazy"></figure><p>O Codewars tem uma grande coleção de desafios de programação enviados e editados por sua própria comunidade. Você pode resolver os desafios <a href="https://www.codewars.com/kata/trailing-zeros-in-factorials-in-any-given-integer-base/train/javascript" rel="noopener">on-line</a> diretamente no editor do site em várias linguagens. Você pode ver as discussões de cada um dos desafios, bem como as soluções dos outros usuários.</p><h3 id="8-leetcode"><strong><a href="https://leetcode.com/" rel="noopener">8. LeetCode</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7" class="kg-image" alt="RzWKVwPaLY2SRsWFWk93ZNlzcg8V0Yeav5t7" width="800" height="363" loading="lazy"></figure><p>O LeetCode é um <a href="https://en.wikipedia.org/wiki/Online_judge" rel="noopener">juiz on-line</a> conhecido, que fornece uma lista de mais de 190 desafios que podem ajudar você a se preparar para entrevistas técnicas de emprego. Você pode resolver os desafios <a href="https://leetcode.com/problems/merge-k-sorted-lists/" rel="noopener">diretamente on-line</a> em uma das 9 linguagens de programação. Você não pode ver as soluções dos outros usuários, mas recebe estatísticas para suas soluções, como a velocidade de execução do seu código em comparação com os códigos de outros usuários.</p><p>Eles também têm uma seção de <a href="https://leetcode.com/mockinterview/" rel="noopener">simulação de entrevista</a>, as Mock Interviews, especificamente para a preparação para entrevistas de emprego. O site hospeda suas próprias competições de programação, além de ter uma seção para os artigos <a href="https://leetcode.com/articles/recursive-approach-segment-trees-range-sum-queries-lazy-propagation/" rel="noopener">q</a>ue vão ajudar você a entender melhor determinados problemas.</p><h3 id="9-spoj"><strong><a href="http://www.spoj.com/" rel="noopener">9. SPOJ</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL" class="kg-image" alt="MF3wP06V24C7jal2f8NRvAVhS-tAA2vbNDTL" width="800" height="392" loading="lazy"></figure><p>O Sphere Online Judge (SPOJ) é um juiz on-line que fornece mais de 20 mil desafios de programação. Você pode enviar seu código por meio de um <a href="http://www.spoj.com/problems/TETRA/" rel="noopener">editor on-line</a>. O SPOJ também hospeda suas próprias competições<a href="http://www.spoj.com/contests/" rel="noopener"> </a>e tem uma área para os usuários discutirem os desafios de programação. No entanto, eles não fornecem soluções ou editoriais <em><em>oficia</em>is</em> como outros sites similares.</p><h3 id="10-codingame"><strong><a href="https://www.codingame.com/" rel="noopener">10. CodinGame</a></strong></h3><figure class="kg-card kg-image-card"><img src="https://cdn-media-1.freecodecamp.org/images/6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU" class="kg-image" alt="6l08ZCKDOaoY1TH-PHHHac26McA-c1tIDOPU" width="800" height="460" loading="lazy"></figure><p>O CodinGame é um pouco diferente dos outros sites, pois, em vez de simplesmente resolver desafios de programação em um editor, você participa, de fato, na criação de códigos para jogos que você joga on-line diretamente. Você pode ver uma lista dos jogos que são oferecidos no momento <a href="https://www.codingame.com/training" rel="noopener">aqui</a> e um exemplo de um deles <a href="https://www.codingame.com/ide/puzzle/there-is-no-spoon-episode-1" rel="noopener">aqui</a>. O jogo vem com uma descrição do problema, casos de teste e um editor, onde você pode escrever seu código em uma das mais de 20 linguagens de programação.</p><p>Embora esse site seja diferente dos sites de programação competitiva típicos, como os mencionados anteriormente neste artigo, ele ainda é bem <a href="https://techcrunch.com/2015/11/11/with-codingame-learning-to-code-becomes-a-game/" rel="noopener">popular</a> entre os programadores que gostam de resolver desafios e de participar de competições.</p><p>Esta lista foi baseada em algumas questões: as próprias experiências do autor no uso dos sites, algumas <a href="https://www.google.com/webhp?sourceid=chrome-instant&amp;rlz=1C5CHFA_enUS689US689&amp;ion=1&amp;espv=2&amp;ie=UTF-8#safe=off&amp;q=coding+challenges" rel="noopener">pesquisas no Google</a>, <a href="https://www.quora.com/What-are-good-coding-challenges-websites" rel="noopener">publicações no Quora</a> e artigos como <a href="http://infocreeds.com/top-10-coding-challenges-websites/" rel="noopener">este</a> e <a href="https://www.linkedin.com/pulse/most-popular-programming-contest-sites-coding-practice-somenath-panda" rel="noopener">este</a>. O autor também frequentou alguns fóruns e subreddits, como o <a href="https://www.reddit.com/r/learnprogramming/" rel="noopener">r/learnprogramming</a>, para saber quais sites geralmente eram recomendados pelos usuários de lá. Aviso: o autor trabalha no Coderbyte, que é um dos sites mencionados acima.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
