<?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[ challenge - 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[ challenge - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 11 May 2026 16:02:48 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/challenge/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Solve freeCodeCamp's Record Collection Challenge ]]>
                </title>
                <description>
                    <![CDATA[ freeCodeCamp's JavaScript certification is filled with hundreds of interactive challenges. But one of the hardest ones to tackle for most beginners is the Record Collection. In this article, I will walk you through Record Collection and help you unde... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-solve-the-record-collection-challenge/</link>
                <guid isPermaLink="false">66b8d9a8ce55d3ba4d935995</guid>
                
                    <category>
                        <![CDATA[ challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Mon, 21 Mar 2022 18:14:42 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/03/fili-santillan-qp51FQhBnS0-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><a target="_blank" href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/">freeCodeCamp's JavaScript certification</a> is filled with hundreds of interactive challenges. But one of the hardest ones to tackle for most beginners is the <a target="_blank" href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection">Record Collection</a>.</p>
<p>In this article, I will walk you through <a target="_blank" href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection">Record Collection</a> and help you understand how all of the pieces of the challenge work. </p>
<h2 id="heading-how-to-understand-the-function-parameters">How to understand the function parameters</h2>
<p>Parameters are special types of variables that are passed into the function and act as placeholders for the real values. When the function is called, then we will use the real values which are known as arguments. </p>
<p> This is an example of <a target="_blank" href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection">Record Collection</a>'s function parameters.</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateRecords</span>(<span class="hljs-params">records, id, prop, value</span>)</span>
</code></pre>
<p>The <code>records</code> parameter represents an object literal. Here is the object literal from the challenge:</p>
<pre><code class="lang-js"><span class="hljs-keyword">const</span> recordCollection = {
  <span class="hljs-number">2548</span>: {
    <span class="hljs-attr">albumTitle</span>: <span class="hljs-string">'Slippery When Wet'</span>,
    <span class="hljs-attr">artist</span>: <span class="hljs-string">'Bon Jovi'</span>,
    <span class="hljs-attr">tracks</span>: [<span class="hljs-string">'Let It Rock'</span>, <span class="hljs-string">'You Give Love a Bad Name'</span>]
  },
  <span class="hljs-number">2468</span>: {
    <span class="hljs-attr">albumTitle</span>: <span class="hljs-string">'1999'</span>,
    <span class="hljs-attr">artist</span>: <span class="hljs-string">'Prince'</span>,
    <span class="hljs-attr">tracks</span>: [<span class="hljs-string">'1999'</span>, <span class="hljs-string">'Little Red Corvette'</span>]
  },
  <span class="hljs-number">1245</span>: {
    <span class="hljs-attr">artist</span>: <span class="hljs-string">'Robert Palmer'</span>,
    <span class="hljs-attr">tracks</span>: []
  },
  <span class="hljs-number">5439</span>: {
    <span class="hljs-attr">albumTitle</span>: <span class="hljs-string">'ABBA Gold'</span>
  }
};
</code></pre>
<p>The <code>id</code> parameter represents the objects nested inside our <code>recordCollection</code> object. This is an example for one of the ids. </p>
<pre><code class="lang-js">  <span class="hljs-number">2548</span>: {
    <span class="hljs-attr">albumTitle</span>: <span class="hljs-string">'Slippery When Wet'</span>,
    <span class="hljs-attr">artist</span>: <span class="hljs-string">'Bon Jovi'</span>,
    <span class="hljs-attr">tracks</span>: [<span class="hljs-string">'Let It Rock'</span>, <span class="hljs-string">'You Give Love a Bad Name'</span>]
  },
</code></pre>
<p>The <code>prop</code> parameter represents the property name, or key, inside the objects. <code>albumTitle</code>, <code>artist</code>, and <code>tracks</code> are all examples of properties inside the <code>id</code> objects. </p>
<p>The <code>value</code> parameter represents the value in the object's property. In the example below, <code>albumTitle</code> would be the property name, or key, while <code>ABBA Gold</code> would be the value.</p>
<pre><code class="lang-js">albumTitle: <span class="hljs-string">'ABBA Gold'</span>
</code></pre>
<p><code>records</code>, <code>id</code>, <code>prop</code> and <code>value</code> are the four parameters that we are going to use inside of the function. </p>
<h2 id="heading-how-to-tackle-the-rules-for-the-challenge">How to tackle the rules for the challenge</h2>
<p>The key to passing this challenge is to break down all four of these rules and tackle them one at a time. Here are the four rules we have to include in our function:</p>
<ul>
<li>If <code>prop</code> isn't <code>tracks</code> and <code>value</code> isn't an empty string, update or set that album's <code>prop</code> to <code>value</code>.</li>
<li>If <code>prop</code> is <code>tracks</code> but the album doesn't have a <code>tracks</code> property, create an empty array and add <code>value</code> to it.</li>
<li>If <code>prop</code> is <code>tracks</code> and <code>value</code> isn't an empty string, add <code>value</code> to the end of the album's existing <code>tracks</code> array.</li>
<li>If <code>value</code> is an empty string, delete the given <code>prop</code> property from the album.</li>
</ul>
<h3 id="heading-how-to-tackle-the-first-rule">How to tackle the first rule</h3>
<p>Here is the first rule:</p>
<ul>
<li>If <code>prop</code> isn't <code>tracks</code> and <code>value</code> isn't an empty string, update or set that album's <code>prop</code> to <code>value</code>.</li>
</ul>
<p>The first part of that rule can be seen as an <code>if</code> statement. In our function, we can start to write out the basic structure for an <code>if</code> statement. </p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateRecords</span>(<span class="hljs-params">records, id, prop, value</span>) </span>{
  <span class="hljs-keyword">if</span> (condition is <span class="hljs-literal">true</span>) {
    <span class="hljs-comment">// do some code</span>
  }
  <span class="hljs-keyword">return</span> records;
}
</code></pre>
<p>Now we need to figure out what to write for our condition here:</p>
<pre><code class="lang-js"><span class="hljs-keyword">if</span> (condition is <span class="hljs-literal">true</span>)
</code></pre>
<p>The first part of the rule says if <code>prop</code> isn't <code>tracks</code>. We can rephrase that as if <code>prop</code> does not equal <code>tracks</code>. </p>
<p>Remember that the inequality operator <code>!==</code> can be used to check if two operands are not equal to each other.</p>
<p>But we can't use <code>tracks</code> like this in our code because we will get an error message.</p>
<pre><code class="lang-js"><span class="hljs-keyword">if</span>(prop !== tracks)
</code></pre>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/03/Screen-Shot-2022-03-20-at-12.51.17-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>To get rid of that error message, <code>tracks</code> needs to be a string.</p>
<pre><code class="lang-js"><span class="hljs-keyword">if</span>(prop !== <span class="hljs-string">'tracks'</span>)
</code></pre>
<p>But we are not finished with our condition because we still have to tackle this part:</p>
<ul>
<li>and <code>value</code> isn't an empty string</li>
</ul>
<p>We can use the inequality operator <code>!==</code> again to say <code>value !== ""</code>. Then we can replace the word <code>and</code> by using the AND <code>&amp;&amp;</code> operator.</p>
<p>This is what the first condition looks like so far:</p>
<pre><code class="lang-js">  <span class="hljs-keyword">if</span> (prop !== <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    <span class="hljs-comment">// do some code here</span>
  }
</code></pre>
<p>Now that we have figured out our condition, we need to figure out what goes inside of it.  Here is the second part of that rule:</p>
<ul>
<li>update or set that album's <code>prop</code> to <code>value</code></li>
</ul>
<p>We first need to reference the entire object literal which is <code>records</code>. Then we need to access the <code>id</code> which represents the albums. </p>
<p>Finally, we need to access that <code>prop</code>. We will be using bracket notation to accomplish this.</p>
<pre><code class="lang-js">records[id][prop]
</code></pre>
<p>The final step is to assign value to the album's <code>prop</code>. We are going to use the assignment operator <code>=</code> to do that.</p>
<pre><code class="lang-js">records[id][prop] = value
</code></pre>
<p>This is what the entire first condition looks like:</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateRecords</span>(<span class="hljs-params">records, id, prop, value</span>) </span>{
  <span class="hljs-keyword">if</span> (prop !== <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    records[id][prop] = value
  }
  <span class="hljs-keyword">return</span> records;
}
</code></pre>
<h3 id="heading-how-to-tackle-the-second-rule">How to tackle the second rule</h3>
<p>Here is the second rule:</p>
<ul>
<li>If <code>prop</code> is <code>tracks</code> but the album doesn't have a <code>tracks</code> property, create an empty array and add <code>value</code> to it.</li>
</ul>
<p>Let's take a look at this first part here.</p>
<ul>
<li>If <code>prop</code> is <code>tracks</code></li>
</ul>
<p>We can replace the word "is" with the equality operator, because we're checking if <code>prop</code> is equal to <code>tracks</code>. </p>
<pre><code class="lang-js"><span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span>)
</code></pre>
<p>Here is the second part of the condition. </p>
<ul>
<li>but the album doesn't have a <code>tracks</code> property</li>
</ul>
<p>We need to check if the album has a <code>tracks</code> property and we can do that by using the <code>hasOwnProperty()</code> method. </p>
<p>This is the basic syntax:</p>
<pre><code class="lang-js">object.hasOwnProperty(prop)
</code></pre>
<p>The object in this case would be <code>records[id]</code> because that represents the album and the property would be <code>"tracks"</code>. </p>
<pre><code class="lang-js">records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>)
</code></pre>
<p>But we need to check if the album does not have the <code>tracks</code> property. Since the <code>hasOwnProperty()</code> method returns a boolean (true or false) then we can write this:</p>
<pre><code class="lang-js">records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>) === <span class="hljs-literal">false</span>
</code></pre>
<p>We can also rewrite that statement using the <code>NOT</code> operator <code>!</code> like this:</p>
<pre><code class="lang-js">!records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>)
</code></pre>
<p>By using the <code>NOT</code> operator <code>!</code> here, we are basically saying if something is not true.</p>
<p>This is what our <code>if</code> statement looks like so far:</p>
<pre><code class="lang-js"><span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>) === <span class="hljs-literal">false</span>) {
    <span class="hljs-comment">//do some code here</span>
  }
