<?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[ Daniel Rosa - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Daniel Rosa - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 09 Jun 2026 10:25:04 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/author/danielrosa/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ World Translation Month is Back – How to Help Translate freeCodeCamp into Your Native Language ]]>
                </title>
                <description>
                    <![CDATA[ One year has passed since freeCodeCamp held our first World Translation Month in September 2021.  Well, it’s September again – and here we are for the second installment of this month-long event. freeCodeCamp is holding our World Translation Month fo... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/world-translation-month-is-back-how-can-you-contribute-to-translate-freecodecamp-into-your-language/</link>
                <guid isPermaLink="false">66b0a7b97e889761ef17c3fd</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ translation ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Tue, 06 Sep 2022 14:00:47 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/09/World-Translation-Month-Article-Image-1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>One year has passed since freeCodeCamp held our first World Translation Month in September 2021. </p>
<p>Well, it’s September again – and here we are for the second installment of this month-long event. freeCodeCamp is holding our World Translation Month for the second year in a row, taking place September 6th and running through the rest of the month.</p>
<h2 id="heading-what-is-world-translation-month">What is World Translation Month?</h2>
<p>World Translation Month is an initiative held by freeCodeCamp to help translate freeCodeCamp's curriculum into as many world languages as possible.</p>
<p>The event welcomes new localization contributors and thanks those who are already helping in the translation process. </p>
<p>During the inaugural event last year, freeCodeCamp held a Twitter Spaces session. During that session, we got to chat with contributors. We helped a lot of new people get started translating freeCodeCamp into their native language.</p>
<p>Rafael, the leader of the translation effort worldwide, published <a target="_blank" href="https://www.freecodecamp.org/news/world-translation-month-event/">this article</a> announcing the event. It provides some data on the efforts of translation up to that point.</p>
<p>You can also <a target="_blank" href="https://www.youtube.com/watch?v=jHbylSuuhIo">watch this short video</a> that contains messages from contributors all around the world about what World Translation Month means to them and how they're helping out.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/jHbylSuuhIo" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-translation-progress-to-date">Translation Progress to Date</h2>
<p>So much has happened in the twelve months since then. We've gotten contributors from many different languages. For example, Italian, Japanese, Portuguese, and Ukrainian now have the whole curriculum translated. </p>
<p>Others have started the process of translating the first three core certifications – Responsive Web Design (in its latest version), JavaScript, and Front-End Libraries – like Arabic, Bengali, French, German, Indonesian, Korean, Persian, Romanian, Russian, Turkish, and Urdu.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/languages2-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>freeCodeCamp's certifications translated to Italian and Japanese (above), Portuguese and Ukranian (below).</em></p>
<p>The community has also changed our focus a bit. This year, we made the decision to shift our attention to the freeCodeCamp publication. We've started translating our most popular tutorials into other world languages </p>
<p>We've now published these tutorials in many languages. Already, we have 475 articles in Spanish and over 1,000 articles in Chinese.</p>
<p>Portuguese has around 350 articles, and Italian has more than 200 articles translated. </p>
<p>The Japanese, Bengali, Arabic, and Urdu news sections have also been producing more and more translations for their publications.</p>
<p>This does not mean we are leaving the curriculum behind. In fact, both tasks are happening concurrently. Some contributors are focused on the curriculum, while others assist with the translation of the articles.</p>
<h2 id="heading-a-change-in-our-communication-channels">A Change in Our Communication Channels</h2>
<p>We've also changed how we communicate with our localization contributors. In June, we moved our chat rooms that we use to communicate with our contributors to our community Discord server. </p>
<p>This made it easier to interact with contributors. It has also helped them interact more easily with each other as well as with other members of the community who are learning to code. </p>
<p>The chat rooms for translations are under Localization, as seen in the image below:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/image-196.png" alt="Image" width="600" height="400" loading="lazy">
<em>Localization chat rooms on the fCC Discord server</em></p>
<p>If campers need help with the curriculum in general, they can still ask questions on the <a target="_blank" href="https://forum.freecodecamp.org/">freeCodeCamp Forum</a>. </p>
<p>We have also set up sections in the different languages on the Forum to help people who have doubts during their journey across the curriculum but find it hard to ask their questions in English.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/09/image-197.png" alt="Image" width="600" height="400" loading="lazy">
<em>Several localized sections of the fCC forum are now available</em></p>
<h2 id="heading-the-goal-of-world-translation-month">The Goal of World Translation Month</h2>
<p>The goal of the World Translation Month is twofold:</p>
<ul>
<li>to thank our contributors for all they've been doing to bring freeCodeCamp to as many world languages as possible, and </li>
<li>to invite more contributors to be part of our translation effort.</li>
</ul>
<p>Quincy published an <a target="_blank" href="https://www.freecodecamp.org/news/help-translate-freecodecamp-language/">article</a> in June where you can read about how to reach out to us to offer your translation assistance. </p>
<p>We would also like to show our appreciation to our contributors who have taken their time to produce more and more texts in their languages. These translated curricula and articles make it possible for people around the world to learn to code in their native language.</p>
<h2 id="heading-world-translation-month-badges">World Translation Month Badges</h2>
<p>This year, we will once again give out badges to the contributors who have helped us translate articles for the publication throughout the month. Even though articles may vary in size, we understand that each one requires a ton of effort. </p>
<p>Translating articles is quite different from translating the curriculum. Contributors can translate a few strings in the curriculum and stop contributing. But each contributor is responsible for an entire article once they decide to translate it. So contributors begin and end the translation of articles they choose, something they excel at. </p>
<p>During the World Translation Month event, we will give all participants who have contributed throughout the month a World Translation Month Badge. </p>
<p>Also, at the end of the event, we will present special badges to the Top Translators who have made the most contributions in the month of September. </p>
<p>You will be able to display these badges on your freeCodeCamp forum profile if you want to do so.</p>
<h2 id="heading-thank-you-to-all-the-translators-contributors-and-proofreaders">Thank You to All the Translators, Contributors, and Proofreaders!</h2>
<p>If you would like to help translate freeCodeCamp's curriculum into any world language, visit our contributors’ channel on Discord, and read <a target="_blank" href="https://www.freecodecamp.org/news/help-translate-freecodecamp-language/">Quincy’s article</a> on how to contribute and learn more. </p>
<p>If you are part of this initiative and have contributed by volunteering to bring freeCodeCamp's vast resources to your native language, thank you! We offer our heartfelt gratitude and wishes that the process has helped you learn and has been fun for you. Keep up the great work!</p>
<h2 id="heading-end-of-world-translation-month-2022-update">End of World Translation Month 2022 Update</h2>
<p>World Translation Month has come to an end. And we would like to thank all the contributors who helped us translate the freeCodeCamp publication and the curriculum into many different world languages. </p>
<p>In the table below, you will find a list of our most prolific translators during the month of September grouped by language. Those who contributed the most will also get the Top Translator badge as an acknowledgement of the many hours they dedicated to this effort.</p>
<h3 id="heading-arabic">Arabic</h3>
<h4 id="heading-publication">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Mostafa Higazy</td><td><a target="_blank" href="https://www.freecodecamp.org/arabic/news/author/mostafa/">mostafa</a></td><td></td></tr>
</tbody>
</table>
</div><h4 id="heading-curriculum">Curriculum</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Crowdin Username</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Mohamed Elmetwaly</td><td>@Sakaly</td><td></td><td>✔️</td></tr>
<tr>
<td>Shady Moustafa</td><td>@Tozlock</td><td></td><td>✔️</td></tr>
<tr>
<td>abdelhakim</td><td>@abdelhakim</td><td></td><td></td></tr>
<tr>
<td>Khalid Benjelloun</td><td>@kmbenjel</td><td></td><td></td></tr>
<tr>
<td>Karim Elnemr</td><td>@karim.elnemr</td><td></td><td></td></tr>
<tr>
<td>Merna Maged</td><td>@mernamageed</td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-chinese">Chinese</h3>
<h4 id="heading-publication-1">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Chengjun.L</td><td><a target="_blank" href="https://chinese.freecodecamp.org/news/author/chengjun/">chengjun</a></td><td></td><td>✔️</td></tr>
<tr>
<td>熊治杰</td><td><a target="_blank" href="https://chinese.freecodecamp.org/news/author/xiong/">xiong</a></td><td></td><td>✔️</td></tr>
<tr>
<td>PapayaHUANG</td><td><a target="_blank" href="https://chinese.freecodecamp.org/news/author/papayahuang/">papayahuang</a></td><td></td><td>✔️</td></tr>
<tr>
<td>luojiyin</td><td><a target="_blank" href="https://chinese.freecodecamp.org/news/author/luojiyin/">luojiyin</a></td><td><a target="_blank" href="https://twitter.com/vizrtluo">@vizrtluo</a></td><td>✔️</td></tr>
<tr>
<td>Yaxing Li</td><td><a target="_blank" href="https://chinese.freecodecamp.org/news/author/yaxing/">yaxing</a></td><td></td><td></td></tr>
<tr>
<td>赵翘楚</td><td></td><td></td></tr>
</tbody>
</table>
</div><h4 id="heading-curriculum-1">Curriculum</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Crowdin Username</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>ZhichengChen</td><td>@ZhichengChen</td><td></td><td>✔</td></tr>
<tr>
<td>Alan Luo</td><td>@iLtc</td><td></td><td>✔</td></tr>
<tr>
<td>HigginsLee</td><td>@HigginesLee</td><td></td><td></td></tr>
<tr>
<td>Wenwei Zheng</td><td>@Johnson-Zheng</td><td></td><td></td></tr>
<tr>
<td>Rin</td><td>@Rin</td><td></td><td></td></tr>
<tr>
<td>Miracle</td><td>@Miracle</td><td></td><td></td></tr>
<tr>
<td>Shan Li</td><td>@shanlillian33</td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-french">French</h3>
<h4 id="heading-publication-2">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Ihssan</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/ihssand/">ihssand</a></td><td></td><td>✔️</td></tr>
<tr>
<td>Evan Hermier</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/evan/">evan</a></td><td></td><td></td></tr>
<tr>
<td>Pierre de Lépinay</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/pierre/">pierre</a></td><td></td><td></td></tr>
<tr>
<td>Guillaume Fassot</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/guillaume/">guillaume</a></td><td></td><td></td></tr>
<tr>
<td>lardeux jerome</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/chuck2kill/">chuck2kill</a></td><td></td><td></td></tr>
<tr>
<td>Bernard Ngandu</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/bernard-ng/">bernard-ng</a></td><td></td><td>✔️</td></tr>
<tr>
<td>Arthur Landurant</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/arthur/">arthur</a></td><td></td><td></td></tr>
<tr>
<td>Raphaël Seguin</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/raphael/">raphael</a></td><td></td><td></td></tr>
<tr>
<td>Aline Leroy</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/aline/">aline</a></td><td></td><td></td></tr>
<tr>
<td>Jean-Baptiste</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/jean-baptiste-lelandais/">jean-baptiste-lelandais</a></td><td></td><td></td></tr>
<tr>
<td>Emmanuel KPOGLI</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/emmanuel/">emmanuel</a></td><td></td><td></td></tr>
<tr>
<td>Jennyfer Collin</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/jennyfer/">jennyfer</a></td><td></td><td></td></tr>
<tr>
<td>Mehdi</td><td><a target="_blank" href="https://www.freecodecamp.org/french/news/author/soon/">soon</a></td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-german">German</h3>
<h4 id="heading-publication-3">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Stephan Düsterhöft</td><td><a target="_blank" href="https://www.freecodecamp.org/german/news/author/stephan/">stephan</a></td><td><a target="_blank" href="https://twitter.com/stephandue">@stephandue</a></td><td>✔️</td></tr>
<tr>
<td>Alexander Hentschel</td><td><a target="_blank" href="https://www.freecodecamp.org/german/news/author/alexander/">alexander</a></td><td></td><td>✔️</td></tr>
</tbody>
</table>
</div><h3 id="heading-haitian-creole">Haitian Creole</h3>
<h4 id="heading-publication-4">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Certil Rémy</td><td><a target="_blank" href="https://www.freecodecamp.org/haitian/news/author/certilremy/">certilremy</a></td><td><a target="_blank" href="https://twitter.com/certilremy">@certilremy</a></td><td>✔️</td></tr>
<tr>
<td>Chris Wesley Pierre</td><td></td><td></td><td></td></tr>
<tr>
<td>Vanessa Jacques</td><td></td><td></td><td></td></tr>
<tr>
<td>Marie Magdala Saintil</td><td></td><td></td><td></td></tr>
<tr>
<td>Esnold Jure</td><td></td><td></td><td></td></tr>
<tr>
<td>Danio Aneus</td><td></td><td></td><td></td></tr>
<tr>
<td>Jean Came Poulard</td><td></td><td></td><td></td></tr>
<tr>
<td>Jean Gerard Bousiquot</td><td></td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-hindi">Hindi</h3>
<h4 id="heading-publication-5">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Kailash Choudhary</td><td></td><td></td><td></td></tr>
<tr>
<td>Nivedita Rajput</td><td></td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-indonesian">Indonesian</h3>
<h4 id="heading-publication-6">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Kennan P</td><td></td><td></td><td></td></tr>
<tr>
<td>Bagus Aji Santoso</td><td></td><td></td><td>✔️</td></tr>
<tr>
<td>Peter Jose</td><td></td><td></td><td></td></tr>
<tr>
<td>Suci R. Putri</td><td></td><td></td><td></td></tr>
<tr>
<td>Haris Wirabrata</td><td></td><td></td><td></td></tr>
<tr>
<td>Hendri Priyambowo</td><td></td><td></td><td></td></tr>
<tr>
<td>Egar Pramana</td><td></td><td></td><td></td></tr>
<tr>
<td>Christine</td><td></td><td></td><td></td></tr>
<tr>
<td>Muhammad Cholid Hidayatullah</td><td></td><td></td><td></td></tr>
<tr>
<td>Ihsan</td><td></td><td></td><td></td></tr>
<tr>
<td>Kevin Matthew</td><td></td><td></td><td></td></tr>
<tr>
<td>Rizki Kurniawati</td><td></td><td></td><td></td></tr>
<tr>
<td>Muhammad Aswinsz</td><td></td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-italian">Italian</h3>
<h4 id="heading-publication-7">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Roberto Pauletto</td><td><a target="_blank" href="https://www.freecodecamp.org/italian/news/author/rob1458/">rob1458</a></td><td></td><td>✔️</td></tr>
<tr>
<td>Alessandro Cipriani</td><td><a target="_blank" href="https://www.freecodecamp.org/italian/news/author/alessandro/">alessandro</a></td><td></td><td></td></tr>
<tr>
<td>Guido Cusani</td><td><a target="_blank" href="https://www.freecodecamp.org/italian/news/author/gducsn/">gducsn</a></td><td></td><td></td></tr>
<tr>
<td>Tiziano Caruana</td><td><a target="_blank" href="https://www.freecodecamp.org/italian/news/author/tiziano_caruana/">tiziano_caruana</a></td><td></td><td></td></tr>
<tr>
<td>Tobia Trinci</td><td><a target="_blank" href="https://www.freecodecamp.org/italian/news/author/tobia/">tobia</a></td><td></td><td></td></tr>
<tr>
<td>Luca De Angelis</td><td><a target="_blank" href="https://www.freecodecamp.org/italian/news/author/luca/">luca</a></td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-japanese">Japanese</h3>
<h4 id="heading-publication-8">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Hitomi Kawahara</td><td><a target="_blank" href="https://www.freecodecamp.org/japanese/news/author/hitomi/">hitomi</a></td><td><a target="_blank" href="https://twitter.com/aiminlabs">@aiminlabs</a></td><td>✔️</td></tr>
<tr>
<td>Akiko Takano</td><td><a target="_blank" href="https://www.freecodecamp.org/japanese/news/author/akiko/">akiko</a></td><td><a target="_blank" href="https://twitter.com/akiko_pusu">@akiko_pusu</a></td><td></td></tr>
<tr>
<td>Mell</td><td><a target="_blank" href="https://www.freecodecamp.org/japanese/news/author/mell/">mell</a></td><td><a target="_blank" href="https://twitter.com/__me11_">@_<em>me11</em></a></td><td></td></tr>
<tr>
<td>Manabu Matsumoto</td><td><a target="_blank" href="https://www.freecodecamp.org/japanese/news/author/manabu/">manabu</a></td><td></td><td></td></tr>
<tr>
<td>Yuusuke Okamoto</td><td></td><td></td></tr>
</tbody>
</table>
</div><h4 id="heading-curriculum-2">Curriculum</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Crowdin Username</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Kazuo Sekiguchi</td><td>@tomigo7</td><td></td><td>✔</td></tr>
<tr>
<td>mmatsumoto1026</td><td>@mmatsumoto1026</td><td></td><td></td></tr>
<tr>
<td>Akiko Takano</td><td>@akiko_pusu</td><td></td><td></td></tr>
<tr>
<td>k0dai</td><td>@k0dai</td><td></td><td></td></tr>
<tr>
<td>yoshikoueda_18</td><td>@yoshikoueda_18</td><td></td><td></td></tr>
<tr>
<td>samymammy</td><td>@samymammy</td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-portuguese-brazilian">Portuguese, Brazilian</h3>
<h4 id="heading-publication-9">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Paula Simionato</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/paulaflavia/">paulaflavia</a></td><td><a target="_blank" href="https://twitter.com/paulaflaviaps">@paulaflaviaps</a></td><td>✔️</td></tr>
<tr>
<td>Gabriel Galdino</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/gabrielgaldino/">gabrielgaldino</a></td><td></td><td></td></tr>
<tr>
<td>Pedro Alves</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/pedropaulo/">pedropaulo</a></td><td><a target="_blank" href="https://twitter.com/pedrotriforce">@pedrotriforce</a></td><td></td></tr>
<tr>
<td>Enoá Mourão</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/enoa/">enoa</a></td><td></td><td></td></tr>
<tr>
<td>Rafael Fontenelle</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/rafael-fontenelle/">rafael-fontenelle</a></td><td><a target="_blank" href="https://twitter.com/rafaelffbr1">@rafaelffbr1</a></td><td></td></tr>
<tr>
<td>Gabriel Lima</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/gabriel/">gabriel</a></td><td><a target="_blank" href="https://twitter.com/gabriellimma">@gabriellimma</a></td><td></td></tr>
<tr>
<td>Thiago Costa Barbosa</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/thiagocostabarbosa/">thiagocostabarbosa</a></td><td><a target="_blank" href="https://twitter.com/_thiagocb">@_thiagocb</a></td><td></td></tr>
<tr>
<td>Cássio Leodegário</td><td><a target="_blank" href="https://www.freecodecamp.org/portuguese/news/author/cassio/">cassio</a></td><td><a target="_blank" href="https://twitter.com/c_leodegario">@c_leodegario</a></td></tr>
</tbody>
</table>
</div><h4 id="heading-curriculum-3">Curriculum</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Crowdin Username</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Ana Beatriz</td><td>@anabeatriz</td><td></td><td>✔</td></tr>
<tr>
<td>Dairenkon Majime</td><td>@moxu</td><td></td><td></td></tr>
<tr>
<td>Daniele Vilela</td><td>@danielevilela</td><td></td><td></td></tr>
<tr>
<td>Rafael Fontenelle</td><td>@rafael-fontenelle</td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-spanish">Spanish</h3>
<h4 id="heading-publication-10">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Jose Sierra</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/jorge_sierra/">jorge_sierra</a></td><td><a target="_blank" href="https://twitter.com/Jorge_Sierra_1">@Jorge_Sierra_1</a></td><td></td></tr>
<tr>
<td>Anna Aimeri</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/anna/">anna</a></td><td><a target="_blank" href="https://twitter.com/aimerianna">@aimerianna</a></td><td></td></tr>
<tr>
<td>Josue</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/drifting/">drifting</a></td><td><a target="_blank" href="https://twitter.com/DriftingL_">@DriftingL_</a></td><td>✔️</td></tr>
<tr>
<td>Cristina Padilla</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/cristinapadilla/">cristinapadilla</a></td><td><a target="_blank" href="https://twitter.com/crispitipina">@crispitipina</a></td><td></td></tr>
<tr>
<td>Ian Cowley</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/ian-cowley/">ian-cowley</a></td><td></td><td></td></tr>
<tr>
<td>Eric</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/usdek/">usdek</a></td><td><a target="_blank" href="https://twitter.com/usdekx">@usdekx</a></td><td></td></tr>
<tr>
<td>Jhonathan Izquierdo</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/jhonathan/">jhonathan</a></td><td></td><td></td></tr>
<tr>
<td>Jose Gonzales</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/jose-gonzalez-nunez/">jose-gonzalez-nunez</a></td><td></td><td></td></tr>
<tr>
<td>Alvaro Beltran</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/alvaro-beltran/">alvaro-beltran</a></td><td><a target="_blank" href="https://twitter.com/BeltranAlvaro08">@BeltranAlvaro08</a></td><td></td></tr>
<tr>
<td>Jorge Torres Torres</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/jorge-torres-torres/">jorge-torres-torres</a></td><td><a target="_blank" href="https://twitter.com/jorgettor">@jorgettor</a></td><td></td></tr>
<tr>
<td>Miguel Rendón</td><td><a target="_blank" href="https://www.freecodecamp.org/espanol/news/author/micky/">micky</a></td><td><a target="_blank" href="https://twitter.com/mickyrend">@mickyrend</a></td></tr>
</tbody>
</table>
</div><h3 id="heading-swahili">Swahili</h3>
<h4 id="heading-publication-11">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Annoh Kargusta</td><td><a target="_blank" href="https://www.freecodecamp.org/swahili/news/author/annoh/">annoh</a></td><td><a target="_blank" href="https://twitter.com/annoh_karlgusta">@annoh_karlgusta</a></td><td>✔️</td></tr>
<tr>
<td>Harold Oliver</td><td><a target="_blank" href="https://www.freecodecamp.org/swahili/news/author/harold/">harold</a></td><td></td><td>✔️</td></tr>
<tr>
<td>Neema Adam</td><td><a target="_blank" href="https://www.freecodecamp.org/swahili/news/author/neicore/">neicore</a></td><td><a target="_blank" href="https://twitter.com/neicoree">@neicoree</a></td><td>✔️</td></tr>
</tbody>
</table>
</div><h3 id="heading-turkish">Turkish</h3>
<h4 id="heading-publication-12">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Utku</td><td></td><td></td><td></td></tr>
<tr>
<td>İlknur Beyaz</td><td></td><td></td><td></td></tr>
<tr>
<td>Dogan</td><td></td><td></td><td></td></tr>
<tr>
<td>Zehra Aydın</td><td></td><td></td></tr>
</tbody>
</table>
</div><h3 id="heading-ukrainian">Ukrainian</h3>
<h4 id="heading-publication-13">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Rustam</td><td><a target="_blank" href="https://www.freecodecamp.org/ukrainian/news/author/rustamdocstranslator/">rustamdocstranslator</a></td><td></td><td>✔️</td></tr>
</tbody>
</table>
</div><h3 id="heading-urdu">Urdu</h3>
<h4 id="heading-publication-14">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Ashique Ali</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/ali/">ali</a></td><td><a target="_blank" href="https://twitter.com/ashiqaliaslam">@ashiqaliaslam</a></td><td>✔️</td></tr>
<tr>
<td>Khurram Shahzad</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/khurram/">khurram</a></td><td><a target="_blank" href="https://twitter.com/Khurram78730833">@Khurram78730833</a></td><td></td></tr>
<tr>
<td>Syeda Farah Rehman</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/syeda/">syeda</a></td><td><a target="_blank" href="https://twitter.com/FarahSaifRahman">@FarahSaifRahman</a></td><td></td></tr>
<tr>
<td>talha</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/its-talha/">its-talha</a></td><td><a target="_blank" href="https://twitter.com/talha_inside">@talha_inside</a></td><td></td></tr>
<tr>
<td>Naveed</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/naveed/">naveed</a></td><td><a target="_blank" href="https://twitter.com/Naveed_Tech_T">@Naveed_Tech_T</a></td><td></td></tr>
<tr>
<td>Abdul Majid</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/abdul/">abdul</a></td><td><a target="_blank" href="https://twitter.com/abdulmajid_DHB">@abdulmajid_DHB</a></td><td></td></tr>
<tr>
<td>Muhammad Aadam Iqbal</td><td><a target="_blank" href="https://www.freecodecamp.org/urdu/news/author/aadam/">aadam</a></td><td><a target="_blank" href="https://twitter.com/AadamIqbal11">@AadamIqbal11</a></td></tr>
</tbody>
</table>
</div><h4 id="heading-curriculum-4">Curriculum</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Crowdin Username</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Khurram Shahzad</td><td>@ksl1816</td><td></td><td>✔</td></tr>
</tbody>
</table>
</div><h3 id="heading-vietnamese">Vietnamese</h3>
<h4 id="heading-publication-15">Publication</h4>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Name</td><td>Publication Profile</td><td>Twitter Handle</td><td>Top Contributor</td></tr>
</thead>
<tbody>
<tr>
<td>Thong Nguyen</td><td></td><td></td><td></td></tr>
<tr>
<td>Bùi Thế Vinh</td><td></td><td></td></tr>
</tbody>
</table>
</div> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Chmod Command – How to Change File Permissions in Linux ]]>
                </title>
                <description>
                    <![CDATA[ One of the first commands I learned on Linux was the touch command that creates a file using the command line.  If you ever try to create, for instance, a text file, all you have to do is type touch filename.txt, press Enter, and the file is created ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-change-file-permissions-with-the-chmod-command-on-linux/</link>
                <guid isPermaLink="false">66b0a7b22344be226f331c45</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Mon, 21 Mar 2022 15:33:36 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/pexels-artem-beliaikin-912005.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>One of the first commands I learned on Linux was the <code>touch</code> command that creates a file using the command line. </p>
<p>If you ever try to create, for instance, a text file, all you have to do is type <code>touch filename.txt</code>, press Enter, and the file is created for you in the directory you are in. You can then write whatever you want in it using the file editor of your choice.</p>
<p>However, when it comes to creating scripts, things can get a little more complicated. Why is that? </p>
<p>Let me try to show you this with another example. Suppose you want to create a script using touch. Type <code>touch example.sh</code>, press Enter, and there you have it. Once more, you can write in it using a file editor.</p>
<p>With everything ready, all that’s left to do is to test it. You type <code>./sample.sh</code> and press Enter to see your script in action and…but what is this message telling me?</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-13-58-39.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-why-do-we-need-permissions">Why do we need permissions?</h2>
<p>I am the admin! How come I don’t have permission to run a script I wrote myself seconds ago?</p>
<p>There is actually a reason for that – and, to be honest, most users should be thankful for it, since not being able to execute scripts without knowing what you’re doing often prevents you from putting your system at risk.</p>
<p>Let’s have a quick chat about permissions first. Then we'll move on to discovering how to change them.</p>
<p>In order to get some more information about your file, we will use the command that lists the files in a directory: <code>ls</code>.</p>
<p>After typing <code>ls</code> and pressing Enter, this is what we get in the command line:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-14-05-58.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>What it does is list all the visible files in the directory you are at the moment. By adding the flag <code>-l</code> to it, it provides you with more information on the files in the directory. This is the result when we type <code>ls -l</code> and press Enter:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-14-08-00.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We see the same file(s), but with plenty of information before it/them. To begin with, we have a sequence of ten dashes and letters that may seem meaningless at first. This is actually the mapping of permissions your file has.</p>
<p>The first character can be a dash (<code>-</code>, for a common file), a <code>d</code> (for a directory), or an <code>l</code> (for a soft link). For the sake of simplicity, I will focus on the simple files, although permissions are valid for all these kinds of files/folders.</p>
<p>After the first character, the other 9 can be divided in groups of three. The first trio show the permissions for the current user. The next shows the permissions for this group. The last three are the permissions for all users that don’t fit this category.</p>
<p>For our explanation, let’s focus on the first three permissions, since we are not going to change groups or anything of the sort.</p>
<p>The first trio says <code>rw-</code>.</p>
<p>Time to understand what these are. There are three things you can normally do with a file: read it, write in it, and execute it. That is, basically, what those letters mean. </p>
<p>The first <code>r</code> stands for the reading permission. Then we have <code>w</code> for the writing permission. Finally, a dash, meaning whatever should be there is not. What should be there is an <code>x</code>, standing for eXecutable.</p>
<p>So, talking about the current user (me), the permissions I have for this file are the reading and the writing permissions. I can’t, however, execute the <code>sample.sh</code> file. That’s why, when trying to execute the file, I got that 'permission denied' message.</p>
<p>How can I, then, execute this file? That’s where the <code>chmod</code> command comes into play.</p>
<h2 id="heading-what-does-chmod-do">What does chmod do?</h2>
<p>Well, I’ve been mentioning 'permissions' since the beginning of the article. Let’s extend this explanation a little bit to say that they are 'permissions to access a file in a certain <em>mode</em>. This means that <code>r</code> denotes the permission to access the file in reading mode, <code>w</code> denotes the permission to access the file in writing mode, and <code>x</code> denotes the permission to access the file in executable mode.</p>
<p>Why am I telling you that? Because of the command this article is all about. <code>chmod</code> stands for 'change mode'. In other words, when you use this command, you are changing a file’s mode to whatever mode you want to use.</p>
<h2 id="heading-how-to-use-operators-with-cmod">How to Use Operators with <code>cmod</code></h2>
<p>It is necessary to use an <em>operator</em> with the chmod command. It serves to specify the kind of change you want to do on the permissions. </p>
<p>For instance, <code>+</code> is the operator you use to add a permission to the ones the file already has. <code>-</code> removes a permission from the list. There is also the <code>=</code> operator, which resets the permissions so you can define them again.</p>
<p>In our case, by typing <code>chmod -w sample.sh</code>, what I am asking the command to do is to remove the writing permission. So what I would have to do to add the executable permission is to type <code>chmod +x sample.sh</code>.</p>
<p>If I now try to execute the file, whatever I put in the script is now going to be executed.</p>
<p>Using <code>ls -l</code>, this is what I would have now.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-14-12-03.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-who-gets-the-permission">Who gets the permission?</h2>
<p>Something else worth pointing out is who is getting this permission. You will see that the 'x' is given to all users, file owner, group, and others. If this is not what you are going for, maybe it is a good thing to remove the executable permission again with <code>chmod -x sample.sh</code>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-14-16-11.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In order to enable the permission only for the owner of the file (me, in this case), we should add a 'u' before the '+x', like this:</p>
<p><code>chmod u+x sample.sh</code></p>
<p>Typing <code>ls -l</code>, that’s what you have:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-14-18-22.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you wanted to give the permission for both the owner and its group, then the command would be <code>chmod ug+x sample.sh</code>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screenshot-from-2022-03-20-14-20-25.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Great! I think this covers what I would like to show you. There are other things that could be of interest to you, like how to use chmod with octal or binary values to represent the permissions. But these are modes we use to have the same results and I believe the letters are an easier way to achieve these results. </p>
<p>In case you want more information on the command, one thing you can do is type <code>chmod --help</code>, which will give you a briefing on what the command can do. An even more detailed description can be achieved by typing <code>man chmod</code>.</p>
<p>I hope this article was helpful to you. For more articles on Linux commands, check <a target="_blank" href="https://www.freecodecamp.org/news">freecodecamp.org/news</a>. </p>
<p>Happy coding! 😃</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Install Node.js and npm on Windows ]]>
                </title>
                <description>
                    <![CDATA[ In this article, you'll learn how to work with JavaScript in the backend using Node on Windows. When you start working with JavaScript and discover that you can not only work with it in the frontend but also in the backend, a new world of possibiliti... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-install-node-js-and-npm-on-windows-2/</link>
                <guid isPermaLink="false">66b0a7b5b27f151789723018</guid>
                
                    <category>
                        <![CDATA[ node ]]>
                    </category>
                
                    <category>
                        <![CDATA[ npm ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Windows ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Wed, 02 Mar 2022 00:18:51 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/pexels-digital-buggu-171198--1-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this article, you'll learn how to work with JavaScript in the backend using Node on Windows.</p>
<p>When you start working with JavaScript and discover that you can not only work with it in the frontend but also in the backend, a new world of possibilities seems to open up before you.</p>
<p>To begin with, you realize that you don't need to learn another language to have the backend of your applications up and running. Second, Node.js is simple to install and works in all development platforms we are used to: Mac, Linux, and Windows.</p>
<p>In this article, I'll show you how to install Node on Windows with a step-by-step guide so you're ready to use it.</p>
<p>You will also be happy to know that package management is made even easier, as npm (the Node Package Manager) comes with the installation of Node.</p>
<p>With it, you will be able to have access to an almost unending number of community-made dependencies. You can simply install these in your app so you don't have to reinvent the wheel time and again.</p>
<p>So let’s install Node on Windows and start playing with it a bit.</p>
<h2 id="heading-how-to-install-node-on-windows">How to Install Node on Windows</h2>
<p>The first thing to do is to access <a target="_blank" href="https://nodejs.org/">Node’s official site</a>.</p>
<p><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/node_site.PNG" alt="Image" width="1920" height="968" loading="lazy">
<em>Node site front page</em></p>
<p>The website is intelligent enough to detect the system you are using, so if you are on Windows, you will most likely get a page like the one above. Right in the middle of it, two buttons show you the most common possibilities of download – also the latest ones. </p>
<p>If you are curious about all the most recent features Node has to offer, go with the button on the right. For most people, however, the site itself recommends using the Long-Term Support version, which leads you to the button on the left. </p>
<p>At the moment of writing this article, the LTS version is version 16.14.0.</p>
<p>When you click on any of them, an .msi file gets downloaded to your computer. The next step is to click on it and the installation will begin. The wizard opens and the following window appears:</p>
<p><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/node_install1.PNG" alt="Image" width="491" height="384" loading="lazy">
<em>Node installation wizard's initial page</em></p>
<p>Click Next. On the following window, you'll read (you do read it, right?) Node’s EULA, accept its terms, and click Next again. The next window is the one where you select the destination folder for Node.</p>
<p><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/node_install2.PNG" alt="Image" width="493" height="383" loading="lazy"></p>
<p>Windows normally recommends that the programs be installed in the Program Files folder, in a folder of their own (in our case, we are installing Node.js, so the nodejs folder is our go-to place). </p>
<p>For the sake of simplicity, let’s follow the wizard’s suggestions and use <code>C:\Program Files\nodejs\</code> as the destination folder.</p>
<p>The following window is the one where you can customize your installation. Unless you have disk space problems or have a clear idea as to what you are doing, I recommend keeping the options as they are and just pressing Next again.</p>
<p><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/node_install3.PNG" alt="Image" width="492" height="383" loading="lazy"></p>
<p>One thing I would like to point out on this window is the third option you see. That’s the option that allows you to have npm installed along with Node on your computer. This way, if you still intend to change the setup in this page somehow, keep that option as is and npm will be installed for you at the end of the process.</p>
<p>The next window deals with the automatic installation of “Tools for Native Modules”. Again, unless you are sure you need them, I recommend keeping this checkbox unmarked and just pressing Next once more.</p>
<p><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/node_install4.PNG" alt="Image" width="488" height="383" loading="lazy"></p>
<p>We’ve reached the final pre-install window. As it says, from here, you just have to click Install to begin the installation, so let’s do it. </p>
<p>Notice the shield beside the word Install? That means Windows will ask you to confirm if you really want to go through the installation process as soon as you click that button. Assuming this is the reason why you are reading this article, just click Yes and let the installer do its thing.</p>
<p><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/03/node_install5.PNG" alt="Image" width="492" height="383" loading="lazy"></p>
<p>We finally got to the window we were hoping for, telling us that Node has successfully been installed on our Windows computer. Click Finish and let’s check if everything is ok.</p>
<h2 id="heading-how-to-check-your-node-installation">How to Check Your Node Installation</h2>
<p>In order to check if Node (and npm) were properly installed on your computer, you can choose to open either Windows Powershell or the Command Prompt. </p>
<p>We’ll go with the first. Click on the search bar beside the Start Menu button and type <code>powershell</code>. Click Enter and Windows Powershell will open up in a window for you.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/node_install10.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In any folder (like <code>C:\Users</code>, for instance), you can type <code>node -v</code> to check for the version of Node you are using. As I mentioned above, the latest version as I write this article is version 16.14.0 and that’s exactly what we see on Powershell above.</p>
<p>As a side note, you may be asking yourself why we can check this in any folder. One of the options in the custom setup (that we left as is) was to add Node to PATH. By doing so, we are able to access it from anywhere while navigating through the folders.</p>
<p>It is also possible to check for the npm version. To do so, type <code>npm -v</code> and press Enter. In our case, latest version is version 8.3.1, so we can pretty much say we are up to date.</p>
<h2 id="heading-how-to-use-npm">How to Use npm</h2>
<p>Ok, but you did not go all this way reading just to finish here after installing Node and npm, right? You want to see both in action. Let’s do it, then.</p>
<p>To learn how to start a project with Node and install packages with npm, we’ll use Visual Studio Code.</p>
<p>We'll create a folder named Node_Test, where we’ll put both Node and npm to work a little. </p>
<p>Let’s start simple. Inside the Node_Test folder, right click inside the folder and click Open with Visual Studio Code. This will make VS Code open in this empty folder automatically. </p>
<p>Inside VS Code, if you haven’t yet, open a new terminal by pressing <code>Ctrl+Shift+'</code> (single quote).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/node_install11.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Click on the terminal and, on the command line, type <code>npm init -y</code>. This will start a Node project automatically for us without us needing to worry about the initial configuration (the <code>-y</code> flag will do that on its own). This creates a package.json file within the Node_Test folder. </p>
<p>Next, let’s install Express as a dependency. You can find it and a list of other possible dependencies of npm on <a target="_blank" href="https://www.npmjs.com/">https://www.npmjs.com/</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/node_install12.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Another side note: every time you open npm’s web site, on the top left, you will see what appears to be a meaningless combination of three words. If you look at the initials, though, you will see that it is a brand-new sequence with the acronym npm. </p>
<p>Right, now let’s install Express with this Nifty Purring Manticore. Back on VS Code and the terminal, type <code>npm i express</code> and press Enter. Express will be installed. You can do the same with any other dependency you can think about.</p>
<p>To make sure that Express is installed, open package.json. Scroll up to the list of dependencies and you will see Express there.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/node_install13.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>That’s pretty much it. In this article, you saw how to install Node and npm on Windows. </p>
<p>I hope this has been useful to you. For more tutorials like this, check out <a target="_blank" href="https://freecodecamp.org/news">freecodecamp.org/news</a> and browse for the topic you would like to learn about.</p>
<p>Happy coding! 😊</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Propositional Logic for Beginners – You Already Know More Than You Think ]]>
                </title>
                <description>
                    <![CDATA[ It may sound surprising, but you already have all it takes to produce high-level logic: right behind your eyes.  In the first term of college, I was introduced to a subject called Logic. In the "I think, therefore I am" fashion, you might think this ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/propositional-logic-for-beginners/</link>
                <guid isPermaLink="false">66b0a7b7b27f15178972301a</guid>
                
                    <category>
                        <![CDATA[ beginners guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ logic ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Tue, 11 Jan 2022 18:41:47 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/01/pexels-ketut-subiyanto-4473569.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>It may sound surprising, but you already have all it takes to produce high-level logic: right behind your eyes. </p>
<p>In the first term of college, I was introduced to a subject called Logic. In the "I think, therefore I am" fashion, you might think this would be an easy subject. After all, we are all taught how to think throughout school and, since all of us "think", there would be nothing unfamiliar in the subject that could trick the less-than-alert mind. </p>
<p>Shockingly enough, in the same way <a target="_blank" href="https://www.thoughtco.com/why-math-seems-more-difficult-for-some-students-1857216">people have a hard time with Math in college</a>, Logic was the subject back then where students failed the most.</p>
<h2 id="heading-why-is-propositional-logic-hard">Why is Propositional Logic Hard?</h2>
<p>What could be the reason for that? The only thing, in theory, that might prove troublesome was the amount of unfamiliar terminology involved in propositional logic. </p>
<p>The professors used Latin expressions like "<em>modus ponens</em>" and "<em>modus tollens</em>" to define some sort of processes of inferring a result, and these often caused people to complain about the "esoteric nature" of the subject.</p>
<p>We can call this metalanguage. In this case, it can be roughly translated as "fancy language to talk about a topic that makes it harder for the students to understand what the thing really is". And it has its charm in the sense of categorizing things.</p>
<p>Intense practice with examples, however, can help students learn much more quickly than filling up their hard drive with vocabulary they'll probably only use to pass the tests and then never use again – except in those word game puzzles.</p>
<p>This is the point where I get in. Having had good results in Logic back then, I was shocked with how my classmates talked about Logic on social media (sentences like "this is not a topic for first term – it's too hard", or "why do they expect me to learn Latin? This is the 21<sup>st</sup> century!" were common). </p>
<p>Fortunately for me, instead of focusing on the naming of each inference rule I heard of, I decided to focus on understanding what each one led to – which probably made me worry less about the topic than my peers.</p>
<p><em>Ergo</em>… 😋 just kidding. SO, let me try to show you in this article some of these rules of propositional logic. </p>
<p>I will try to avoid the fancy metalanguage and present you with a couple of examples to help show you that you already think the way the Logic subject presents to you. </p>
<p>You just skip the part of using a fancy name and giving a complicated explanation for the process itself.</p>
<h2 id="heading-modus-ponens-modus-tollens-hocus-pocus-abracadabra">Modus Ponens, Modus Tollens, Hocus Pocus, Abracadabra...</h2>
<p>Let's begin with the really tough ancient Latin names: <em>Modus Ponens</em> and <em>Modus Tollens</em>. Modus ponens is defined in <a target="_blank" href="https://en.wikipedia.org/wiki/Modus_ponens">Wikipedia</a> as follows:</p>
<blockquote>
<p>In propositional logic, <strong>modus ponens</strong> (/ˈmoʊdəs ˈpoʊnɛnz/; MP), also known as <strong>modus ponendo ponens</strong> (Latin for "method of putting by placing") or implication elimination or affirming the antecedent, is a deductive argument form and rule of inference. It can be summarized as "P implies Q. P is true. Therefore, Q must also be true."</p>
</blockquote>
<p>Now I don't know about you, but when I see phonetic symbols and words that I have no idea what they mean – but someone is telling me I should – my heart skips a beat. </p>
<p>In fact, we could go straight to the last two sentences here to get to the point. The first long and haunting sentence basically serves to tell you "heroes, there is a dark and menacing-looking forest ahead of you. Leave behind all hope, ye who enter." </p>
<p>The bottom line, though, is "when the first thing is true, the second is, too. Since we know that the first is true, what do you make of the second?"</p>
<p>See? After beating the Latin words and hacking and slashing through 'propositional', 'implication', 'antecedent', 'deductive', and 'inference', you just come to the conclusion something is true because another one is true as well. Great! Now moving on.</p>
<h3 id="heading-example-of-modus-ponens">Example of modus ponens</h3>
<p>As I mentioned before, I believe examples work better than fancy words, so let's come up with a simple example:</p>
<p>I'm from a country where there is no snow at all, ever. When I'm in the US during the winter, I love making snow angels. It's winter, and I'm in the US. What do you think I'll do when it snows?</p>
<p>If what you thought was "you'll make snow angels, duh", congratulations! You have just gone through the propositional logic we talked about earlier. And you did not have to say a prayer in Latin, use magic words, cast a spell, or anything else. 😊</p>
<h2 id="heading-peas-and-queues">Peas and Queues</h2>
<p>Now you may ask, "ok, but what about the P and Q thing in the last two sentences of the definition you shamelessly CTRL-C-ed and CTRL-V-ed from Wiki?"</p>
<p>Good catch! These are representations of what we call <em>propositions</em> (that's why this is called "<em>propositional</em> logic", by the way). </p>
<p>A proposition is nothing more than a sentence. They could have said "sentence A" and "sentence B" instead. But someone in the past chose P and Q, just like in Math you'd go with X and Y. </p>
<p>Using the example above, being in the US in the winter (proposition P), to me, means (implies) that I must get to the ground and wave my arms and legs frantically to make what looks like the shape of an angel. </p>
<p>Now, you know I'm in the US in winter and it snows (I told you that "P" is true). Here is the moment where we conclude that I'll do what I say I do whenever the first sentence is true – I'll act according to the second proposition ("Q") and make it true as well.</p>
<p>Now that you know how silly the author of this article is and understand the first rule better, let's move on to the next rule, <em>avara kedavra</em>… I mean, <em>modus tollens</em>.</p>
<p>Here, <a target="_blank" href="https://en.wikipedia.org/wiki/Modus_tollens">Wikipedia</a> "helps" us once again with a beautiful, wordy definition:</p>
<blockquote>
<p>In propositional logic, <strong>modus tollens</strong> (/ˈmoʊdəs ˈtɒlɛnz/) (MT), also known as <strong>modus tollendo tollens</strong> (Latin for "method of removing by taking away") and denying the consequent, is a deductive argument form and a rule of inference.   </p>
<p><strong>Modus tollens</strong> takes the form of "If P, then Q. Not Q. Therefore, not P." It is an application of the general truth that if a statement is true, then so is its contrapositive. The form shows that inference from P implies Q to the negation of Q implies the negation of P is a valid argument.</p>
</blockquote>
<p>If you did not love going through 'denying the consequent' and 'so is its contrapositive', you are a heartless human being. </p>
<h3 id="heading-example-of-modus-tollens">Example of modus tollens</h3>
<p>Again, here comes Mighty Mouse to save the day and tell you to focus on <em>"If P, then Q. Not Q. Therefore, not P."</em> </p>
<p>What this rule is saying is actually a complement of what the first one says. If the second sentence is not true, then the first probably isn't, either. Thus, if I'm not making snow angels now, what would you make of it?</p>
<p>Since we have paired the idea of being in the US in the winter and making snow angels, at least some part of the first proposition can't be true: either I'm not in the US or it's not winter. </p>
<p>Anyways, since, for the first proposition to be true, these two parts have to be, we can assume that the first sentence is, somehow, false.</p>
<p>And just like that you realize you already know two propositional logic rules without even having to consult your dictionary! 😃</p>
<h2 id="heading-in-summary">In summary</h2>
<p>In this article, we saw that it is possible to know (and practice) logic without even studying it. We also learned that we already know more logic than we might imagine and that the author of this article loves playing in the snow. </p>
<p>As a bonus, we practiced two rules of propositional logic, whose fancy names might scare you from even looking at them: <em>modus ponens</em> and <em>modus tollens</em>.</p>
<p>There are others, though. If you liked the way they were explained here and would like to see more logical rules explained in a form you will definitely understand – and possibly realize you already make use of – send your feedback to yours truly on <a target="_blank" href="https://twitter.com/Daniel__Rosa">Twitter</a>. I'd love to walk you through the other rules as well – and maybe share more of my silliness through examples.</p>
<p>Happy coding! 😉</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
