<?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[ Mozilla - 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[ Mozilla - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 22:38:37 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/mozilla/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ MDN Web Docs —  What It Is and How to Use It ]]>
                </title>
                <description>
                    <![CDATA[ MDN Web Docs (formerly known as the Mozilla Developer Network or MDN) is a free resource for in-depth documentation on web standards such as HTML5, CSS, JavaScript, and much more. MDN's mission is simple: provide developers with the information they... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-mozilla-developer-network-what-it-is-and-how-to-use-it/</link>
                <guid isPermaLink="false">66c361dc0cede4e9b1329ce4</guid>
                
                    <category>
                        <![CDATA[ Mozilla ]]>
                    </category>
                
                    <category>
                        <![CDATA[ toothbrush ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 01 Feb 2020 00:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9d35740569d1a4ca3681.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>MDN Web Docs (formerly known as the Mozilla Developer Network or MDN) is a free resource for in-depth documentation on web standards such as HTML5, CSS, JavaScript, and much more.</p>
<blockquote>
<p>MDN's mission is simple: provide developers with the information they need to easily build projects on the <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web">open Web</a>. If it's an open technology exposed to the Web, we want to document it.  </p>
<p>– <a target="_blank" href="https://developer.mozilla.org/en-US/docs/MDN/About#Our_mission">MDN Web Docs mission statement</a></p>
</blockquote>
<p>A community of developers and other contributors keep the MDN Web Docs up-to-date. The entire site is a wiki, meaning anyone can add to or edit the growing collection of documentation and tutorials.</p>
<p>But you don't need to be a professional developer to contribute to MDN Web Docs! Like many other open source projects, there are a lot of ways you can help.</p>
<p>If you're interested in contributing to MDN Web Docs, check out their <a target="_blank" href="https://developer.mozilla.org/en-US/docs/MDN/Getting_started">Getting Started</a> page.</p>
<p>Here are some quick links to useful resources:</p>
<ul>
<li><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTML">HTML</a>, <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS">CSS</a>, <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a></li>
<li><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/API">Web APIs</a></li>
<li><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/Guide/Graphics">Graphics</a></li>
<li><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/MathML">MathML</a></li>
<li><a target="_blank" href="https://developer.mozilla.org/en-US/docs/WebAssembly">Web Assembly</a></li>
</ul>
<h2 id="heading-how-to-use-mdn-web-docs">How to Use MDN Web Docs</h2>
<p>MDN have built a reputation for having some of the best documentation for common web technologies. If you've ever been asked, "Have you checked the docs?" chances they're referring to MDN Web Docs.</p>
<p>Say you're working on a project and you want to use JavaScript's <code>map()</code> method, but you forgot the exact syntax.</p>
<p>All you need to do is pull up the page for <code>[map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)</code> and scroll down to the <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Syntax">Syntax</a> section.</p>
<p>There you'll get a quick overview of the syntax:</p>
<pre><code class="lang-js"><span class="hljs-keyword">let</span> new_array = arr.map(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">callback</span>(<span class="hljs-params"> currentValue[, index[, array]]</span>) </span>{
    <span class="hljs-comment">// return element for new_array</span>
}[, thisArg])
</code></pre>
<p>And a list of arguments that the method accepts, along with a short description of each.</p>
<p>If you want to see some basic examples and common use cases, scroll down a bit more to the <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Examples">Examples</a> section. There's a good chance that you'll find a snippet that you can use in your own project.</p>
<p>Also, if you ever find yourself having to support older browsers, most if not all the JavaScript documentation includes a <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map#Polyfill">Polyfill</a> section.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I started my open source journey after being demotivated for two years ]]>
                </title>
                <description>
                    <![CDATA[ By Hemakshi Sachdev Contributing to open source is very difficult. The people who do are experts with years of experience and we are just beginners — it’s not meant for us. Those were the exact words of my friends when I first asked them about what... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-started-my-open-source-journey-after-being-demotivated-for-two-years-db4ebc6ecb84/</link>
                <guid isPermaLink="false">66c34e19f41767c3c96baccf</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Mozilla ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 02 May 2019 00:00:53 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*goprda8-nuOX0ezK" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Hemakshi Sachdev</p>
<blockquote>
<p>Contributing to open source is very difficult. The people who do are experts with years of experience and we are just beginners — it’s not meant for us.</p>
</blockquote>
<p>Those were the exact words of my friends when I first asked them about what open source and Google Summer of Code were and how we could contribute to them. The inferiority complex inside me (or I should say the superiority I gave to them for being a little more into coding than I was) made me believe their words for two long years. So I had totally abandoned the thought of ever contributing to open source.</p>
<p>But today, here I am with 12 PRs submitted successfully and 3 under review to organisations like Mozilla, freeCodeCamp and Gatsbyjs. And guess what? I’m still in college and have almost zero experience working in any organisation or company!</p>
<p>So, if you are someone who thinks open source is not meant for you just like I used to, then just STOP!</p>
<p>How did it all start?</p>
<h3 id="heading-a-little-background-about-me">A Little Background About Me ??</h3>
<p>My coding journey started three years back when I learnt how to code in the C Programming Language. Since then, I have learnt C++, Algorithms &amp; Data Structures, and solved hundreds of algorithmic and logical problems on multiple sites like CodeChef, SPOJ, HackerRank &amp; Codeforces.</p>
<p>Later, I moved on to learn web development from <a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp</a>. I liked its curriculum and most importantly their projects. But the best thing was their free and open community who were always ready to help you out. A lot of people helped me clear my doubts on the forum or the Gitter chatroom and the responses were always encouraging.</p>
<p>I literally felt that I owed the community and always kept looking for people to whom I could provide some help. To be honest, it always felt great whenever I helped someone with their questions and problems on the freeCodeCamp chat room. After a year, the thought of contributing to open source again came in my mind. I discussed my wish to contribute with those same friends, but all I got were those same words as before. I let that thought go away for the second time.</p>
<h3 id="heading-that-little-spark-of-self-belief-amp-courage">That Little Spark Of Self-Belief &amp; Courage?</h3>
<p>After successfully completing my internship and securing a job, I was totally free in my senior year of my undergrad. The thought of Google Summer of Code again stumbled into my mind. As it was probably my last chance of getting into GSoC, and I didn’t want to have any regrets after leaving college and before getting into the real world, I finally said this to myself:</p>
<blockquote>
<p>Let’s just give it a shot. Worst comes to worst I might fail but at least I will know that I tried! I do not want to let go of an opportunity just because one person said to me that I can’t do it!</p>
</blockquote>
<p>I googled everything about open source, what organisations to start with, how to find something to contribute to, every single thing!</p>
<p>Finally, I decided to go with Mozilla as it was the most beginner-friendly organisation. As Mozilla is a very large organisation, it has quite a lot of products under it, and again that big question came up: which product should I go with?</p>
<p>With the help of their <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction">introduction page</a> and learning about my own interests, I went with Firefox DevTools. Why DevTools? Because for me, there’s nothing better than helping other people learn, improve and grow. And the fact that something developed or implemented by me would help others learn was the best feeling I could ever think of.</p>
<h3 id="heading-the-real-struggle-begins">The Real Struggle Begins ?</h3>
<p>I’ll be honest here, before starting out everything looked intimidating. But once it’s all done you start finding that everything is a piece of cake. The first and most important step is getting and building code. Almost all organisations have a very detailed step-by-step guide for this. I struggled a lot in getting the code. Firefox’s codebase is H U G E! And thanks to the slow internet connection which made it worse. After three days of struggle, I was finally able to get the code and was able to build Firefox locally by carefully following the steps as mentioned in the docs.</p>
<p>Now that I had got it all working, the next step was to actually get something to work on! I went through all the <code>[good-first-bugs](https://bugs.firefox-dev.tools/?easy&amp;tool=all)</code> and commented on the ones I found interesting by introducing myself and showing interest in solving the issue. I got myself assigned to one of them.</p>
<p>Every mentor knows that we are new to open source. Finding that one place where we have to make changes is like finding a needle in a haystack. So they guide us to the code files and sometimes even the line numbers where we have to analyse the issue and make the requested changes. And even if they don’t, you have every right to ask them and they will help you happily.</p>
<p>For the next 10 days, all I did was study the code, debug, build, run and analyse…but, I couldn't get to any solution or conclusions! ? Finally, I decided to go with all my analysis and results and ask my mentor for help. Sometimes you have to ask for help because without doing so you cannot move forward! The whole code is new to you and no one is expected to understand it in a couple of days.</p>
<p>My mentor realized that it was not a <code>good-first-bugs</code> kind of issue and solved it himself. To be honest, that was a little depressing. But my mentor gave me another issue to solve which was comparatively quite easy and I finally did it after a day or two of analysis! Yes, I was finally able to submit my first patch (PR)! But getting it landed was really not that easy, so many minor mistakes and ESLint errors that were literally frustrating. Finally, after 3 to 4 rounds of reviews, my patch landed! Yay! ?</p>
<p>After submitting my first patch, I quickly started looking for more issues to solve. I kept solving a few more <code>good-first-bugs</code> but soon I realized that I want to solve issues that involved more than just making minor changes and were something more complex. I was also still not sure of my interests and so wanted to explore a few more organisations. So I solved a few issues on Mozilla’s Taskclusters, freeCodeCamp and Gatsbyjs as well. But very soon I realised that Firefox DevTools was the one I enjoyed working with the most ? and continued contributing to it.</p>
<p>This is how the process of contributing to open source looks like:</p>
<ol>
<li>Get an issue to work on.</li>
<li>Study the codebase and understand what needs to be done.</li>
<li>Code. Ask questions. Commit.</li>
<li>Submit a patch.</li>
<li>Resolve review comments and make the patch land.</li>
<li>Go back to step 1.</li>
</ol>
<h3 id="heading-final-notes">Final Notes</h3>
<p>To all the people who are reading this, I hope I was able to motivate you and make you realize that you are fit to contribute to open source — because the truth is you are! In fact, it’s not even necessary to know a particular programming language, as you can always help with the documentation or you can report detailed bugs and can always learn things along the way.</p>
<p>Yes, I know that we might not be making any big contributions to the codebase or not starting any big open source projects, but these little contributions are also as equally important as the larger ones. And it’s rightly said that <em>little drops of water make a mighty ocean</em>. You never know when your one little contribution may turn out to be so helpful for others and one day you might also end up with this:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Bgl9xDj3ta2X2NQEmDYCuyDiopyE4AgMVo18" alt="Image" width="641" height="641" loading="lazy"></p>
<p>Yes! I got recognized by Firefox DevTools for one of my contributions.✨ Here’s the <a target="_blank" href="https://twitter.com/FirefoxDevTools/status/1116361470500057088">tweet</a>.</p>
<p>So to all the open source beginners or the ones wanting to start with open source, I just wanna say this: forget what others think and believe and only remember what you want to do. You are capable, and that’s all that matters in the end. Just take that first step fearlessly and the world will guide you further — or I should say the mentors will guide you further. ?</p>
<p>Lastly, I would love to thank all my mentors and open source maintainers who helped in my journey and will do so in the future. A special thanks to <a target="_blank" href="https://github.com/janodvarko">Jan Honza Odvarko</a> and <a target="_blank" href="https://github.com/nchevobbe">Nicolas Chevobbe</a> for helping me, answering and clarifying all my doubts and questions, and showing so much patience while mentoring me. <strong>Thank you so much! ❤️</strong></p>
<p>Anyone who needs help with starting out with either open source or programming, don’t hesitate and drop me a mail at sachdev.hemakshi[at]gmail[dot]com. I love getting emails ?.</p>
<p>Thank you to the freeCodeCamp team for publishing this article. ?</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How Mozilla takes care of Firefox’s health — and what you can learn from it ]]>
                </title>
                <description>
                    <![CDATA[ By Syeda Aimen Batool Currently, I’m working on a Firefox health dashboard as a part of my Outreachy internship with Mozilla. And here are the major goals we intend to achieve during the internship. Add new features to the graphical presentation of ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/here-is-how-we-take-care-of-firefox-health-at-mozilla-8f7f9b085955/</link>
                <guid isPermaLink="false">66c34c58a7aea9fc97bdfb48</guid>
                
                    <category>
                        <![CDATA[ Firefox ]]>
                    </category>
                
                    <category>
                        <![CDATA[ internships ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Mozilla ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 24 Jan 2019 21:55:03 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*3orZX4NPEQbwNxUgz7Wm4Q.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Syeda Aimen Batool</p>
<p>Currently, I’m working on a <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard">Firefox health dashboard</a> as a part of my <a target="_blank" href="https://medium.freecodecamp.org/how-i-got-a-remote-paid-internship-at-mozilla-through-outreachy-60958fe9264a">Outreachy internship with Mozilla</a>. And here are the <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard/projects/2">major goals</a> we intend to achieve during the internship.</p>
<ul>
<li>Add new features to the graphical presentation of performance data</li>
<li>Transfer existing JS Team (Firefox Performance) dashboard to the health dashboard</li>
<li>Enhance existing information on charts and fix some bugs</li>
</ul>
<p>The main purpose of this post is to explain the project to someone who is not in the community and not familiar with the stuff we are doing at Mozilla. The intention is to help newbies and other contributors to understand the dashboard so they can contribute to this opensource project with more sense of what is going on inside.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Amkrf0TIX5AYgBBaD9bSbFGQg0eL7mVGCdrr" alt="Image" width="800" height="502" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/photos/0-SGyQFiDRI?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="_blank" title=""&gt;rawpixel on &lt;a href="https://unsplash.com/search/photos/health?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-what-is-firefox-health-dashboard">What is Firefox Health Dashboard?</h3>
<p>Firefox health is a project to create dashboards for project managers and engineers. It displays Firefox matrics and insights to help meet release criteria. It allows including data/metrics from Mozilla’s issue tracker (Bugzilla), performance data (Perfherder), product metrics (Telemetry) and few more sources. All data is displayed in the form of graphs using an open source graphing library ChartJS to display insights against different dates and platforms.</p>
<p>It was previously known as Platform Health. It was <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard/issues/29">refactored in Jan 2018</a> as Firefox Health Dashboard. One of the major changes in this refactorization was to separate backend from the front-end. This improved code maintainability.</p>
<h4 id="heading-technologies">Technologies:</h4>
<p>The <a target="_blank" href="https://github.com/mozilla/firefox-health-backend">backend</a> is written using NodeJS and Koa. The <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard">front-end</a> is built using ReactJS along with an open source graphing library ChartJS. Some of the data is coming from different hosts through different libraries. For example, perf-google is querying Mozilla’s Perfherder for performance data. Information about the reported bug is coming from Bugzilla. So if you are planning to contribute sometime in the future, you need to have an understanding of the technologies mentioned above.</p>
<p>This dashboard caters to performance of different Firefox versions and devices. But today we are going to talk about <a target="_blank" href="https://health.graphics/android">Firefox android</a> and how engineers at Mozilla take care of its performance.</p>
<h3 id="heading-datametrics-for-firefox-android">Data/metrics for Firefox android</h3>
<p>Currently, data for Firefox android is coming from different sources. We display the data in the form of graphs for better understanding and analysis. You can see all insights to <a target="_blank" href="https://health.graphics/android">Firefox android on the health dashboard</a>. Here are some sources and information about Firefox android to help engineers improve the performance of the browser.</p>
<h4 id="heading-bugzilla">Bugzilla:</h4>
<p>Developed by Mozilla, Bugzilla is a free, open-source tool for tracking bugs, issues and change requests in large complex applications. It is used by thousands of organizations to keep track of their product performance. We are using it in the Health Dashboard to keep an eye on the bugs popping up in Firefox Android.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/dKEOkAJGbvDDvS3M-pUPMS8GvHtasek7oJ1D" alt="Image" width="800" height="350" loading="lazy">
<em>A graph displaying bugs from Bugzilla</em></p>
<p>As mentioned above, we are using ChartJS to display data. Here we have a graph representing the number of bugs reported on different dates for Firefox Android at Bugzilla. Bugs with P1 label have the highest priority. They need to be fixed as soon as possible. Then comes P2 bugs with the 2nd highest priority. P3 level bugs are with lowest priority and engineers can fix them whenever they have time. This helps developers and product managers to review bugs of different priorities more effectively and solve them according to the priority.</p>
<h4 id="heading-nimbledroid">NimbleDroid:</h4>
<p>We are using a third party service called NimbleDroid to get some data insights after running the tests against Firefox Android. NimbleDroid is a functional performance testing service for android and IOS devices.</p>
<blockquote>
<p>Monitor every critical user flow for every build of your mobile app. Pinpoint issues that degrade user experience early in the dev cycle. Seamlessly integrate with your CI workflow. — Official Site</p>
</blockquote>
<p><img src="https://cdn-media-1.freecodecamp.org/images/QtqHkLwQwTP0szF2tkiNZyvA-HWLQ1Sl7jkP" alt="Image" width="800" height="471" loading="lazy">
<em>Showing data insights given by Nimbledroid</em></p>
<h4 id="heading-telemetry">Telemetry:</h4>
<p>Telemetry is a tool that has the capability to provide performance and usage information to Mozilla to help engineers and decision makers to measure the performance of Firefox in the real world. It has the ability to collect performance, hardware, usage, customization, and other non-personal information from the user of Firefox and send it to Mozilla on daily bases to help engineers improve the quality and efficiency of the browser.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/xshtOGlnr9LFHhteDt7yxJFkOif5bD80akVO" alt="Image" width="800" height="305" loading="lazy">
<em>Telemetry graph view</em></p>
<p>For an Android device, the browser measures the time taken by it to load a content page on a device and reports it back through Telemetry. We then display it in graphical form. For instance, the screenshot says 75% of the users reported a total content page load time of 4.9 seconds on Sep 19, 2018. And this data is gathered from different devices from different users. This helps the engineers to keep an eye on loading time of the browser to improve its speed and make it more efficient.</p>
<h4 id="heading-perfherder">Perfherder:</h4>
<p>Perfherder is a system to help engineers visualize and analyze the performance data produced by the many automated tests run against Mozilla products such as Firefox or Firefox Android. Perfherder is a part of Treeherder project. It is another dashboard for check-ins to Mozilla’s projects. The main goal of this tool is to make sure that the performance of the Firefox gets better over the time. It assists developers in the understanding of their changes and potential fixes by reporting regressions.</p>
<p>In the coming articles, we will talk about Firefox Quantum and JS team dashboard. We will see how these tools are working to improve the performance of the Firefox browser.</p>
<h4 id="heading-contribution-guide">Contribution guide:</h4>
<p>If you care about the health of Firefox or interested in contributing to the project, then here is the way.</p>
<ul>
<li>Clone and set up the <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard">project</a> on your local machine</li>
<li>Follow the <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard#firefox-health-dashboard">readme</a></li>
<li>And start with <a target="_blank" href="https://github.com/mozilla-frontend-infra/firefox-health-dashboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">good-first-issues</a> if you are finding it overwhelming to start</li>
</ul>
<p>Stay tuned to know more about the awesomeness we are doing at Mozilla.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to find your first open source bug to fix ]]>
                </title>
                <description>
                    <![CDATA[ By Shubheksha Jalan When you’re new to open source, you’ll find yourself asking: I know some [programming language]. I want to get some practice, while helping out. How do I find an open source project where I can contribute? Hm… I don’t know where ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/finding-your-first-open-source-project-or-bug-to-work-on-1712f651e5ba/</link>
                <guid isPermaLink="false">66d460f947a8245f78752ac5</guid>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Mozilla ]]>
                    </category>
                
                    <category>
                        <![CDATA[ open source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 21 Sep 2016 19:52:17 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*qaM9LjB9PY5pwj9RDtP93g.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Shubheksha Jalan</p>
<p>When you’re new to open source, you’ll find yourself asking:</p>
<blockquote>
<p>I know some [programming language]. I want to get some practice, while helping out. How do I find an open source project where I can contribute? Hm… I don’t know where to start. This seems complicated.</p>
</blockquote>
<p>I’ve asked this same question over and over to a lot of developers. And their answers can be categorized as one of three approaches:</p>
<h4 id="heading-approach-1-contribute-to-something-you-love">Approach #1: Contribute to something you love</h4>
<p>The most common answer I get is to contribute to something you already use everyday. Something that interests you.</p>
<h4 id="heading-approach-2-specifically-seek-out-beginner-friendly-projects">Approach #2: Specifically seek out beginner-friendly projects</h4>
<p>Here are a few characteristics of beginner-friendly open source projects:</p>
<ul>
<li>Well-defined, detailed contribution guidelines that include setting up their project locally, their Git workflow, and their coding style guidelines</li>
<li>Proper classification of issues using labels like “good-first-bug”, “beginner”, or “first-timers-only”</li>
<li>Activity on those beginner issues, with previous questions answered quickly</li>
</ul>
<h4 id="heading-approach-3-stop-searching-for-projects-and-start-searching-for-bugs">Approach #3: Stop searching for projects and start searching for bugs.</h4>
<p>This is the approach I chose, and the focus of this article.</p>
<p>After trying approaches #1 and #2, I stopped thinking in terms of projects. I focused instead on finding bugs that I thought I could fix.</p>
<p>Every bug is associated with a project, so when finding bugs, you’ll inevitably discover projects, anyway.</p>
<p>This approach works if you want to get started immediately. I can’t guarantee that it will inspire you to stick with a project after your first few contributions. Maybe you won’t be interested after all. But maybe you’ll dive into the project and discover that you really like it.</p>
<p>Either way, once you’ve fixed a few bugs, you’ll have the confidence to venture out there and explore more on your own.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/T569nvzr6doVKxOKYuifqlkD8eGCAGrgtRwh" alt="Image" width="723" height="540" loading="lazy"></p>
<h3 id="heading-so-how-do-you-find-the-bugs-to-begin-with">So how do you find the bugs to begin with?</h3>
<p>Deciding which bugs to work on isn’t easy. There are a ton of projects out there, and each has plenty of open issues. But you need to start somewhere.</p>
<p>So I’ll share all the resources and tips I’ve used to find bugs. First I’ll focus on finding good starter bugs in general in various bug trackers and code hosting sites. Then I’ll share some resources specific to the Mozilla ecosystem, where I’ve been <a target="_blank" href="https://www.freecodecamp.org/news/a-beginners-very-bumpy-journey-through-the-world-of-open-source-4d108d540b39">contributing regularly</a>.</p>
<h4 id="heading-finding-good-bugs-for-beginners">Finding good bugs for beginners</h4>
<p>A good place to start your bug hunt is <a target="_blank" href="http://up-for-grabs.net/#/">Up For Grabs</a>. The whole purpose of the site is to help new contributors get their feet wet by maintaining a list of projects with beginner-friendly issues. It’s a great place to get started if you feel completely lost.</p>
<p>GitHub has a <a target="_blank" href="https://help.github.com/articles/searching-github/">powerful search engine</a> where you can customize your search in a variety of ways. The easiest way to search is <a target="_blank" href="https://help.github.com/articles/searching-issues/">by issue label</a>.</p>
<p>A lot of open source projects label their issues to conveniently track them. A lot of projects use labels like <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22beginner%22&amp;type=Issues&amp;ref=searchresults">beginner</a>, <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22easy%22&amp;type=Issues&amp;ref=searchresults">easy</a>, <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22starter%22&amp;type=Issues&amp;ref=searchresults">starter</a>, <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22good+first+bug%22&amp;type=Issues&amp;ref=searchresults">good first bug</a>, <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22low+hanging+fruit%22&amp;type=Issues&amp;ref=searchresults">low hanging fruit</a>, <a target="_blank" href="https://github.com/search?utf8=✓&amp;q=is%3Aissue+is%3Aopen+label%3A%22bitesize%22+&amp;type=Issues&amp;ref=searchresults">bitesize</a>, <a target="_blank" href="https://github.com/search?utf8=✓&amp;q=is%3Aissue+is%3Aopen+label%3A%22trivial%22+&amp;type=Issues&amp;ref=searchresults">trivial</a>, <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22easy+fix%22+&amp;type=Issues&amp;ref=searchresults">easy fix</a>, and <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22new+contributor%22+&amp;type=Issues&amp;ref=searchresults">new contributor</a>.</p>
<p>You can further narrow down your search based on the programming language you’re comfortable with, by adding <em>language: name</em> to your search query. For example, here are all issues <a target="_blank" href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+is%3Aopen+label%3A%22beginner%22+language%3Ajavascript">labelled as “beginner” in JavaScript</a>.</p>
<p><a target="_blank" href="http://issuehub.io">Issuehub.io</a> is a tool for searching issues by label and language, in case you find it tedious to remember the GitHub search syntax.</p>
<p>If you’re completely new to open source, you should definitely start with <a target="_blank" href="http://www.firsttimersonly.com/">First Timers Only</a>. It’s an initiative by <a target="_blank" href="https://kentcdodds.com/">Kent C. Dodds</a>, based on his own <a target="_blank" href="https://medium.com/@kentcdodds/first-timers-only-78281ea47455">First Timers Only</a> post and <a target="_blank" href="https://www.hanselman.com/">Scott Hanselman</a>’s <a target="_blank" href="http://www.hanselman.com/blog/BringKindnessBackToOpenSource.aspx">Bring Kindness Back to Open Source</a>. The bugs are labelled <a target="_blank" href="https://github.com/search?q=label%3Afirst-timers-only&amp;state=open&amp;type=Issues">first-timers-only</a>.</p>
<p>You might also find this <a target="_blank" href="https://twitter.com/first_tmrs_only">Twitter bot</a> helpful. It tweets out all issues labelled as “first-timers-only”.</p>
<p>Another great way to find issues is <a target="_blank" href="https://twitter.com/yourfirstpr">YourFirstPR</a> by Charlotte Spencer. They showcase starter issues on GitHub that can be easily tackled by new contributors.</p>
<p><a target="_blank" href="https://github.com/MunGell/awesome-for-beginners">Awesome-for-beginners</a> is a GitHub repo that amasses projects with good bugs for new contributors, and applies labels to describe them.</p>
<p><a target="_blank" href="https://openhatch.org/">Openhatch</a> is a non-profit organization that helps lower barriers of entry into open source. You can find bugs and projects here, as well.</p>
<h3 id="heading-the-mozilla-contributor-ecosystem">The Mozilla Contributor Ecosystem</h3>
<p>A lot of Mozilla’s projects are hosted on <a target="_blank" href="https://github.com/mozilla/">GitHub</a>. For these projects, everything I listed above is still useful. They use the label “good first bug” for starter issues.</p>
<p>But Mozilla also uses its own tool called <a target="_blank" href="https://bugzilla.mozilla.org/">Bugzilla</a> as its primary issue tracker. They host some of their issues <a target="_blank" href="https://hg.mozilla.org/">here</a>, and use <a target="_blank" href="https://mozilla-version-control-tools.readthedocs.io/">Mercurial for version control instead of Git</a>.</p>
<p>Firefox is one of the projects that uses Bugzilla and Mercurial. It’s a bit scary, to be honest. It’s a lot to take in. So I recommend this <a target="_blank" href="http://blog.johnath.com/2010/02/04/bugzilla-for-humans/">excellent blog post and video</a>, which does a great job at demystifying these tools.</p>
<p>Over the years, Mozillians have tried to make it as simple as possible to contribute to Mozilla. Here are their efforts:</p>
<ul>
<li><a target="_blank" href="https://bugzil.la/sw:%22[good%20first%20bug]%22&amp;limit=0">Good First Bugs</a>: These are bugs that developers have identified as a good introduction to the project. They are often (but not always) relatively easy to solve</li>
<li><a target="_blank" href="https://bugzilla.mozilla.org/buglist.cgi?quicksearch=mentor%3A%40">Mentored Bugs</a>: These bugs have a mentor assigned who will be there on IRC to help you when you get stuck while working on fix. They often review your patch and give feedback. If you don’t know where to begin with contributing to Mozilla projects, this is the best place to start. You’ll have someone who can answer your questions when you feel you’ve run up against a wall. All the mentors I’ve worked with have been super responsive, supportive, and helpful throughout.</li>
<li><a target="_blank" href="http://www.joshmatthews.net/bugsahoy/">Bugs Ahoy</a>: This is a site dedicated to finding bugs on Bugzilla. It has a friendly UI, where you can filter by language.</li>
<li><a target="_blank" href="http://firefox-dev.tools/">Firefox DevTools</a>: This site is dedicated to bugs filed for the developer tools in the Firefox browser. You can sort based on the DevTools components you want to work on.</li>
<li><a target="_blank" href="http://whatcanidoformozilla.org/">What Can I Do For Mozilla</a> — This is a great way to explore and figure out what you can work on by answering a bunch of questions about your skill set and interests.</li>
<li><a target="_blank" href="https://twitter.com/StartMozilla">Start Mozilla</a>: This is a Twitter account that tweets about issues fit for contributors new to the Mozilla ecosystem.</li>
</ul>
<p>If you know of any other resources for finding good bugs for newbie contributors, please let me know in the comments. I will be more than happy to extend this list.</p>
<p><em>If you think this post was useful, please tap the “︎</em>❤” <em>to help to promote this piece to others.</em></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/U17yyZz83IpV7YtRNbylUoc2Ae87AdZ3TYZW" alt="Image" width="725" height="71" loading="lazy"></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