</code></pre>
<p>Here is the second part of the rule:</p>
<ul>
<li>create an empty array and add <code>value</code> to it</li>
</ul>
<p>We know that to create an array we can use brackets <code>[]</code>. Then we can add <code>value</code> inside of it like this:</p>
<pre><code class="lang-js">[value]
</code></pre>
<p>The final part is to assign that array to the album's property like this:</p>
<pre><code class="lang-js"> records[id][prop] = [value]
</code></pre>
<p>Here is what the entire second condition looks like:</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateRecords</span>(<span class="hljs-params">records, id, prop, value</span>) </span>{
  <span class="hljs-keyword">if</span> (prop !== <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    records[id][prop] = value
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>) === <span class="hljs-literal">false</span>) {
    records[id][prop] = [value]
  }
  <span class="hljs-keyword">return</span> records;
}
</code></pre>
<h3 id="heading-how-to-tackle-the-third-rule">How to tackle the third rule</h3>
<p>Here is the third rule:</p>
<ul>
<li>If <code>prop</code> is <code>tracks</code> and <code>value</code> isn't an empty string, add <code>value</code> to the end of the album's existing <code>tracks</code> array.</li>
</ul>
<p>Let's take a look at the condition here:</p>
<ul>
<li>If <code>prop</code> is <code>tracks</code> and <code>value</code> isn't an empty string</li>
</ul>
<p>We know from out previous code that <code>prop</code> is <code>tracks</code> can be rewritten as <code>prop === "tracks"</code>.  </p>
<p>We can also rewrite <code>value</code> isn't an empty string as <code>value !== ""</code>.</p>
<p>This is what our third condition looks like so far.</p>
<pre><code class="lang-js"><span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    <span class="hljs-comment">// do some code </span>
  }
</code></pre>
<p>Here is the second part of the rule:</p>
<ul>
<li>add <code>value</code> to the end of the album's existing <code>tracks</code> array.</li>
</ul>
<p>We can use the <code>push</code> array method which adds elements to the end of an array.</p>
<pre><code class="lang-js">records[id][prop].push(value)
</code></pre>
<p>This is what our entire third condition looks like:</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateRecords</span>(<span class="hljs-params">records, id, prop, value</span>) </span>{
  <span class="hljs-keyword">if</span> (prop !== <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    records[id][prop] = value
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>) === <span class="hljs-literal">false</span>) {
    records[id][prop] = [value]
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    records[id][prop].push(value)
  }
  <span class="hljs-keyword">return</span> records;
}
</code></pre>
<h3 id="heading-how-to-tackle-the-fourth-rule">How to tackle the fourth rule</h3>
<p>Here is the fourth and final rule.</p>
<ul>
<li>If <code>value</code> is an empty string, delete the given <code>prop</code> property from the album.</li>
</ul>
<p>Let's take a look at the first part here:</p>
<ul>
<li>If <code>value</code> is an empty string,</li>
</ul>
<p>We know from our earlier code that we can translate <code>value</code> is an empty string to <code>value === ""</code>.</p>
<p>Here is what the <code>if</code> statement looks like so far:</p>
<pre><code class="lang-js"><span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (value === <span class="hljs-string">""</span>){
    <span class="hljs-comment">// do some code</span>
  }
</code></pre>
<p>Here is the second part of the rule:</p>
<ul>
<li>delete the given <code>prop</code> property from the album.</li>
</ul>
<p>If we need to delete a property from an object, then we can use JavaScript's <code>delete</code> operator. </p>
<p>Here is how to delete the prop from the album:</p>
<pre><code class="lang-js"><span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (value === <span class="hljs-string">""</span>) {
    <span class="hljs-keyword">delete</span> records[id][prop]
  }
</code></pre>
<p>This is what the entire function looks like:</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">updateRecords</span>(<span class="hljs-params">records, id, prop, value</span>) </span>{
  <span class="hljs-keyword">if</span> (prop !== <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    records[id][prop] = value
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; records[id].hasOwnProperty(<span class="hljs-string">'tracks'</span>) === <span class="hljs-literal">false</span>) {
    records[id][prop] = [value]
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (prop === <span class="hljs-string">'tracks'</span> &amp;&amp; value !== <span class="hljs-string">""</span>) {
    records[id][prop].push(value)
  } <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> (value === <span class="hljs-string">""</span>) {
    <span class="hljs-keyword">delete</span> records[id][prop]
  }
  <span class="hljs-keyword">return</span> records;
}
</code></pre>
<h2 id="heading-conclusion">Conclusion</h2>
<p>I hope this walk through of <a target="_blank" href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection">Record Collection</a> helped you understand how to solve the challenge. We covered a lot of different methods and learned how to break down a problem into smaller pieces.</p>
<p>Best of luck on the rest of your JavaScript journey. </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ I Finished the Entire freeCodeCamp Curriculum in 1 Month (and Recorded Everything) ]]>
                </title>
                <description>
                    <![CDATA[ By Florin Pop One month ago I embarked on a challenge that many people told me was insane. I set out to conquer the entire freeCodeCamp curriculum. All while live streaming everything on my YouTube channel. 29 days, 56 Live Streams and 72 hours of li... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/i-completed-the-entire-freecodecamp-curriculum-in-a-month-while-recording-everything/</link>
                <guid isPermaLink="false">66d45f07706b9fb1c166b93d</guid>
                
                    <category>
                        <![CDATA[ challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ coding challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 17 Mar 2020 05:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/03/max-duzij-qAjJk-un3BI-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Florin Pop</p>
<p>One month ago I embarked on a challenge that many people told me was insane. I set out to conquer the entire freeCodeCamp curriculum. All while live streaming everything on my <a target="_blank" href="https://youtube.com/florinpop?sub_confirmation=1">YouTube channel</a>.</p>
<p><strong>29 days</strong>, <a target="_blank" href="https://www.youtube.com/playlist?list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH"><strong>56 Live Streams</strong></a> and <strong>72 hours of live streams</strong> later...</p>
<div class="embed-wrapper">
        <blockquote class="twitter-tweet">
          <a href="https://twitter.com/florinpop1705/status/1239243340358520832"></a>
        </blockquote>
        <script defer="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></div>
<h2 id="heading-first-a-disclaimer">First a Disclaimer</h2>
<p>I'm a professional software engineer. I've been coding since 2013. And I had previous experience working with all of the technologies covered in freeCodeCamp's curriculum. </p>
<p>So this was easier for me than it would be for people who are just starting out. Most people spend months or even years earning these certifications.</p>
<p>Remember: It's not about how much time it takes you to complete freeCodeCamp's curriculum – it's about what you are learning along the way.</p>
<p>I created this series as a guide for anyone who gets stuck during the curriculum, and wants to watch how a relatively experienced software engineer would solve challenges and build projects.</p>
<p>This series of 72 hours of video covers the following topics:</p>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>Flexbox</li>
<li>CSS Grid</li>
<li>JavaScript</li>
<li>Bootstrap</li>
<li>React</li>
<li>Redux</li>
<li>NodeJS</li>
<li>Express</li>
<li>MongoDB</li>
<li>Mongoose</li>
<li>and more... </li>
</ul>
<p>And I also build <strong>30 projects</strong> along the way. </p>
<p>Below you'll find a list with all the videos nicely structured by certifications. ?</p>
<h1 id="heading-how-did-this-crazy-month-of-my-life-get-started">How did this crazy month of my life get started?</h1>
<p>I've been planning to do this challenge for a while now. But it always seemed to be a HUGE one, which would take a lot of time to complete.</p>
<p>Apparently it didn't take months, as I initially thought. (And I'll tell you why in a moment.)</p>
<p>Before I started this challenge I ran the idea by freeCodeCamp's founder <a target="_blank" href="https://twitter.com/ossia">Quincy Larson</a> to see whether he thought that this was something that could benefit the developer community. He was very encouraging. </p>
<p>freeCodeCamp has a "learn in public" culture, and a lot of people post their projects on the forum and on GitHub for feedback. And an increasing number of people live-stream themselves building these projects, too.</p>
<p>Quincy said not to worry about "spoiling" any of the challenges or projects. These are all the equivalent of "open notes tests." Students must write their own code, but they can look at other people's solutions for inspiration if they want.</p>
<h1 id="heading-why-did-i-choose-freecodecamps-certifications-for-this-challenge">Why Did I Choose freeCodeCamp's Certifications for This Challenge?</h1>
<p>I have always recommended freeCodeCamp's curriculum to people who want to start learning web development.</p>
<p>Why? Well, the answer is very simple: it's the <strong>best free resource</strong> to get up and running with web development, in my opinion.</p>
<p>Now, even though it's a very good resource, people tend to quit along the way because they start to hit different roadblocks... and that's sad. ?</p>
<p>We want more people to finish the curriculum!</p>
<p>And here is where the <a target="_blank" href="https://www.youtube.com/playlist?list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH">Conquering freeCodeCamp's Curriculum challenge</a> starts to shine. It gives everyone a <a target="_blank" href="https://www.youtube.com/playlist?list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH">follow-along playlist</a> of videos in which I personally go through the entire curriculum, explaining what I'm thinking with each step I take. I also added my own comments and "bonus" explanations.</p>
<p>Every section on freeCodeCamp is covered in a single video. There are a total of 56 videos. (See below for a list of all the videos.)</p>
<h1 id="heading-my-background-and-experience">My background and experience</h1>
<p>I started learning how to code back in 2013. Since then I've worked as a freelance developer and held multiple software engineering jobs.</p>
<p>Last year I started to write articles <a target="_blank" href="https://florin-pop.com">on my blog</a>. I also started creating <a target="_blank" href="https://youtube.com/florinpop?sub_confirmation=1">YouTube coding tutorials</a>. <em> Feel free to subscribe if you like these type of videos </em> ?.</p>
<p>It is safe to say that I already knew most of what you would learn on the platform, which gave me an advantage on conquering the curriculum in a month.</p>
<p>But, don't let this intimidate you. No matter your experience – no matter if it takes you years to finish the curriculum, just do it. I promise that you won't regret doing it.</p>
<p>I also worked A LOT to put out these Live Streams. Some days I recorded more than 5 hours. One day I even did 8 live streams and ended up completing an entire certification just in that day. ?</p>
<p>Why did I do that?</p>
<p>Well... most people would say that I'm either crazy or a robot.</p>
<p>I'm not a robot. But maybe a bit crazy? Yes. ?</p>
<p>The reason I pushed so hard was because I had plans to go on a vacation. And I wanted to have this all out before going. (Well... the vacation got canceled due to the Coronavirus outbreak. But I'm still happy to have gotten all this done.)</p>
<p>Also probably because I was excited about setting a new world record by finishing the whole curriculum in a single month.</p>
<h1 id="heading-conquering-freecodecamp-all-the-recordings">Conquering freeCodeCamp - All the Recordings</h1>
<p>Below you can find a list with all of the recordings – 56 in total.</p>
<p>Keep in mind that all of these were recorded in a series of live streams, so you might hear me answer questions received during the live stream from the chat. I also take breaks to do some deep thinking and even struggle to figure out some of the solutions (I'm not a robot after all ?). </p>
<p>All of this is perfectly normal for software developers. When devs get stuck, they often get up and take a break for a few hours – even a day. This can help you re-approach the problem with a fresh perspective.</p>
<p>I built all the projects on live streams (instead of just pre-recording) because I wanted it to be as close to real life as possible. I think this will be of greater value to you than me just walking you through my solutions.</p>
<p>I also created a <a target="_blank" href="https://discord.gg/qSse3Ey">Discord</a> chat room server if you want to socialize with other people who are attempting this same freeCodeCamp curriculum challenge.</p>
<p>All right, enough talk. Here are all of the recordings. Enjoy! ?</p>
<h2 id="heading-responsive-web-design-certification">Responsive Web Design Certification</h2>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=pACOweChpEU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=2&amp;t=0s">Basic HTML and HTML5 - Live Stream #1</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=8qmpMXqImds&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=3&amp;t=0s">Basic CSS - Live Stream #2</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=YBCSKVczKak&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=4&amp;t=0s">Applied Visual Design - Live Stream #3</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=WYokBX7rS8U&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=5&amp;t=0s">Accessibility and RWD Principles - Live Stream #4</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=39EI97boIDo&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=6&amp;t=0s">Flexbox and CSS Grid - Live Stream #5</a></p>
<h3 id="heading-projects">Projects</h3>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=Xph-t4XguJU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=7&amp;t=0s">Build a Tribute Page (for Brad Traversy) - Live Stream #6</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=8KF-IDkraNk&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=8&amp;t=0s">Build a Survey Form - Live Stream #7</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=fQ67kd4uEwc&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=9&amp;t=0s">Build a Product Landing Page - Live Stream #8</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=Nc7IWgXyFn0&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=10&amp;t=0s">Build a Technical Documentation Page - Live Stream #9</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=OY5ISdymgiY&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=11&amp;t=0s">Build a Personal Portfolio Webpage - Live Stream #10</a></p>
<h2 id="heading-javascript-algorithms-and-data-structures-certification">JavaScript Algorithms and Data Structures Certification</h2>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=ZCZ2u14xsS4&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=12&amp;t=0s">Basic JavaScript (Part 1) - Live Stream #11</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=lkOXlVgKHYM&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=13&amp;t=0s">Basic JavaScript (Part 2) - Live Stream #12</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=BGhLIJbRHEg&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=14&amp;t=0s">JavaScript ES6 - Live Stream #13</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=plHUh4WkTl4&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=15&amp;t=0s">Regular Expressions - Live Stream #14</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=wnLxONk3STk&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=16&amp;t=0s">JavaScript Debugging - Live Stream #15</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=SApcu0UdaUc&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=17&amp;t=0s">JavaScript Basic Data Structures - Live Stream #16</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=lRLFPrfieg4&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=18&amp;t=0s">JavaScript Basic Algorithm Scripting - Live Stream #17</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=V4dysk2KHZc&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=19&amp;t=0s">JavaScript OOP - Live Stream #18</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=sphWyHUEcDk&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=20&amp;t=0s">JavaScript Functional Programming - Live Stream #19</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=jSWT8myUYEY&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=21&amp;t=0s">JavaScript Intermediate Algorithm Scripting (Part 1) - Live Stream #20</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=M94XFUfu2zk&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=22&amp;t=0s">JavaScript Intermediate Algorithm Scripting (Part 2) - Live Stream #21</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=V6NQurpvBfs&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=23&amp;t=0s">JavaScript Algorithms and Data Structures Projects - Live Stream #22</a></p>
<h2 id="heading-front-end-libraries-certification">Front End Libraries Certification</h2>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=ceI6TN_fuWI&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=24&amp;t=0s">CSS Bootstrap - Live Stream #23</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=njzRS5j9khg&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=25&amp;t=0s">jQuery - Live Stream #24</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=aBuu4JOVulM&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=26&amp;t=0s">SASS - Live Stream #25</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=e0tYvYjXWcM&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=27&amp;t=0s">ReactJS - Live Stream #26</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=ox5Jwcl6Yn8&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=28&amp;t=0s">Redux - Live Stream #27</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=Ari-W0aAF_E&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=29&amp;t=0s">React and Redux - Live Stream #28</a></p>
<h3 id="heading-projects-1">Projects</h3>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=iGWei_0EJIc&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=30&amp;t=0s">Build a Random Quote Machine - Live Stream #29</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=CJt7uZD_iK0&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=31&amp;t=0s">Build a Markdown Previewer - Live Stream #30</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=gXUshKPc-_g&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=32&amp;t=0s">Build a Drum Machine - Live Stream #31</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=NGOzAaJRPQU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=33&amp;t=0s">Build a Calculator - Live Stream #32</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=5rz6XbrCqt0&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=34&amp;t=0s">Build a Pomodoro Clock - Live Stream #33</a></p>
<h2 id="heading-data-visualization-certification">Data Visualization Certification</h2>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=0A13fmfi1VA&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=35&amp;t=0s">Data Visualization with D3 - Live Stream #34</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=wT7OYkXtU5s&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=36&amp;t=0s">JSON APIs and Ajax - Live Stream #35</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=sKZVaqCEvNE&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=37&amp;t=0s">Visualize Data with a Bar Chart - Live Stream #36</a></p>
<h3 id="heading-projects-2">Projects</h3>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=eSd47rSgfJw&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=38&amp;t=0s">Visualize Data with a Scatterplot Graph - Live Stream #37</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=ugboq8WA7O4&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=39&amp;t=0s">Visualize Data with a Heat Map - Live Stream #38</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=j2UdrV8-3yw&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=40&amp;t=0s">Visualize Data with a Choropleth Map - Live Stream #39</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=DB_DunPM7wU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=41&amp;t=0s">Visualize Data with a Treemap Diagram - Live Stream #40</a></p>
<h2 id="heading-apis-and-microservices-certification">APIs and Microservices Certification</h2>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=yMvflePvMzs&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=42&amp;t=0s">Managing Packages with NPM - Live Stream #41</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=JdptOCfUV-I&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=43&amp;t=0s">Basic Node and Express - Live Stream #42</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=0p6cwefbBEU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=44&amp;t=0s">Mongo and Mongoose - Live Stream #43</a></p>
<h3 id="heading-projects-3">Projects</h3>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=iUgzevvlyi4&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=45&amp;t=0s">Timestamp Microservice - Live Stream #44</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=hXD4k1Dk__M&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=46&amp;t=0s">Request Header Parser Microservice - Live Stream #45</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=rrju_1XH8Z8&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=47&amp;t=0s">URL Shortener Microservice - Live Stream #46</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=E68FWyktDwA&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=48&amp;t=0s">Exercise Tracker - Live Stream #47</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=cyZNFdfoM-o&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=49&amp;t=0s">File Metadata Microservice - Live Stream #48</a></p>
<h2 id="heading-information-security-and-quality-assurance-certification">Information Security and Quality Assurance Certification</h2>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=4Oa5re46jyM&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=50&amp;t=0s">Information Security with HelmetJS - Live Stream #49</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=AQiF3KBsmCs&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=51&amp;t=0s">Quality Assurance and Testing with Chai - Live Stream #50</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=1AzzAv8YU6Q&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=52&amp;t=0s">Advanced Node and Express - Live Stream #51</a></p>
<h3 id="heading-projects-4">Projects</h3>
<p>  <a target="_blank" href="https://www.youtube.com/watch?v=9lTxnyv3WCc&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=53&amp;t=0s">Metric-Imperial Converter - Live Stream #52</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=FW5X8SyGzaE&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=54&amp;t=0s">Issue Tracker - Live Stream #53</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=6wIYBmhA8i4&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=55&amp;t=0s">Personal Library - Live Stream #54</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=mi7PBL2AiOU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=56&amp;t=0s">Stock Price Checker - Live Stream #55</a>
  <a target="_blank" href="https://www.youtube.com/watch?v=0Xwt3ExBODU&amp;list=PLgBH1CvjOA62oNEVgz-dECiCZCE_Q3ZFH&amp;index=57&amp;t=0s">Anonymous Message Board - Live Stream #56</a></p>
<h1 id="heading-whats-next-for-me">What's next for me?</h1>
<p>I will continue to create coding tutorials on my <a target="_blank" href="https://youtube.com/florinpop">YouTube Channel</a>. One of my main goals for 2020 is to reach 100,000 subscribers. (A crazy goal, I know, but... I think it's possible. What do you think? ?)</p>
<p>I'm also waiting for freeCodeCamp to release <a target="_blank" href="https://www.freecodecamp.org/news/python-curriculum/">the 4 new Python certifications</a>. Then I will work through those as a series of live streams, too.</p>
<p>Along with these, you'll also find me doing other live coding series.<br>My latest series is called <a target="_blank" href="https://www.youtube.com/playlist?list=PLgBH1CvjOA606dw0WEeRayWo1OYYdA6f1">CodeWars.js</a>. If you want to learn more about how to solve different coding challenges using JavaScript, this is for you!</p>
<p>Feel free to subscribe to my YouTube channel if you want to follow along with my journey. You can also <a target="_blank" href="https://twitter.com/florinpop1705">follow me on Twitter</a>. I'm pretty active there.</p>
<p>I hope you found this article interesting.</p>
<p>Happy Coding! ?</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to conquer job interview code challenges v2.0: creating a front-end web app ]]>
                </title>
                <description>
                    <![CDATA[ By Jonathan Sexton As many of you know, I landed my first developer job at the end of June and I thought it would be great to use the challenge I was given as the subject of today's article. It is important to note that I used React to build ]]>
                </description>
                <link>https://www.freecodecamp.org/news/conquering-job-interview-code-challenges-v2-0/</link>
                <guid isPermaLink="false">66d45f6638f2dc3808b790b9</guid>
                
                    <category>
                        <![CDATA[ challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ coding challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ coding interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Job Hunting ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Job Interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 19 Aug 2019 13:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/08/lou-levit-B4op5oZ4x5Q-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jonathan Sexton</p>
<p>As many of you know, I <a target="_blank" href="https://jonathansexton.me/blog/landing-my-first-development-job-what-a-crazy-journey/">landed my first developer job</a> at the end of June and I thought it would be great to use the challenge I was given as the subject of today's article.</p>
<p>It is important to note that I used React to build my project, but this could have been completed with any front end framework or 'vanilla JavaScript'.</p>
<p>Below is a list of topics we'll go over:</p>
<ul>
<li>Accessing the <a target="_blank" href="https://quip.com/dev/automation/documentation#token-endpoint">Quip Automation API</a></li>
<li>Creating spreadsheets/documents with the Quip API</li>
<li>Installing and using the <a target="_blank" href="https://github.com/axios/axios">Axios</a> library (this is optional and you can make API requests without it but I like the syntax)</li>
<li>Using <a target="_blank" href="https://www.npmjs.com/package/qs">qs package</a> to stringify requests (this is not a requirement but I wanted to try something new and if it didn't work I always had the fallback of knowing Axios will stringify my requests by default)</li>
<li>Making <a target="_blank" href="https://en.wikipedia.org/wiki/POST_(HTTP)">POST</a> and <a target="_blank" href="https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods">GET</a> requests</li>
</ul>
<p>For context, here is a snippet of the requirements as I received them:</p>
<p>"<em>Create a front-end web app that interacts with the Quip API in the following ways:</em></p>
<ul>
<li><em>Create a spreadsheet (bonus points to import data into the newly created spreadsheet).</em></li>
<li><em>By import data, I mean upload an Excel spreadsheet, or copy and paste data into Quip spreadsheet.</em></li>
<li><em>Export a Quip spreadsheet to .xlsx</em></li>
<li><em>Download (backup) a folder/multiple documents.</em></li>
</ul>
<p><em>Create the UI for the page in whatever way you see fit (buttons, dialog boxes, etc).</em>"</p>
<p>I was a little worried when I read the requirements as I wasn't exactly sure where to begin. So, I dug into the API docs and started soaking up information. Thankfully, no time limit was given to me but I wanted to be done with this as soon as possible to see where I stood in the interview process.</p>
<p>To start, I designed a prototype of the finished product in Figma so I'd have a road map to go off of. This is not a required step, but it does make your project building experience run much smoother.</p>
<p>Alright, let's dig in!</p>
<h2 id="heading-getting-started">Getting Started</h2>
<p>I built my Nav, Footer, and Content components so I'd have a solid foundation for my app.</p>
<p>Each of these components return some basic JSX and there isn't much to them (If you'd like to see the code for each you can check out the project's <a target="_blank" href="https://github.com/JS-goose/gibson-code-challenge">GitHub repo</a>).</p>
<p>I decided the majority of the requests would be split between the <em><code>App.js</code></em> and <em><code>CenterContent.js</code></em> files.</p>
<p>For reference, here is my project structure:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/08/image.png" alt="react code showing a project structure" width="600" height="400" loading="lazy">
<em>My project structure</em></p>
<p>You'll see me reference POST and GET requests throughout this post.  If you aren't familiar with those now is a good time to do some research on those.  I'll be honest in that I wasn't 100% on them when starting this project and had to go through some resources myself.</p>
<p>In a nutshell, a POST request is when we ask the server to <strong><em>accept</em></strong> some incoming data (that we are sending) - in our case that data comes in the form of creating a new spreadsheet file.</p>
<p>A GET request is when we ask the server to <strong><em>send</em></strong> us data from a specified resource on the server.</p>
<p>I used the <a target="_blank" href="https://insomnia.rest/">Insomnia REST Client</a> to help debug issues with my requests. I'm working on a beginner's guide for it so stay tuned for that!</p>
<h2 id="heading-using-the-quip-api">Using the Quip API</h2>
<p>If you're like me, you've never heard of the Quip API and had no idea what it does. At its core, Quip is an automation tool that allows you to integrate with tools like <a target="_blank" href="https://www.salesforce.com/">SalesForce</a> to make your sales team more collaborative.</p>
<p>For our purposes, we will be using it to create Excel spreadsheets on my Quip account (if you want to replicate this project you'll need to create a Quip account - it is free to do so).</p>
<p>You'll also need to create a personal developer token in order to make requests. You can do that <a target="_blank" href="https://quip.com/dev/token">here</a> (requires an account). Once you have your token, keep it in a safe spot because we'll be making use of it soon.</p>
<p>To start, I installed Axios into my project by running <code>npm install axios</code> and then I import it into the files where I need to make my requests with <code>import axios from "axios";</code></p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/07/image-1.png" alt="a code snippet of react import statements" width="600" height="400" loading="lazy">
<em>My import statements for required packages</em></p>
<h2 id="heading-authentication">Authentication</h2>
<p>Before making any kind of requests to the server, I needed to authenticate with my credentials. I decided to put this in the <code>App.js</code> file inside a <code>componentDidMount</code> <a target="_blank" href="https://reactjs.org/docs/state-and-lifecycle.html">lifecycle method</a> so it would load every time the page loads:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/07/image-4.png" alt="some react code showing an authentication call to an outside API" width="600" height="400" loading="lazy">
<em>My authentication function</em></p>
<p>So I built my function, I called my function and for a moment thought all is well, until I ran into this dreaded error:</p>
<pre><code><span class="hljs-string">"Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $websiteName"</span>
</code></pre><p>Noooooooo!!! The dreaded <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors">CORS</a> monster rears it's mighty head!  (CORS is actually a useful intermediary between me and the server but can be annoying to deal with if you've never seen this error before).  </p>
<p><em><em>Side note - if you've never seen this error before don't worry!  I still don't fully understand it but I know enough to debug it. If you get stuck, check out the link above for some helpful info or look below for a quick work around.</em></em></p>
<p>An easy way to get around this is to use a proxy like the <a target="_blank" href="https://cors-anywhere.herokuapp.com/">CORS Anywhere</a> free resource. Essentially, place this link <code>https://cors-anywhere.herokuapp.com/</code> in front of your end point URL and it'll resolve the problem, for now.</p>
<p>This handy tool will allow you to make your requests <strong><em>while developing on localhost</em></strong>. If I were you, I would do some research before using this approach in production. Full disclaimer, I don't know enough about this little trick to tell you if it's safe to use in production or not.</p>
<p>So, after some tweaking of the authentication function I got the desired result to log to the console. Time to move on to making requests!</p>
<h2 id="heading-making-requests">Making Requests</h2>
<p>Now that my authentication is working, we're ready to make some requests. I knew I was going to make a POST request whenever I wanted to create a new document and that I also wanted to tie that action to the click of a button. So, below is my POST function:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/07/image-3.png" alt="a POST function call to an outside API" width="600" height="400" loading="lazy">
<em>My POST function</em></p>
<p>You'll notice this is where our <code>qs</code> package I mentioned at the beginning of this article comes into play. I'm not an expert but from what I gleaned after reading the docs on it, this package turns my request into a string to be sent to the server. If you prefer not to use this package that's no problem as <code>Axios</code> will do this by default. I know that  <code>qs</code> offers more than just stringifying data but I'm unfamiliar with the full range of its capabilities.</p>
<p>Now, I want this function to fire when clicking a button. Thus, a basic button came to life!</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/07/image-5-1024x96.png" alt="some react code for a simple button" width="600" height="400" loading="lazy">
<em>A simple React button with an on click method</em></p>
<p>My POST function has been built, my button has been built, and the method tied to it.  It's time to cross my fingers and see what my function spat out into the console:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/07/image-6.png" alt="a console log statement from an outside API call" width="600" height="400" loading="lazy">
<em>The result of my server request - it works!</em></p>
<p>At this point I'm over the moon! I'm beyond excited that I've gotten this API call to not only work but to return something as well. Now the real test...does this show up as a new spreadsheet on my Quip account?</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/07/image-7.png" alt="a quip account showing the creating of a spreadsheet" width="600" height="400" loading="lazy"></p>
<p>I have the console statement and the confirmation from my Quip account showing that I have successfully created a new spreadsheet - this is awesome!  I'm ecstatic and I literally jumped out of my chair and yelled "YEEEEEEESSSSSS!!!" once I got both of these.</p>
<p>That feeling of getting something to work after struggling with it is like nothing else I've experienced in my professional life.  I tell myself that I have to keep riding this wave of enthusiasm and elation so I push on to the next item on the list.</p>
<h2 id="heading-import-data-into-the-newly-created-spreadsheet">Import Data Into the Newly Created Spreadsheet</h2>
<p>I had some great ideas for this section of the "assignment" but at this point it has been almost two weeks since I started this project and I'm anxious that the interviewer will have forgotten about it (i.e. me) or is getting impatient with me.</p>
<p>So, I scrap those grand plans and opt for something of a more simple nature so I can get this project turned in ASAP.</p>
<p>I built a small function to at least attach to the upload button so that I would have some type of functionality for it. At it's core, this function waits until a file has been uploaded, sets the state to the first element in the event target array, then creates headers based off of that information, with the eventual goal being it posts to my Quip account with that information.</p>
<p>However, you can tell by the comment at the top of this function block that I was unable to get it to work properly. However, I did not have time (at least I thought I didn't) to dig deep into this problem and get it fixed.</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/08/image-3.png" alt="a snippet of react code showing an upload function" width="600" height="400" loading="lazy">
<em>My import function that never quite worked properly :)</em></p>
<p>At this point, I've been working on this project after work and at night for over two weeks. I decide that it's time to turn it in without the other parts working (import, export, and downloading data).</p>
<h2 id="heading-the-final-touches">The Final Touches</h2>
<p>I know my project is unfinished and I'm beating myself up pretty hard about it. But, as an added bonus I decide that I'm going to design something in <a target="_blank" href="https://www.figma.com/">Figma</a> as an added touch to help my chances of getting a call back.</p>
<p>Here is the finished product modeled off of their current colors/font/theme:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/08/image-4-1024x731.png" alt="a react app showing database table data" width="600" height="400" loading="lazy"></p>
<h2 id="heading-and-thats-a-wrap">And That's A Wrap</h2>
<p>With my project not finished but at a stopping point, I'm feeling not so good about my progress and my timing but I package everything up and throw it on GitHub. I throw in the above image and schedule an e-mail to go out the next morning at 9AM to the interviewer.  </p>
<p>I waited nearly 2 days with bated breath hoping to get some type of call back - something. It finally came as I was driving into work. The interviewer had gotten my project and wanted me to come in for another meeting with his lead developer.</p>
<p>I was terrified and excited all at the same time because I was thinking they wanted to bring me in to make fun of my code or to ask me what the hell I was thinking when I built this monstrosity. But that wasn't the case at all. I ended up getting a job offer from this project!</p>
<p>If you'd like the whole story about that, it can be found in my previous blog <a target="_blank" href="https://jonathansexton.me/blog/landing-my-first-development-job-what-a-crazy-journey/">post about landing my first developer job.</a></p>
<p>I hope you've found some value out of this post. If you have let me know on <a target="_blank" href="https://twitter.com/jj_goose">Twitter</a> or any of the other platforms I post on :D</p>
<p>Also, I cross post most of my articles on great platforms like <a target="_blank" href="https://dev.to/jsgoose">Dev.to</a> and <a target="_blank" href="https://medium.com/@joncsexton">Medium</a> so you can find my work there as well!</p>
<p>While you’re here why not sign up for my <strong>Newsletter</strong> –  you can do that at the top right of the page on my <a target="_blank" href="https://jonathansexton.me/blog">blog</a>. I promise I’ll never  spam your inbox and your information will not be shared with  anyone/site. I like to occasionally send out interesting resources I find, articles about web development, and a list of my newest posts.</p>
<p>Have an awesome day filled with love, joy, and coding!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Conquer Job Interview Coding Challenges ]]>
                </title>
                <description>
                    <![CDATA[ By Jonathan Sexton As many of you know, I have been applying for a job in web development for a few weeks and I thought it would be a good idea to share some of the coding challenges I've encountered. Not only that but I'll share the ways I went ]]>
                </description>
                <link>https://www.freecodecamp.org/news/conquering-job-interview-code-challenges-v1-0/</link>
                <guid isPermaLink="false">66d45f64a326133d124409f1</guid>
                
                    <category>
                        <![CDATA[ challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ coding ]]>
                    </category>
                
                    <category>
                        <![CDATA[ coding interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Interviewing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ job ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Job Hunting ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Job Interview ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 17 Aug 2019 03:33:34 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/08/le-tan-nsexDkLGC-c-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jonathan Sexton</p>
<p>As many of you know, I have been applying for a job in web development for a few weeks and I thought it would be a good idea to share some of the coding challenges I've encountered.</p>
<p>Not only that but I'll share the ways I went about solving these challenges.  Granted, there are many ways to solve these challenges but these are the ways I went about it.  If you have different ways that's awesome and I'd love for you to share them with me!</p>
<p>I will not share any identifiable information about the companies or specifics on the interview process of said company to preserve process integrity.</p>
<p>Alright, let's get to it then.</p>
<h2 id="heading-the-challenge">The Challenge</h2>
<p>This is a challenge I was given recently that I felt good about solving:</p>
<p><em><strong>Task: Return a basic styled list of posts from an endpoint in reverse chronological order</strong></em></p>
<p>To protect the company and their information, I will not share the URL from which I returned the information but instead will have a generic link from <a target="_blank" href="https://jsonplaceholder.typicode.com/">JSONPlaceholder</a> (a great, free, open source API for developers when you need to get some generic outside data) in the code below.</p>
<p>Here's the HTML I started with so we have something to display our results in:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-3.png" alt="a code example showing HTML" width="600" height="400" loading="lazy">
<em>Basic HTML boilerplate</em></p>
<p>The <em></em></p><ul></ul> tag has an id so we can style it later in the process.<p></p>
<h2 id="heading-fetching-data-from-the-endpoint">Fetching Data From the Endpoint</h2>
<p>Alright, let's dig into the <strong>JavaScript</strong> portion of this challenge.  First, I like to set my output and display variables:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-4.png" alt="JavaScript code showing two variables being declared" width="600" height="400" loading="lazy">
<em>Our variables used when displaying the returned code</em></p>
<p>I use <em>let</em> for the <em>output</em> variable and set it to <em>null</em> because we will change it's value later in the code.  The <em>list</em> variable is declared with <em>const</em> because it's value will not be changing.</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-12.png" alt="javascript code showing a fetch function" width="600" height="400" loading="lazy">
<em>Fetching data from the endpoint</em></p>
<p>In the above example, we’re declaring an <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">arrow function</a> named <em>getData</em> wrapped in a <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch">try…catch</a> block (This is a cleaner/easier to use/read syntax that uses <em>tries</em> some code and <em>catches</em> errors if they happen — you’ll also see the <em>catch</em> portion below).  Because we're getting data asynchronously we also need to make use of <em><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await">async/await</a></em> to fetch data.  This is the method I'm most comfortable with but I know there are many other ways to get data from an endpoint so feel free to share yours :D</p>
<p>Once we've declared our <em>data</em> variable, the next thing is to set a variable to turn the returned data to a JSON object so we can get it in a usable form.  We do that with the <em><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/API/Body/json">.json()</a></em> method.  We're awaiting the data as well because if we were to omit the <em>await</em> keyword, JavaScript would try to turn the <em>data</em> variable into JSON but the data would not be there yet because it's coming from an asynchronous API.</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-9.png" alt="a console log of a javascript array " width="600" height="400" loading="lazy">
<em>Our glorious data!</em></p>
<p>As the very last line in the section, we <em>console.log</em> our data that we get back from the API endpoint just to make sure we're getting everything we wanted.  We have an array full of objects.  You'll also notice that the key _published<em>at</em> holds our dates and they are not in any type of order.  Their format is also not a simple four digit number representing the year which would make it easy to filter them into <em><strong>reverse chronological order</strong></em>.  We'll need to take care of that.</p>
<h2 id="heading-manipulating-our-data">Manipulating Our Data</h2>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-7.png" alt="javascript code that's copying a variable" width="600" height="400" loading="lazy">
<em>Making a copy of our data variable</em></p>
<p>Here we declare the variable <em>dataCopy</em> which points to the <em>dataJSON</em> variable mutated into an array via the _<a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax">spread operator(...)</a>_.  Essentially, we are copying our returned JSON data so we aren't manipulating the original (bad practice) while making it into an array so that we can iterate over it.</p>
<p>After, we _<a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort">sort</a>_ the array.  Sort is an extremely useful array method that will put our array indices into the order of our choosing based on the function we pass into <em>sort.</em></p>
<p>Typically, we might want to sort the data based on value (largest to smallest) so we subtract the parameter <em><strong>a</strong></em> from parameter <em><strong>b</strong></em>.  But because we need to display our results in <em><strong>reverse chronological order</strong></em> I decided to produce a new date (accomplished with the <em><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new">new</a></em> operator and the JavaScript built in method _<a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date">Date</a><em> that creates a new platform independent formatted instance of a date.  Now, because </em><strong>a</strong><em> and </em><strong>b</strong>_ represent our objects sitting inside our array indices, we can access the key/value pairs held within said objects.  So, we subtract _b.published<em>at</em> from _a.published<em>at</em> and this should give us our dates in <em><strong>reverse chronological order</strong></em>.</p>
<h2 id="heading-displaying-the-fruits-of-our-labor">Displaying the Fruits of Our Labor</h2>
<p>Remember that <em>output</em> variable we set to <em>null</em> at the very top of our program?  Well now is it's time to shine!</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-10.png" alt="javascript code showing an output variable being changed" width="600" height="400" loading="lazy">
<em>That output variable is earning it's keep now!</em></p>
<p>So, there's a few things going on here.  First, we're setting our <em>output</em> variable to a new value by mapping over our <em>dataCopy</em> variable using the _<a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map">map</a>_ method.  This method returns a new array with the results of calling the provided function once for each index.  The <em>item</em> parameter represents our objects inside of our array that was returned from the endpoint and thus has access to all of their properties such as <em>title</em> and _published<em>at</em>.</p>
<p>We return two list elements with a <em><span></span></em> inside each one (for styling purposes), as well as a string for the <strong>Title</strong> and <strong>Date Published</strong> headings.  Inside of those, we have our variables that use <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals">template literals</a> to set the title and the date for each post.</p>
<p>Then, we set our <em>list</em> variable's <em><a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML">innerHTML</a></em> equal to that of our <em>output</em> variable.</p>
<p>Finally, we have the closing bracket and error handling of our <em>try...catch</em> block as well as our function call:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-11.png" alt="javascript code showing error handling for a fetch request" width="600" height="400" loading="lazy">
<em>This code will handle any errors and display them in the console</em></p>
<h2 id="heading-final-code">Final Code</h2>
<p>Here is what our full code body looks like now:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-13.png" alt="javascript code " width="600" height="400" loading="lazy">
<em>The entirety of our code base</em></p>
<p>And here is our basic CSS styling:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-14.png" alt="css code showing basic styling of an element" width="600" height="400" loading="lazy">
<em>Did I say basic styling? I meant basic :D</em></p>
<p>And here is the result of our work with it's very basic styling:</p>
<p><img src="https://jonathansexton.me/blog/wp-content/uploads/2019/05/image-15.png" alt="a list of posts in reverse chronological order" width="600" height="400" loading="lazy">
<em>Isn't it beautiful?</em></p>
<p>As you can see, we accomplished what we set out to do and in fact the list is in <em><strong>reverse chronological order</strong></em>. Yay!</p>
<hr>
<p>I hope you've enjoyed this walk through of my thought process and of how I solved this challenge.  Granted, there are many ways of completing this so feel free to share yours with me!  I'm excited to keep this series going and will post another after I've gone through another challenge!</p>
<p>Also, I cross post most of my articles on great platforms like <a target="_blank" href="https://dev.to/jsgoose">Dev.to</a> and <a target="_blank" href="https://medium.com/@joncsexton">Medium</a> so you can find my work there as well. This article was originally posted on my <a target="_blank" href="https://jonathansexton.me/blog">blog</a> on May 27, 2019. </p>
<p>While you’re here why not <a target="_blank" href="https://jonathansexton.me/blog/">sign up for my <strong>Newsletter</strong></a>.  I promise I’ll never  spam your inbox and your information will not be shared with  anyone/site.  I like to occasionally send out interesting resources I  find, articles about web development, and a list of my newest posts.</p>
<p>Have an awesome day filled with love, joy, and coding!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Lesser-known developer contests you can join in 2018 ]]>
                </title>
                <description>
                    <![CDATA[ By Mike Sedzielewski Daniel Borowski published a great list of coding challenges you can join for fun and/or to test your programming skills. Contests like TopCoder or Google Code Jam are well-designed and offer high rewards. The competition is usual... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/lesser-known-developer-contests-you-can-join-in-2018-bf70f175106a/</link>
                <guid isPermaLink="false">66c35a1bc13ebcbf60172096</guid>
                
                    <category>
                        <![CDATA[ challenge ]]>
                    </category>
                
                    <category>
                        <![CDATA[ code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ contests ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Developer ]]>
                    </category>
                
                    <category>
                        <![CDATA[ hackathons ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 08 Dec 2017 21:29:56 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*szJgIpnCfptPehQz3ULCag.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Mike Sedzielewski</p>
<p>Daniel Borowski published a great <a target="_blank" href="https://medium.freecodecamp.org/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f">list</a> of coding challenges you can join for fun and/or to test your programming skills. Contests like TopCoder or Google Code Jam are well-designed and offer high rewards. The competition is usually very high as well. In this article, I’d like to list less-known online contest you can join in 2018. (Note: the vast majority of them isn’t based on algorithmic problems).</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/xJ4Yhy6byMMfRTByA4wiXq1KtkRmf05fU0b6" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-js13kgames">Js13kgames</h3>
<p><strong>Link:</strong> <a target="_blank" href="http://js13kgames.com">http://js13kgames.com</a></p>
<p><strong>Challenge:</strong></p>
<p>It’s a JavaScript coding competition for HTML5 Game Developers. The game assets should be smaller than or equal to 13 kilobytes. It must work and be playable in at least two browsers: Firefox and Chrome. The rules also define the main theme, and it’s highly advised to follow it in your game (2017 theme- “lost”).</p>
<p><strong>Prizes:</strong></p>
<p>Sponsor’s packages such as:</p>
<ul>
<li>Three copies of <a target="_blank" href="http://store.steampowered.com/app/619890/Evil_Glitch/">Evil Glitch</a> game by <a target="_blank" href="https://twitter.com/agar3s">Agar3s</a> available on Steam.</li>
<li>Three lifetime and ten year-long licenses for <a target="_blank" href="http://phasereditor.boniatillo.com/">Phaser Editor</a> from <a target="_blank" href="https://twitter.com/boniatillo_com">Arian Fornaris</a>.</li>
<li>Thirty paid <a target="_blank" href="https://github.com/">GitHub</a> plans — personal accounts with unlimited private repositories for twelve months.</li>
<li>Ten 6-month <a target="_blank" href="http://playcanvas.com/">PlayCanvas</a> Personal accounts offering a cloud-hosted, collaborative platform for building games.</li>
<li>Two Personal licenses for one year each of <a target="_blank" href="https://www.construct.net/make-games/buy-construct-3">Construct 3</a> game engine created by <a target="_blank" href="https://www.scirra.com/">Scirra</a>.</li>
<li>Two copies of <a target="_blank" href="http://assetforge.io/">Asset Forge Deluxe</a> tool from <a target="_blank" href="http://kenney.nl/">Kenney.nl</a>.</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="http://js13kgames.com/entries/greeble">Ryan ‘Rybar’ Malm</a> — you’re a lowly space mining bot who suffers a terrible accident and is separated from your crew. Find enough fuel and body components to repair yourself and explore.</li>
<li><a target="_blank" href="http://js13kgames.com/entries/lossst">Maxime Euziere</a> — a big puzzle game and a long journey to find a lost kid.</li>
<li><a target="_blank" href="http://js13kgames.com/entries/lost-beacons">Rémi Vansteelandt</a> — get control of the sectors back by capturing beacons and defending them against enemy units.</li>
</ul>
<h3 id="heading-yelp-dataset-challenge">Yelp Dataset challenge</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://www.yelp.com/dataset/challenge">https://www.yelp.com/dataset/challenge</a></p>
<p><strong>Challenge:</strong></p>
<p>The challenge calls students to use Yelp dataset in innovative ways. It’s a chance to conduct research or analysis on Yelp data and share your discoveries. For example, the 2017 set included information about local businesses in 12 metropolitan areas from 4 countries.</p>
<p><strong>Prizes:</strong></p>
<ul>
<li>ten awards for $5,000</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li>“Semantic Scan: Detecting Subtle, Spatially Localized Events in Text Streams”. Abhinav Maurya, Kenton Murray, Yandong Liu, Chris Dyer, William W. Cohen, and Daniel B. Neill.</li>
<li>“Topic Regularized Matrix Factorization for Review Based Rating Prediction”. Jiachen Li, Yan Wang, Xiangyu Sun, Chengliang Lian, and Ming Yao, from the Language Technologies Institute, School of Computer Science, at Carnegie Mellon University.</li>
<li><a target="_blank" href="http://mdenil.com/media/papers/2015-deep-multi-instance-learning.pdf">“From Group to Individual Labels Using Deep Features”.</a> Dimitrios Kotzias (University of California, Irvine), Misha Denil (University of Oxford, UK), Nando De Freitas (University of Oxford, UK, and Canadian Institute for Advanced Research), and Padhraic Smyth (University of California, Irvine).</li>
</ul>
<h3 id="heading-xd-hax-developer-challenge">XD HAX Developer Challenge</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://xdhax.devpost.com/">https://xdhax.devpost.com/</a></p>
<p><strong>Challenge:</strong></p>
<p>Developers are asked to build innovative apps utilizing cloud technologies. Such apps are to benefit small businesses worldwide. Competition is divided into categories:</p>
<ul>
<li>Best NEW App integration (with Xero API)</li>
<li>Best enhancement of an existing App integration</li>
<li>Most Innovative use of Xero’s APIs</li>
<li>Best New Open Source Project with Xero’s API</li>
</ul>
<p><strong>Prizes:</strong></p>
<p>$5000 in <a target="_blank" href="https://aws.amazon.com/">Amazon Web Services</a> credits, $2500 in cash, plus featuring in Xero’s resources. Additionally, in the best integration category, the winner gets an opportunity to exhibit in Startup Alley at a Xerocon of your choice. This has an approximate $5000 value.</p>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="https://devpost.com/software/curve-jzte6x">The revolutionary new card</a> that makes business spending as beautiful as Xero makes accounting.</li>
<li><a target="_blank" href="https://devpost.com/software/enhancements-to-the-exsalerate-xero-integration">Account Management Dashboard</a> (AMD).</li>
<li><a target="_blank" href="https://devpost.com/software/tax-optimiser-d3fb8x">TAX</a> which helps startups to deal with taxes.</li>
</ul>
<h3 id="heading-open-oit-challenge-40">OPEN OIT CHALLENGE 4.0</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://iot.eclipse.org/open-iot-challenge/">https://iot.eclipse.org/open-iot-challenge/</a></p>
<p><strong>Challenge:</strong></p>
<p>You need to create a solution based on open standards and open source technology. The solutions are judged on the following criteria:</p>
<ul>
<li>Applicability of a solution to a specific industry, like Smart Cities, Industrie 4.0, and Remote Health.</li>
<li>Completeness of solution.</li>
<li>Use of open standards and open source technology.</li>
<li>Amount of community discussion from the participants when they built their solution.</li>
</ul>
<p><strong>Prizes:</strong></p>
<p><strong>1st prize:</strong></p>
<ul>
<li>$3,000 gift card to be used in an online shop for electronic supplies and open hardware.</li>
<li>$1,000 scholarship to attend a future Eclipse Event in 2017.</li>
<li>1 Reactive Blocks professional license (EUR 4,800).</li>
</ul>
<p><strong>2nd prize:</strong></p>
<ul>
<li>$1,000 gift card to be used in an online shop for electronic supplies and open hardware.</li>
<li>1 Reactive Blocks professional license (EUR 4,800).</li>
</ul>
<p><strong>3rd prize:</strong></p>
<ul>
<li>$500 gift card to be used in an online shop for electronic supplies and open hardware.</li>
<li>1 Reactive Blocks professional license (EUR 4,800).</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="https://medium.com/inmoodforlife/in-the-mood-for-life-open-iot-challenge-final-report-a0c19482118c">Sebastien Lambour &amp; team</a> — InMoodForLife: Sleep analysis for mood disorders.</li>
<li><a target="_blank" href="http://krishi-iot.blogspot.de/2017/02/krishi-iot-final-report.html">Siva Prasad Katru &amp; team</a> — The solution to help farmers execute agricultural operations in smarter and efficient way.</li>
<li><a target="_blank" href="https://eneristics.wordpress.com/2017/02/27/rhds-final-report-what-we-accomplished/">Tom Morocz &amp; team</a> — RHDS which performs a near real-time home Home Energy Audit on a minute by minute basis.</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ucXuUpbR1nDwVtlZdUdeYEFSSGM4tFOwwACv" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/photos/MuIvHRJbjA8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="_blank" title=""&gt;James Owen on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-space-app-challenge">Space App challenge</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://2017.spaceappschallenge.org/">https://2017.spaceappschallenge.org/</a></p>
<p><strong>Start date:</strong> April 2018</p>
<p><strong>Challenge:</strong></p>
<p>Space App challenge is a NASA International hackathon that occurs over 48 hours in cities around the world. It’s about building apps judged in many different categories:</p>
<ul>
<li><strong>Ideate and Create!</strong> Challenges in this category will ask you to interpret NASA Earth Science data creatively. You will be asked to design new means to experience NASA Earth Science data and technologies.</li>
<li><strong>Our ecological neighborhood.</strong> Challenges in this category will ask you to use NASA Earth Science data to study ecological systems. You will also generate solutions to understand life here on Earth better.</li>
<li><strong>Warning! Danger ahead.</strong> This category will ask you to analyze NASA data. You will assist in monitoring natural disasters and phenomena associated with health risks. You will also be asked to assess their impacts on life and property.</li>
<li><strong>Planetary blues</strong>. In this category will ask you to analyze and visualize NASA’s data on the hydrosphere and the cryosphere.</li>
<li><strong>The Earth and us</strong>. This category will ask you to combine NASA Earth Science data with sociological and economic information. The result will generate new understanding and perspectives on human-environment interactions.</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/pnj2kJjmBTxPIsXRhaOzRFt9cu-YOTcDa6KB" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/photos/z8lfwpQVXJo?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="_blank" title=""&gt;Team UI8 on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="<em>blank" title=")</em></p>
<p><strong>Prizes:</strong></p>
<ul>
<li>In 2015, Global had a chance to attend the viewing opportunity for the <a target="_blank" href="https://en.wikipedia.org/wiki/Cygnus_CRS_OA-4">Cygnus CRS OA-4</a> launch. Cygnus CRS OA-4 took cargo and experiments to the <a target="_blank" href="https://en.wikipedia.org/wiki/International_Space_Station">International Space Station</a>.</li>
<li>In 2016, Global winners could attend the launch of <a target="_blank" href="https://en.wikipedia.org/wiki/OSIRIS-REx">OSIRIS-Rex</a>, visiting the asteroid <a target="_blank" href="https://en.wikipedia.org/wiki/Bennu_%28asteroid%29">Bennu</a>.</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="https://2016.spaceappschallenge.org/challenges/earth/aircheck/projects/scintilla">Best use of data</a>: Scintilla mitigates the impact of poor air quality on the global community. This is done by democratizing air quality data collection.</li>
<li><a target="_blank" href="https://2016.spaceappschallenge.org/challenges/space-station/rock-it-space-fashion-and-design/projects/canaria">Best use of hardware</a>: <a target="_blank" href="http://canaria.co.uk/">The Canaria system of CO2 monitor patch and earpiece</a> acts as a lifeline to the wearer. It simultaneously monitors heart rate, blood oxygen, and atmospheric CO2 levels.</li>
<li><a target="_blank" href="https://2016.spaceappschallenge.org/challenges/earth/earth-live/projects/l.i.v.e.-glacier-project-ice-cream-team">Galactic impact</a>: This is a web tool that provides the near real-time visualization of glacier surface velocity fields. It is obtained by processing free SENTINEL-1 Synthetic Aperture Radar images through our own algorithm. This is enhanced with the addition of environmental variables from NASA GIBS.</li>
<li><a target="_blank" href="https://2016.spaceappschallenge.org/challenges/space-station/rock-it-space-fashion-and-design/projects/fractalnet">Best mission concept</a>: The solution is a data glove to be worn by astronauts as part of their space suit. The data glove is a network of wireless devices that provide communications in a variety of environments. These include subterranean environments, like caves, caverns, and lava tubes on the moon, Mars, and asteroids.</li>
<li><a target="_blank" href="https://2016.spaceappschallenge.org/challenges/tech/jet-set-mars/projects/mars-hopper">People’s choice</a>: MarsHopper is a plane for the investigation of Mars poles and its surroundings. It uses CO2, that in solid form covers surface to create jet thrust.</li>
<li><a target="_blank" href="https://2016.spaceappschallenge.org/challenges/solar-system/book-it-to-the-moon/projects/kid-on-the-moon">Most inspirational:</a> Kid On The Moon is an interactive app. It fosters curiosity to inspire the next generation of space explorers.</li>
</ul>
<h3 id="heading-tadhack">TADHack</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://tadhack.com/2017/">https://tadhack.com/2017/</a></p>
<p><strong>Challenge:</strong></p>
<p>TEDHack is the largest telecoms-focused hackathon worldwide. The competition is divided into following categories:</p>
<ul>
<li>Hackhathon. This category is an idea or an answer to a sponsor’s challenge. You can work on your ideas before the event, or create ideas during the event from all the great networking opportunities.</li>
<li>Showcase. This category is for products that have already been released commercially. It can also include products that have had significant development.</li>
</ul>
<p><strong>Prizes:</strong></p>
<p>$1000 — $200 in cash (dependently on category), plus packages from sponsors.</p>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="https://youtu.be/-eX0cqXVVA8">Hack: snappy kamailio. By Daniel-Constantin Mierla.</a></li>
<li><a target="_blank" href="https://youtu.be/p8INY-zlEaY">Hack: Outsider. By Ermir Suldashi</a>.</li>
<li><a target="_blank" href="https://youtu.be/c11Sa9G_OXQ">Hack: Avengerrs. By Mchotsa Banda, Daryl Lukas, Chobela Kakumbi, Itati Dzekedzeke, Joshua Chipile &amp; Sibusiso Ngoma</a>.</li>
</ul>
<p>(<a target="_blank" href="http://blog.tadhack.com/2016/10/16/tadhack-2016-winners/">More categories and winners</a>.)</p>
<h3 id="heading-react-riot">React Riot</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://www.reactriot.com/">https://www.reactriot.com/</a></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/kGbBIysgT3huaiyobDPIadpHQ8utFSx3NKF3" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>Challenge:</strong></p>
<p>48h to build an app by using React JS. There is no specific topic or theme. Entries are judged on a 1–5 scale across 3 dimensions:</p>
<ul>
<li>Innovation — How original is the idea and execution?</li>
<li>Design — How good does it look and feel to use?</li>
<li>Utility / Fun — Is the site offering a service I’d use again and again?</li>
</ul>
<p><strong>Prizes:</strong></p>
<p>Sponsors provide prizes, no cash rewards. Examples with estimated values:</p>
<ul>
<li><a target="_blank" href="http://www.algolia.com/">Algolia</a> — $500 gift card of your choice</li>
<li><a target="_blank" href="http://pages.sencha.com/extreact-trial-react-riot-2017">Sencha</a> — ExtReact Premium License year per team member ($4,780 value)</li>
<li><a target="_blank" href="https://algolia.com/">Algolia</a> — 2 year Startup Plan per team member ($4,704 value)</li>
<li><a target="_blank" href="https://frontendmasters.com/">Frontend Masters</a> — 6 months membership to Frontend Masters per team member ($936 value)</li>
<li><a target="_blank" href="https://www.ag-grid.com/?utm_source=reactriot&amp;utm_medium=link&amp;utm_campaign=sponsorship">ag-Grid</a> — 1 Developer license ($495 value)</li>
<li><a target="_blank" href="http://www.github.com/">Github</a> — 1-year Developer Plan per team member ($336 value)</li>
<li><a target="_blank" href="https://agilebits.com/">AgileBits</a> — 1 Password license per team member ($144 value)</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="https://www.reactriot.com/entries/72-little-nebula">The Definitely Ending Story</a> — Get your thinking cap on to puzzle your way into Granny’s house. Navigate your way around town, and talk to the townsfolk to pick up items.</li>
<li><a target="_blank" href="https://www.reactriot.com/entries/331-teamninja">Composer</a> — Lets you choose chords and instrument types to create your very own sound composition, that you can share with your friends.</li>
<li><a target="_blank" href="https://www.reactriot.com/entries/301-reactmeisters">Okay, Fine!</a> — A chat room that uses AI to analyze and visualize tone</li>
<li><a target="_blank" href="https://www.reactriot.com/entries/490-roguelike">DungeonLogic</a> — You are helping to the dark mage, that has a strange hobby. He collects the coins in strange places and uses dark magic to control the environment, for example, to lift something or pull down.</li>
<li><a target="_blank" href="https://www.reactriot.com/entries/257-lyanglyang">PewPew</a> — Pew pew is a real-time multiplayer game where players can battle each other using their voice.</li>
<li><a target="_blank" href="https://www.reactriot.com/entries/140-cf-ui-ux">Fill Me Up</a> — FillMeUp addresses a major pain in Nepal — refueling vehicles. It is a platform for suppliers to reach out to more consumers by providing valuable petrol pump statistics and information.</li>
</ul>
<h3 id="heading-stellar-build-challenge">Stellar Build Challenge</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://www.stellar.org/lumens/build/">https://www.stellar.org/lumens/build/</a></p>
<p><strong>Challenge:</strong></p>
<p>Contestants are asked to build applications which match following requirements:</p>
<ul>
<li>Continues usability improvements and polish to what is there now.</li>
<li>Applications using multi-sig in a novel and interesting ways.</li>
<li>Open federation service or other applications taking advantage of a federation.</li>
<li>Sending lumens to any address.</li>
</ul>
<p>You can also build a wallet solution which matches following dimensions:</p>
<ul>
<li>Continue usability improvements and polish to what is there now.</li>
<li>Has multiple accounts.</li>
<li>Presents good design.</li>
<li><a target="_blank" href="https://galactictalk.org/d/37-project-idea-sending-lumens-to-any-address">Sends lumens to any email address</a>.</li>
<li>Has other features that allow easy on-boarding and increased virality.</li>
</ul>
<p>Other categories include tokens, issuing ICO, trading tools or remittance app.</p>
<p><strong>Prizes:</strong></p>
<p>2 000 000–350 000 Lumens (Lumens are the <em>native asset</em> of the Stellar network)</p>
<p><strong>Past winners:</strong></p>
<ul>
<li><a target="_blank" href="https://popcoin.ws/">Popcoin</a> — metered billing for busy developers.</li>
<li><a target="_blank" href="http://tonaira.com/">Tonaira</a> — a<a target="_blank" href="https://www.youtube.com/watch?v=7KDnV5imQm4">llows you to send money to your family and friends for as low as 1%</a>.</li>
<li><a target="_blank" href="https://blackwallet.co/">BlackWallet</a> — it supports lumens, assets, and tokens, and makes it easy for you to send nor receive them.</li>
<li><a target="_blank" href="http://www.esacco.co.ug/">eSACCO</a> — similar financial needs with varied financial journeys means we each require personalized solutions. That’s exactly what eSSACO delivers.</li>
<li><a target="_blank" href="https://stellarterm.com/">StellarTerm</a> — an <a target="_blank" href="https://github.com/irisli/stellarterm">open source</a> client for the Stellar network. Send, receive, and trade assets on the Stellar network easily with StellarTerm.</li>
</ul>
<h3 id="heading-angular-attack">ANGULAR ATTACK</h3>
<p><strong>Link</strong>: <a target="_blank" href="https://www.angularattack.com/">https://www.angularattack.com/</a></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/DeZzEmWSEYcQ1EDFEzvSSOwxwq5lZC0lBEM5" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>Challenge:</strong></p>
<p>All entries have to be applications created with Angular. You have 48 hours to build your solution and pass it through (entries should be web applications). Apps will be judged on a 1–5 scale across 3 dimensions:</p>
<ul>
<li>Innovation — How original is the idea and execution?</li>
<li>Design — How good does it look and feel to use?</li>
<li>Utility / Fun — Is the site offering a service I’d use again and again?</li>
</ul>
<p><strong>Prizes:</strong></p>
<p>Packages from sponsors, for example:</p>
<ul>
<li><a target="_blank" href="http://www.telerik.com/kendo-angular-ui/?utm_medium=website&amp;utm_campaign=kendo-ui-angular-attack&amp;utm_source=angular-attack">Kendo UI</a> — $500 gift card of your choice</li>
<li><a target="_blank" href="https://www.nativescript.org/?utm_medium=website&amp;utm_campaign=kendo-ui-angular-attack&amp;utm_source=angular-attack">NativeScript</a> — $500 gift card of your choice</li>
<li><a target="_blank" href="http://www.telerik.com/kendo-angular-ui/?utm_medium=website&amp;utm_campaign=kendo-ui-angular-attack&amp;utm_source=angular-attack">Kendo UI</a> — BONUS $2,000 gift card of your choice if you use Kendo UI</li>
<li><a target="_blank" href="https://www.nativescript.org/?utm_medium=website&amp;utm_campaign=kendo-ui-angular-attack&amp;utm_source=angular-attack">NativeScript</a> — BONUS $2,000 gift card of your choice if you use NativeScript</li>
<li><a target="_blank" href="https://frontendmasters.com/">Frontend Masters</a> — 6 months membership to Frontend Masters per team member ($936 value)</li>
<li><a target="_blank" href="https://scotch.io/">Scotch</a> — 1-year membership to Scotch School per team member ($480 value)</li>
<li><a target="_blank" href="https://sitepoint.com/">SitePoint</a> — 1-year Premium membership per team member ($396 value)</li>
<li><a target="_blank" href="http://www.github.com/">Github</a> — 1-year Developer Plan per team member ($336 value)</li>
<li><a target="_blank" href="http://www.rollbar.com/">Rollbar</a> — 6 months Bootstrap Plan ($300 value)</li>
<li><a target="_blank" href="https://agilebits.com/">AgileBits</a> — 1 password license per team member ($144 value)</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li>Team winner — <a target="_blank" href="https://www.angularattack.com/entries/335-izolenta">the game</a> provides a 6x6 board with items and a set of clues.</li>
<li>Solo winner — <a target="_blank" href="https://www.angularattack.com/entries/281-far">a drum machine</a> and chat application. This application lets you create and listen to beats in real time with your peers. This can be accomplished irrespective of the places where your peer composer resides.</li>
<li>Innovation winner — <a target="_blank" href="https://www.angularattack.com/entries/514-daydreamer">a fun immersive augmented reality game.</a> In this game, toddlers have to spot the alphabets using the device camera.</li>
<li>Design winner — <a target="_blank" href="https://www.angularattack.com/entries/206-eresoft">a turn-based multiplayer game</a> that players need throws a rock at the opponent with their slings.</li>
<li>Utility/fun winner — it is <a target="_blank" href="https://www.angularattack.com/entries/50-h4cker">a one-page web application</a> that gives the download links to the videos.</li>
<li>Public favorite — <a target="_blank" href="https://www.angularattack.com/entries/94-eliftech">one of the most awesome</a> tools to create your own story.</li>
</ul>
<h3 id="heading-node-knockout">Node Knockout</h3>
<p><strong>Link</strong>: <a target="_blank" href="https://www.nodeknockout.com/">https://www.nodeknockout.com/</a></p>
<p><strong>Challenge:</strong></p>
<p>Node Knockout is an online hackathon. Teams compete over a 48 hour period to build the best app they can, using Node.js. After app submission, it is scored by one of the expert judges:</p>
<ul>
<li>Innovation — How original is the idea and execution?</li>
<li>Design — How good does it look and feel to use?</li>
<li>Utility / Fun — Is the site offering a service I’d use again and again?</li>
</ul>
<p><strong>Prizes:</strong></p>
<p>Founded by sponsors, no cash rewards. For example, “Judges favorite” received:</p>
<ul>
<li>Heroku — $500 gift card of your choice</li>
<li>Frontend Masters — 1year subscription per team member (up to $1,872 value)</li>
<li>Blitline — $100 credit per team member (up to $400 value)</li>
<li>Github — 1-year subscription per team member (up to $336 value)</li>
<li>AgileBits 1Password — 1-year subscription per team member (up to $144 value)</li>
<li>Papertrail — 1-year subscription (up to $84 value)</li>
<li>Component IO — 6 months Standard plan ($60 value)</li>
<li>Rollbar — 1-month Bootstrap plan ($49 value)</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li>The best overall score by judges was awarded to <a target="_blank" href="http://100.2017.nodeknockout.com">the ? Store,</a> This is a magical place where you can design and actually order custom emoji hats, t-shirts, and mugs and get them delivered the mail just a week or two later.</li>
<li>The best overall score by participants was awarded to <a target="_blank" href="http://ducknockout.2017.nodeknockout.com">DuckNockout. DuckNockout</a> is a technological shooting game that brings nostalgia from Duck Hunt of the 80's.</li>
<li>The highest innovation score — <a target="_blank" href="http://nullpointer.2017.nodeknockout.com">tech word assembling game</a> with git commands.</li>
<li>The highest design score — a <a target="_blank" href="http://pixelbeach.2017.nodeknockout.com">fun little game</a> made in an 8-bit-like style. You’ve found the perfect wave, with all that’s left to do is to ride it without falling.</li>
<li>The highest utility/fun score — this is a <a target="_blank" href="http://jumpingjack.2017.nodeknockout.com">game</a> that uses your microphone as input. If you’re loud enough, the character will move right. If you’re quiet, the character will move left. Aim for the branches. If you hit the bottom, you lose.</li>
<li>The most votes — <a target="_blank" href="http://trendswar.2017.nodeknockout.com">multiplayer game</a> includes knowledge, quickness, forecast.</li>
</ul>
<h3 id="heading-24-pull-requests">24 Pull Requests</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://24pullrequests.com/about">https://24pullrequests.com/about</a></p>
<p><strong>Start date:</strong> December 1–24</p>
<p><strong>Challenge:</strong></p>
<p>You’re asked to send 24 pull requests between December 1st and December 24th. The idea is basically to encourage developers to give back to open source with little gifts of code throughout December.</p>
<p><strong>Prizes:</strong></p>
<p>Becoming true OS developer</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/KPfZ12JZ6qkWddbZwsGaw0WoBukdI6OiizGr" alt="Image" width="600" height="400" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/photos/4p0C_OiXNiM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="_blank" title=""&gt;Mariah Ashby on &lt;a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-atos-it-challenge">ATOS IT challenge</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://www.atositchallenge.net/">https://www.atositchallenge.net/</a></p>
<p><strong>Challenge:</strong></p>
<p>Come up with an innovative concept for an application based on Chatbots &amp; AI. The topic for the Atos IT Challenge 2018 is as follows:</p>
<blockquote>
<p>“Devise an innovative use case and build a prototype leveraging Artificial Intelligence and conversational interfaces. Show how this can provide benefit to the people and/or transform business, and how you could further develop your solution and take it to market.”</p>
</blockquote>
<p>You can use devices like the Amazon Echo Dot or Google’s AIY Projects with a Raspberry Pi to provide an interface, a web service or APIs such as API.ai or wit.ai.</p>
<p><strong>Prizes:</strong></p>
<ul>
<li>1st prize: €10,000.</li>
<li>The two finalists (2nd, 3rd prize) get respectively €5,000 and €3,000.</li>
</ul>
<p><strong>Past winners:</strong></p>
<ul>
<li>Quo (Lancaster University in the UK)</li>
<li>Evoto (Loughborough University in the UK)</li>
<li>E-tickets (ENSEIRB-MATMECA in France)</li>
</ul>
<p><img src="https://cdn-media-1.freecodecamp.org/images/wMrTn7KKQSeiNcXA9l4Yspwmjp3KTSWkcFz9" alt="Image" width="600" height="400" loading="lazy">
_[The 3 finalists of 2017 ATOS IT challenge](https://www.atositchallenge.net/edition-2017/" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-mercedes-benz-digital-challenge">Mercedes Benz Digital Challenge</h3>
<p><strong>Link:</strong> <a target="_blank" href="http://www.mercedes-benz-challenge.com/">http://www.mercedes-benz-challenge.com/</a></p>
<p><strong>Challenge:</strong></p>
<p>Develop new and innovative use cases (app or another idea) using Mercedes car emulator, mock APIs, and SDKs. In the Digital Challenge, you get access to 80+ mock APIs, mobile SDKs (iOS and Android), and a car emulator.</p>
<blockquote>
<p>The APIs relate to car chassis, digital keys, points of interest, parking, and so much more. And, if combined with external APIs, the only limit should be contestant’s creativity.</p>
</blockquote>
<p><strong>Prizes</strong>:</p>
<ul>
<li><strong>1st place</strong>: Besides €15K, the winning team will be awarded two tickets to the 2017 Lisbon Web Summit. There they will present their solution alongside Mercedes-Benz.</li>
<li><strong>2nd place</strong>: The runners-up will receive €6K and the chance to continue discussions with the Mercedes-Benz team. The runners-up will potentially continue development beyond the Digital Challenge.</li>
<li><strong>3rd place</strong>: The second runners-up will receive €3K and the chance to continue discussions with the Mercedes-Benz team. The second runners-up will potentially continue development beyond the Digital Challenge.</li>
</ul>
<p><strong>Past winners:</strong></p>
<ol>
<li>First prize <a target="_blank" href="https://community.mercedes-benz-challenge.com/#/projects/59a1ee8e0946a80004a4ceab">Safe drive.</a> Safe_drive is an app that monitors driving aptitude. It can also restore driver’s attention, testing driver’s ability to answer, take safety measures, and alert emergency services.</li>
<li>Second prize <a target="_blank" href="https://community.mercedes-benz-challenge.com/#/projects/5975c3965750e20004918dc4">KarMa</a> KarMa is an Android application designed using Mercedes Benz APIs. It provides a centralized platform, on which, the users can rely upon for all their car needs.</li>
<li>Third prize <a target="_blank" href="https://community.mercedes-benz-challenge.com/#/projects/597b2227a1363c00042f84d6">Virtuo</a> — Virtuo is a game changer in the car rental industry.</li>
</ol>
<h3 id="heading-100000-small-business-app-showdown-2018">$100,000 Small Business App Showdown 2018</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://intuit.promo.eprize.com/showdown2018/">https://intuit.promo.eprizes.com/showdown2018/</a></p>
<p><strong>Challenge:</strong></p>
<p>The challenge is to publish a small business app on Apps.com. To be eligible, apps must be published on the QuickBooks App Store at Apps.com between August 16, 2017, and August 15, 2018.</p>
<p><strong>Prizes:</strong></p>
<p><strong>Each of ten finalists gets</strong>:</p>
<ul>
<li>featured space in a Finalists gallery at QuickBooks Connect exhibition hall,</li>
<li>a QuickBooks Connect pass,</li>
<li>opportunity to demonstrate and pitch an app to a panel of judges and compete for $100,000 Grand prize,</li>
<li>one additional QuickBooks Connect pass for a business partner,</li>
<li>and three nights’ accommodations at a hotel determined by Sponsor in its sole discretion.</li>
</ul>
<p><strong>One grand prize</strong> is a $100,000 check.</p>
<p><strong>Past winners:</strong></p>
<p><a target="_blank" href="https://www.shopvox.com/">ShopVOX</a> . ShopVOX is a comprehensive web-based, easy to use solution for custom manufacturer businesses. It enables such businesses to manage everything in their shop. This includes sales leads, quotes, inventory, and workflow. It can also include production, invoices, staff, customers, vendors and much more.</p>
<h3 id="heading-coding-contest">Coding contest</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://www.codingcontest.org/en/contest/ccc/">https://www.codingcontest.org/en/contest/ccc/</a></p>
<p><strong>Start date:</strong> 27 April 2018</p>
<p><strong>Challenge:</strong></p>
<p>Programmatic tests and puzzles to solve during international competition in many locations. These will also be available online (all of them start at the same time).</p>
<p><strong>Prizes:</strong></p>
<ul>
<li>Prize for the online winner is 50€ Amazon voucher.</li>
<li>Prizes for winners in locations are hosted by particular sponsors — “In locations with a raffle, you have the chance to win various prizes. The better you score in the contest, the more lots you get for the raffle. During the award ceremony, we draw lots and the lucky winners can pick one of the remaining prizes.”</li>
</ul>
<p><strong>Past winners:</strong></p>
<p><a target="_blank" href="https://www.codingcontest.org/en/hall-of-fame/">Winners are divided accordingly to their locations and challenge categories.</a></p>
<h3 id="heading-community-kickstarter-contest-2018">Community Kickstarter Contest 2018</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://www.milestonesys.com/nl/campaigns/milestone-community-kickstarter-contest-2018/">https://www.milestonesys.com/nl/campaigns/milestone-community-kickstarter-contest-2018/</a></p>
<p><strong>Challenge:</strong></p>
<blockquote>
<p>“Contest that invites coders and developers to come up with integration ideas that push the boundaries of video management.”</p>
</blockquote>
<p>Developers have to create the idea built on top of Milestone’s video management software. They must also utilize the Milestone Integration Platform and the Software Development Kit (MIP SDK). The winning solution would be a concept, new functionality to the platform, a widget or code. The winning solution must be commercially viable and technologically possible. Additionally, it must function given the current features of the Milestone platform.</p>
<p><strong>Prizes:</strong></p>
<ul>
<li>$10,000 Cash prizes</li>
<li>$20,000 development &amp; certification resources</li>
<li>$35,000 Marketing &amp; event activities</li>
<li>5 Honorable mentions</li>
</ul>
<p><strong>Past winners:</strong></p>
<p><a target="_blank" href="https://www.milestonesys.com/newsletters/2017/Developer-Community-Update/Milestone-Community-Kickstarter-Contest/">Parking Spotter</a> — an application that helps end-users find the closest available parking spot.</p>
<h3 id="heading-aerolabs-coding-challenge-2017">Aerolab’s Coding Challenge 2017</h3>
<p><strong>Link:</strong> <a target="_blank" href="https://aerolab.co/coding-challenge?medium">https://aerolab.co/coding-challenge?medium</a></p>
<p><strong>Challenge:</strong></p>
<p>You’re asked to build a product grid for a reward program:</p>
<ul>
<li>Aerolab gives you the base UI and the API, and you’re welcome to use it as it is or improve it if you consider it necessary. The final product should be effective and yet visually attractive.</li>
<li>The main goal of your idea should be helping users redeem items through a points-based system.</li>
<li>You are allowed to use any technology you want. Finalists will be ranked according to a set of criteria, with extra points awarded for Innovation, Efficiency, and Visuals.</li>
</ul>
<p><strong>Prizes:</strong></p>
<ul>
<li>The 3rd prize is a gift card for <a target="_blank" href="https://www.bookdepository.com/">Bookdepository</a></li>
<li>The 2nd prize is a pair of JBL headphones</li>
<li>The 1st prize is a Raspberry Pi 3, and a year-long Premium Subscription to <a target="_blank" href="https://zeit.co/">Zeit.co</a></li>
</ul>
<p>If you like these contests, you might also be interested in <a target="_blank" href="https://www.voucherify.io/blog/voucherify-developer-challenge"><strong>Voucherify Developer Challenge</strong></a>. Learn various APIs and win a <a target="_blank" href="https://blog.lessonslearned.org/building-a-more-secure-development-chromebook/">hackable</a> Chromebook!</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0RZv3dGRIBcu9YV5iwUgl6L2a4aXQcYO6fXl" alt="Image" width="600" height="400" loading="lazy"></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
