<?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[ Coding Bootcamps - 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[ Coding Bootcamps - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 24 May 2026 14:16:03 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/coding-bootcamps/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Free Coding Bootcamp – Learn to Code with Class Central + freeCodeCamp ]]>
                </title>
                <description>
                    <![CDATA[ By Jessica Rose In 2021, the Class Central team helped my friend and me teach three cohorts of free programming bootcamps based on freeCodeCamp curricula.  We’ve been joined by over 20,000 learners from around the globe and it’s just been an honor an... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/free-coding-bootcamp-learn-to-code-with-class-central-and-freecodecamp/</link>
                <guid isPermaLink="false">66d45f6533b83c4378a517e6</guid>
                
                    <category>
                        <![CDATA[ bootcamp ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ freeCodeCamp Curriculum ]]>
                    </category>
                
                    <category>
                        <![CDATA[ online courses ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 03 Aug 2022 16:48:08 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/08/pexels-sora-shimazaki-5935794--2-.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jessica Rose</p>
<p>In 2021, the Class Central team helped my friend and me teach three cohorts of free programming bootcamps based on freeCodeCamp curricula. </p>
<p>We’ve been joined by over 20,000 learners from around the globe and it’s just been an honor and a delight to get to learn along with so many learners.</p>
<p><a target="_blank" href="https://twitter.com/hola_soy_milk">Ramón</a> and I had such a nice time teaching that we wanted to come back for another cohort. <strong>Starting September 5th</strong> we’ll be teaching another free 6-week bootcamp built around freeCodeCamp’s <a target="_blank" href="https://www.freecodecamp.org/learn/2022/responsive-web-design/">Web Development</a> and <a target="_blank" href="https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/">JavaScript</a> curricula. </p>
<h2 id="heading-how-does-the-bootcamp-work">How Does the Bootcamp Work?</h2>
<p>Just like the last bootcamps, we’re supporting learners with livestreams looking at the lessons and giving you a chance to ask questions in real time. </p>
<p>Don’t worry if we’re not streaming in line with your schedule – all videos will be available on-demand. We also have some great <a target="_blank" href="https://www.youtube.com/watch?v=XOIDnNA9N7c">guest speakers</a> to add extra context, a community supported forum, and a lively (and well moderated) Discord community.</p>
<p>These courses are designed for part-time remote learners, and most of our learners spent 5-20 hours a week on their bootcamps. While it is possible to take both courses at the same time, we (gently!) suggest doing only one at a time, to help keep the workload comfortable for you as you learn.</p>
<p>We’ve tried to design the learning experience to be lightweight and enjoyable. There’s no tests to get in, no taking attendance, and nothing bad will happen if it takes you longer than 6 weeks to get through the course material. </p>
<p>We're continuing to refine how we teach and how we support our learners. If you wanted to join and learn with us you can sign up for the <a target="_blank" href="https://www.classcentral.com/cohorts/webdev-bootcamp-fall-2022">web dev course here</a> or the <a target="_blank" href="https://www.classcentral.com/cohorts/js-bootcamp-fall-2022">JavaScript course here</a>.</p>
<h2 id="heading-what-will-you-learn">What Will You Learn?</h2>
<p>These courses will cover everything in the freeCodeCamp Responsive Web Design and JavaScript courses. </p>
<p>This means that the Web Development bootcamp will teach:</p>
<ul>
<li>HTML fundamentals: syntax, elements, images, links, lists, forms, buttons.</li>
<li>CSS: selectors, classes, ids, attributes, fonts, colors, sizing, positioning.</li>
<li>Accessible and responsive web design: websites for all and on all devices.</li>
<li>CSS layout tools: positioning elements with CSS Flexbox and CSS grid.</li>
</ul>
<p>And the JavaScript course will cover:</p>
<ul>
<li>Programming fundamentals: syntax, variables, operations, loops, functions.</li>
<li>Data structures: arrays, multidimensional arrays, array methods, objects.</li>
<li>Algorithms: searching, sorting, reversing, merging, splicing, hashing.</li>
<li>Object-oriented programming: methods, constructors, prototypes, inheritance.</li>
<li>Functional programming: terminology, constraints, mapping, filtering.</li>
</ul>
<h2 id="heading-how-is-this-course-different-from-paid-bootcamps">How is this Course Different from Paid Bootcamps?</h2>
<p>Our free bootcamps are designed to support as many learners as possible, so we aren't able to offer as much 1:1 learner support. We do a lot more peer supported learning and are introducing paid mentors to help better support learners this time around. We also aren't able to offer career placement support due to the scale of these courses. </p>
<p>The most exciting difference is that these courses are free. Paid bootcamps can cost $10,000 or more. We've designed these courses so that you can save your money for important things like rent and video games.</p>
<h2 id="heading-how-is-the-bootcamp-free">How is the Bootcamp Free?</h2>
<p>Great question! Ramón and I are volunteering our time because we love to teach. </p>
<p>The Class Central team is supplying the platform and paying for mentors because they're passionate about access to technical education. </p>
<p>And freeCodeCamp is supplying the curriculum for free because that's their mission.</p>
<h2 id="heading-how-can-we-make-the-course-better">How Can We Make the Course Better?</h2>
<p>As an instructor, I'm always excited to learn more about how we can better support learners. I'm especially interested in how we can better support learners whose first language isn't English or who have hardware challenges. </p>
<p>If you do join the course, please do tell us how we can be better working to serve you. We won't be able to do everything everyone needs, but hearing more about how you learn will help us all.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Free Coding Bootcamp Based on freeCodeCamp's Curriculum ]]>
                </title>
                <description>
                    <![CDATA[ By Jessica Rose Now you can join a free part-time, remote coding bootcamp. You'll learn freeCodeCamp's entire Responsive Web Design certification, together with friendly people around the world. 👋 Hi, I’m Jess. A long time ago, I was an educator who... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/free-coding-bootcamp-based-on-freecodecamp/</link>
                <guid isPermaLink="false">66d45f6338f2dc3808b790b1</guid>
                
                    <category>
                        <![CDATA[ bootcamp ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 03 Aug 2021 15:04:13 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/08/webdev-bootcamp-banner.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Jessica Rose</p>
<p>Now you can join a free part-time, remote coding bootcamp. You'll learn freeCodeCamp's entire Responsive Web Design certification, together with friendly people around the world.</p>
<p>👋 Hi, I’m Jess. A long time ago, I was an educator who worked in special education and language education. </p>
<p>When I wanted to get into tech, I latched onto the idea of a programming bootcamp. These were newer concepts at the time: private educational programs promising you the skills to get you into a high-paying job for the low price of… well, far too much money. </p>
<p>So I self-taught my way into the industry but kept a watchful eye on these programs, wondering how existing high quality free resources could be used to offer bootcamp-like support for learners.</p>
<p>Now I'm working with <a target="_blank" href="https://www.classcentral.com/">Class Central</a> to teach a free, part time, remote web development bootcamp based around freeCodeCamp’s <a target="_blank" href="https://www.freecodecamp.org/learn/responsive-web-design/">Responsive Web Design Certification</a>. It starts on August 23rd. If you want to skip right to enrollment, you can <a target="_blank" href="https://www.classcentral.com/study-group/webdev-bootcamp-fall-2021">do so here</a>.</p>
<h2 id="heading-why-were-starting-this-bootcamp">Why We're Starting this Bootcamp</h2>
<p>I get really mad about expensive, exploitative programming bootcamps. Some can cost tens of thousands of dollars for courses of uneven quality. </p>
<p>This is what makes freeCodeCamp so special: they offer self-driven learners a high-quality technical education for free.</p>
<p>But some paid bootcamps do provide some value for learners. For instance, many bootcamp grads report that the live contact with instructors, the set schedule to keep them on track, and the camaraderie within the cohort helped them meet their learning goals. </p>
<p>I started wondering how many of these supports we could add to freeCodeCamp’s curriculum to help as many learners as possible, for free. </p>
<p>I sat down to think about what I would want from a program. It would have to:</p>
<ul>
<li>Be cohort based, for peer support.</li>
<li>Be flexible and part time.</li>
<li>Be low risk, meaning learners who take a break could still come back and succeed.</li>
<li>Offer live instructor contact.</li>
<li>Add value even for learners who don’t choose to study with us.</li>
<li>Be entirely free, of course.</li>
</ul>
<p>As luck would have it, a few months prior, Class Central started running free online <a target="_blank" href="https://www.classcentral.com/report/learn-with-class-central-excel-redis-happiness/">study groups</a> that fit that model. We were on the same page! </p>
<p>So we decided to partner to design a cohort-based bootcamp around freeCodeCamp's <a target="_blank" href="https://www.freecodecamp.org/learn/responsive-web-design/">Responsive Web Design Certification</a>.</p>
<h2 id="heading-bootcamp-support-and-flexibility">Bootcamp Support and Flexibility</h2>
<p>The bootcamp will be cohort-based. This means that learners will all begin at the same time, allowing for them to support each other as they move through the same stages of the course. </p>
<p>They will also share a dedicated forum to learn together, in the open. We expect they will need to spend 10–20 hours a week on coursework to keep up with their cohort. Since it leads to a certification, it’s an intense program.</p>
<p><img src="https://lh3.googleusercontent.com/JRx6jJ19Qm6C59Vgo8jvCLDEeAOpm1--pr_pr1Zuqlhm7ovL_qtRwOP7VHn_mGrSpGzR-vqpu0uEYJUtpJP-0M9yCxXEshVoAQ7hm7uV6xLQehRF3LQMKe9YZQsOYH6fpH8uE-Za" alt="Image" width="1140" height="884" loading="lazy">
<em>freeCodeCamp’s Responsive Web Design Certification</em></p>
<p>While a cohort-based approach and a shared course schedule can help motivate learners and facilitate support, these pressures might negatively impact learners that need flexibility. How can we make sure that those who need to take a break or pause their studies still get support? </p>
<p>By using the freeCodeCamp platform and curriculum, learners can take a break or leave our cohorts and not lose any of their progress. We want learners to succeed, whether they’re learning with us or not.</p>
<h2 id="heading-curriculum-and-live-streams">Curriculum and Live Streams</h2>
<p>This bootcamp will cover basic HTML, the fundamentals of CSS, applied visual design, accessibility, responsible web design, CSS flexbox, and CSS grid. </p>
<p>Our program is a great fit for anyone just getting started with web development. It might also be a great fit for folks who have taken a break and want to return to their studies in a supported way. </p>
<p>While this course will give you the skills needed for many entry-level web design and development roles, many learners go on to study JavaScript before applying for roles.</p>
<p><img src="https://lh3.googleusercontent.com/Y-J-9a9f8Tl6h3JCQ6zgSXVE1GWoYa8gQsaL7mj59f-jnTL_9Lt4nVpkD6hbS82zh5OAVP-WHBekFKVzSx7q_wmkVBa-DDj11j_ULrN5-cAPJALrSpssHNGJjkX0VffCHeGBf7SF" alt="Image" width="1531" height="974" loading="lazy">
<em><a target="_blank" href="https://www.twitch.tv/jesslynnrose">My Twitch channel</a>, where we’ll have our bootcamp stream</em></p>
<p>Traditional bootcamps often involve live contact with instructors. We also wanted to add a live, instructor-led component to replicate this. But we wanted to do it in a way that was openly accessible both to our learners and to freeCodeCamp’s wider community of learners. </p>
<p>To accomplish this, we’ve added weekly live streams every Monday covering key concepts, going over some of the lesson materials, and offering students the chance to ask questions in real time. </p>
<p>To make sure that even learners from outside the bootcamp can benefit, these streaming sessions will be open across both <a target="_blank" href="https://www.twitch.tv/jesslynnrose">Twitch</a> and <a target="_blank" href="https://www.youtube.com/c/ClassCentral">YouTube</a>. Past streaming sessions will also be available on-demand as videos, so that learners can catch up if they’ve missed a session.</p>
<h2 id="heading-the-bootcamp-is-entirely-free">The Bootcamp is Entirely Free</h2>
<p>Most importantly, all of this needs to be free. freeCodeCamp was kind enough to allow us to base our program around their high quality learning materials. Class Central made internal resources and budget available. And I'm working on a reduced day rate to help make sure we can offer this free to learners. </p>
<p>We’ll be exploring some ways to make this program (and future programs?) sustainable, including the possibility of bringing in tech sponsors. But we won’t charge learners for support in getting into the industry. You deserve help and support as you learn.</p>
<p>Want to join us? <a target="_blank" href="https://www.classcentral.com/report/webdev-bootcamp/">You can find more details and how to enroll here</a>. We would love to learn with you.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ A Free 12-Hour Coding Bootcamp to Help You Decide Whether Coding is For You ]]>
                </title>
                <description>
                    <![CDATA[ I created this 12 hour course with the global pandemic job situation in mind. I thought about all the people trying to decide if Software Development was the right career path for them, without the resources to do so. A few years back, I was at a cro... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/free-coding-bootcamp-decide-if-coding-is-for-you/</link>
                <guid isPermaLink="false">66b0a8a65e73cf343a5cc049</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ ania kubow ]]>
                </dc:creator>
                <pubDate>Sun, 17 Jan 2021 19:14:44 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/01/coding-bootcamp.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>I created this 12 hour course with the global pandemic job situation in mind. I thought about all the people trying to decide if Software Development was the right career path for them, without the resources to do so.</p>
<p>A few years back, I was at a cross-roads. I had a comfortable yet dissatisfying job in Finance, and a never ending battle in my head, daring myself to take the plunge to become a Software Developer. </p>
<p>It was a job I had always been fascinated by. I loved the idea of creating apps and websites out of thin air and letting my creativity flow. But I had no idea about the profession itself. Was it something for me? Or would I regret throwing everything away for something I had no real idea about? </p>
<p>After months and months (that turned into years) of second-guessing myself, I finally decided to go for it and join a Bootcamp. It was there, after creating my first JavaScript project, that I realised I was hooked. And to be honest, I was relieved that I had made the right decision! </p>
<p>To save you from hesitating and going back and forth as much as I did, I created this course to help more people hit that moment of realisation faster, and feel less anxiety early on.</p>
<p>In light of my own experience, as well as the pandemic and current global job loss situation, I want to help people make an informed decision as to whether software development is the right career choice for them as an individual (without having to spend a lot of money upfront first).</p>
<p>So without further delay, here are some things to consider.</p>
<h2 id="heading-should-i-do-a-coding-bootcamp">Should I Do a Coding Bootcamp?</h2>
<p>In today's market the most popular software developer bootcamps tend to be 12-16 weeks long and range from 12,000USD to 20,000USD. </p>
<p>Almost all of them have the same structure and teach HTML, CSS, and JavaScript, plus back end languages and libraries/frameworks. This will most likely include a mixture of React, Ruby on Rails, Python, Angular, and Node.js.</p>
<p>In the 12-16 weeks you will go through lessons and complete projects 9-5 every day, 5 days a week in a classroom environment. For me it was a class of roughly 15 students. </p>
<p>In addition to this you will be taught interview techniques, and softer skills that come with the territory of being a web developer. </p>
<p>The overall experience was good, and in my case, the Bootcamp even set up meetings with recruiters for us on a final ‘showcase day’, where we got to present our projects to potential employers.</p>
<p>Now, while my experience was a good one, I did get a scholarship to the program, making my fee considerably less. There were also no refunds given to those who decided that this career path was not for them. </p>
<p>So, if you are thinking about joining a bootcamp and have the means, I would strongly advise doing some preliminary work on HTML, CSS and JavaScript to figure out if this career path is for you. That way you'll be sure that you aren’t about to throw money down the drain. </p>
<p>I would suggest especially focusing on JavaScript, as the JavaScript section was when the drop out rate started to rise. We will discuss why this is further down in the article.</p>
<h2 id="heading-self-taught-developer-vs-paid-bootcamp-grad">Self-taught Developer vs Paid Bootcamp Grad</h2>
<p>There is a lot of discussion about which is better, being self-taught or attending a bootcamp. When I was deciding whether I should pursue a career as a Software Developer, the idea of being self-taught did not cross my mind. I assumed that to get a job in the city I would need to go through a course in order to be successful in getting job interviews. </p>
<p>I cannot stress enough how this is totally not the case! In fact, my colleague who got hired at the same time for the same role as I was completely self taught.</p>
<p>As you are reading this on <a target="_blank" href="http://FreeCodeCamp.org">freeCodeCamp.org</a> I assume you have already found this incredible source of information that has everything you need in order to become a professional software developer. </p>
<p>Applying for a job and telling your potential employer that you have taught yourself how to code also comes with a lot of positives. It shows you are determined and self-motivated, skills that are valued highly in the profession. </p>
<p>This means that even if you missed something that might have been taught at a professional bootcamp, it's ok. Your skill-set could potentially outweigh that knowledge gap, as the employer will be confident you'll be able to make up for it in time.</p>
<h2 id="heading-ok-but-how-do-i-figure-out-if-software-development-is-for-me">Ok, But How Do I Figure Out if Software Development Is for Me?</h2>
<p>To decide if software development is for you, I would suggest getting familiar with the following three languages. Here is a breakdown of each, to give you a basic understanding.</p>
<h3 id="heading-html">HTML</h3>
<p>Hypertext Markup Language, or HTML for short, is the standard mark up language for documents designed to be displayed on a web browser. </p>
<p>In computer text processing, a markup language is a way of annotating a document that is syntactically distinguishable from the text. This means that when the document is processed for display, the markup language is not shown, and is only used to format the text.</p>
<p>Let's look at an example. Here we have a bold tag. The bold tag is an HTML element. It makes the text in between the two tags appear bold when viewed on the browser.</p>
<p>This is what it looks like in HTML:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">b</span>&gt;</span>Hi!<span class="hljs-tag">&lt;/<span class="hljs-name">b</span>&gt;</span>
</code></pre>
<p>And here's what it looks like in the browser:</p>
<p>&lt;!doctype html&gt;</p>


  
  Styling in CSS



    <b>Hi</b>




<p>We can also use markup to tell our browser we want to make text italic, make it red, and so on.</p>
<p>Based on this concept, HTML elements are considered to be the building blocks of HTML pages. Aside from text, we can also construct images and other objects too.</p>
<p>HTML is considered to be a relatively simple language, which is great!</p>
<p>It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScript.</p>
<h3 id="heading-css">CSS</h3>
<p>Cascading Style Sheets, or CSS for short, is a style sheet language used for describing the presentation of a document written in HTML. </p>
<p>CSS is a cornerstone technology of the World Wide Web, alongside HTML and JavaScript. In simple terms, we use it to style up the elements we created with our HTML.</p>
<p>For example take a look at this div below. An HTML Content Division element, or div for short, is a generic container. It has no effect on the content or layout until styled in some way using CSS . </p>
<p>This means that until we give it a <code>height</code> property , <code>width</code> property, and a <code>background-color</code> property, each with a value, we will not be able to see it in our browser.</p>
<pre><code class="lang-css"><span class="hljs-selector-tag">div</span> {
  <span class="hljs-attribute">width</span>: <span class="hljs-number">100px</span>;
  <span class="hljs-attribute">height</span>: <span class="hljs-number">50px</span>;
  <span class="hljs-attribute">background-color</span>: blue;
}
</code></pre>
<p>This is what it looks like in the browser:</p>
<p>&lt;!doctype html&gt;</p>


  
  Styling in CSS



    <div></div>




<p>CSS is an extremely powerful tool when it comes to the presentation of any project.</p>
<h3 id="heading-javascript">JavaScript</h3>
<p>JavaScript, or often JS for short, is a scripting language that enables you to create dynamically updating content. It lets you control multimedia, animate images, and much more. It is not to be confused with Java, which is a completely different language!</p>
<p>We use JavaScript to essentially ‘make stuff happen’ on our static webpages. For example, I can use JavaScript to essentially make Bob look angry here, every time we click on his head.</p>
<p>&lt;!doctype html&gt;</p>


  
  Bob



       <div class="face">
      <div class="eye-container">
        <div class="eye">
          <div class="pupil"></div>
        </div>
        <div class="eye">
          <div class="pupil"></div>
        </div>
      </div>
    </div>

    



<pre><code class="lang-javascript"><span class="hljs-keyword">const</span> bob = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'.face'</span>)

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">angerBob</span>(<span class="hljs-params"></span>) </span>{
    bob.style.backgroundColor = <span class="hljs-string">'red'</span>
}
bob.addEventListener(<span class="hljs-string">'click'</span>, angerBob)
</code></pre>
<p>Now JavaScript can be HARD. You have to think about it in a completely different way than HTML and CSS, and it can take a while to get used to. Once you figure it out, however, it’s like riding a bike. Something will just click and you will be on your way.</p>
<p>This is the point where most people find out if Software Development is indeed something they want to continue with. Some give up, or some people decide they dislike it. </p>
<p>Getting to the point where you feel comfortable with JavaScript takes a lot of practise and repetition, so please do not be disheartened if you don’t get something the first time round. Practise is key!</p>
<h2 id="heading-heres-a-12hr-free-online-coding-bootcamp">Here's a 12HR+ Free Online Coding Bootcamp</h2>
<p>If you are reading this article, you might still be questioning whether you are ready to part with 20,000USD, or if you simply want to get started on your self taught journey. To help you out, I have created an unsponsored online Coding Bootcamp for you.</p>
<p>To be part of the solution, I have made this video for free and it will always be free. So please do give it a like and a Subscribe if you found it useful for you.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/Xm4BObh4MhI" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>Follow me on Youtube for more videos on Software Development:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/undefined" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 7 Things to Consider Before Attending a Coding Bootcamp ]]>
                </title>
                <description>
                    <![CDATA[ By Nehemiah Kivelevitz Coding bootcamps are becoming more and more popular, and for good reason. Just picture yourself earning a six-figure salary, at a great company, with any benefits you can dream up – and all of this only after 3 - 6 months of tr... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/7-things-to-consider-before-attending-a-coding-bootcamp/</link>
                <guid isPermaLink="false">66d46040d7a4e35e3843498d</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 15 Jun 2020 11:10:19 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/06/7-Things-to-Consider-Before-Attending-a-Coding-Bootcamp.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Nehemiah Kivelevitz</p>
<p>Coding bootcamps are becoming more and more popular, and for good reason. Just picture yourself earning a six-figure salary, at a great company, with any benefits you can dream up – and all of this only after 3 - 6 months of training. </p>
<p>The bigger coding bootcamps will tout their graduates landing wonderful jobs at Google, Facebook, Microsoft, Apple, and others. It would be hard to find someone who wouldn’t dream about such a work opportunity. </p>
<p>Unfortunately, the majority of the time this is just a dream and nothing more.</p>
<p>As a graduate of a coding bootcamp myself I’d like to give my two cents on the subject. Many of my friends and acquaintances who are considering attending a coding bootcamp have reached out to me, so I wanted to list some things to consider before pulling the trigger on that $10,000+ investment.</p>
<h2 id="heading-make-sure-you-enjoy-coding">Make sure you enjoy coding</h2>
<p>It should go without saying that before making any big commitment you should make sure it’s a good fit for you. </p>
<p>I'd recommend spending a lot of hours coding on your own before jumping into a bootcamp, as much as you can. If you are wondering how much time you should spend coding before deciding, I would recommend at least 100 hours. </p>
<p>This has two benefits: firstly, it allows you to make sure you <strong>really</strong> enjoy coding. Secondly, you may come to realize you're able to learn on your own.</p>
<p>You can start yourself off with free resources like freeCodeCamp, Code Academy, or countless YouTube videos. </p>
<h2 id="heading-dont-do-it-just-for-the-money">Don’t do it just for the money</h2>
<p>If you’re just after the money, do some research into how much bootcamp graduates are making in their first job out of the bootcamp. </p>
<p>Maybe you have a friend who made a lot of money straight out of their coding bootcamp, but whatever number you have in your head probably does not match the salary most coding bootcamp graduates make. </p>
<p>Course Report released a <a target="_blank" href="https://www.coursereport.com/blog/web-developer-salaries-after-coding-bootcamps">wealth of information</a> on the topic of salaries for coding bootcamp graduates. Graduates from Hack Reactor in San Fransisco earned a median salary of $115,000, whereas graduates from Tech Elevator in Cincinnati were earning only $55,000. According to <a target="_blank" href="https://www.payscale.com/research/US/Location=Cincinnati-OH/Salary">PayScale</a> the average salary in Cincinnati is $64,000.  </p>
<p>And keep in mind that there are other ways to earn a large salary without coding. Some other professions you can get into without having a degree: Project Manager, Designer, Marketer, or Entrepreneur (if you're a self starter). </p>
<h2 id="heading-check-the-job-boards">Check the job boards</h2>
<p>Do your own research regarding junior/entry level dev positions that are out there. The more popular bootcamps and self teaching becomes in the coding community, the fewer jobs there are out there. </p>
<p>Take a look at LinkedIn, Glassdoor, and Indeed, do a search for 'entry level developer' or 'junior developer', and see how many results you get in your area. Then take a look at the description and see if they're expecting someone with 1-2 years experience, or if they are accepting no prior experience as well. </p>
<p>I'm not saying jobs don’t exist, but it’s worthwhile to see what the market looks like. I personally know a lot of people who simply did not find development jobs after months (or more) of searching. If I recall correctly, approximately 50% of my cohort secured developer jobs after graduating our bootcamp. </p>
<h2 id="heading-dont-quit-your-day-job">Don’t quit your day job</h2>
<p>I almost never recommend that someone to quit their job if they already work in tech. It’s possible to advance within your own company into a development position by learning on the side. </p>
<p>This will, of course, depend on your company, but a nice advantage is that you’re still getting a paycheck throughout this process.</p>
<h3 id="heading-how-to-transition-in-your-current-company">How to transition in your current company:</h3>
<ol>
<li>Start learning to code in your spare time</li>
<li>Talk to the developers in your company, including your CTO if you can. Learn what technology stack they are using, and start learning those technologies.</li>
<li>Mention to your befriended developers that you've been learning to code, maybe show them a project you have been working on. </li>
<li>Ask your manager, or a hiring manager in the development team, if they have any projects in the company you could work on. </li>
<li>If step #4 worked out, you have solid footing to move into a full-time development position from there.</li>
</ol>
<p>Although I didn't use these exact steps, I and former co-workers of mine used similar techniques to transition into development from entry level QA positions.</p>
<h2 id="heading-take-success-rates-with-a-grain-of-salt">Take success rates with a grain of salt</h2>
<p>Whatever placement rate the program tells you they have, assume the numbers are being mixed in with other jobs “in the field”, not just developer placement success. </p>
<p>For example, a given coding bootcamp might consider people landing a job in QA, product management, or technical writing a successful placement. </p>
<p>In fact Flatiron School boasts a very impressive <a target="_blank" href="https://flatironschool.com/jobs-reports/">93% employment rate</a>, whereas the bootcamp I attended, had closer to 70% I believe. However, Flatiron School discloses that 19% of those who found employment were not doing development, but some other form of technical disciplines. </p>
<h2 id="heading-your-first-job-wont-be-your-dream-job">Your first job won’t be your dream job</h2>
<p>Your first job will likely not be at Google, Microsoft, or Apple. In fact you might need to take a position at a company you’re really not psyched about just so you can get experience under your belt. </p>
<p>In the Flatiron School cited quoted above, 70% of the graduates took jobs in small (50 or fewer employees) to medium (51-500) sized companies. </p>
<h2 id="heading-consider-cheaper-alternatives">Consider cheaper alternatives</h2>
<p>I mentioned above that there are great free resources to get you started. But even in the paid realm, there are cheaper alternatives. </p>
<p>Udemy has a plethora of resources for learning any area of coding you might want to explore. Udacity, Coursera, Scrimba, and many other platforms have free and paid courses you can take as well. </p>
<h2 id="heading-a-bootcamp-might-still-be-a-good-fit-for-you">A Bootcamp might still be a good fit for you</h2>
<p>I’m not trying to discourage anyone from attending a coding bootcamp. It might be the perfect fit for you if you:</p>
<ul>
<li>have the time to commit</li>
<li>thrive in an in-person framework for learning</li>
<li>have the money to spend</li>
<li>are sure you like coding</li>
<li>have realistic expectations</li>
</ul>
<p>Want to chat more about coding bootcamps or programming? Find me on Twitter: <a target="_blank" href="https://twitter.com/NehemiahKiv">@NehemiahKiv</a>  </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ We Created a Local Free Coding School Using the freeCodeCamp Curriculum. Here's What We Learned. ]]>
                </title>
                <description>
                    <![CDATA[ By Gwendolyn Faraday While this picture shows an in-person classroom, we have moved our school fully remote as a result of the COVID-19 situation. If you want to learn how to code, there are generally three options to choose from: You can teach your... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-we-created-a-free-coding-school-with-the-freecodecamp-curriculum/</link>
                <guid isPermaLink="false">66d45efa7df3a1f32ee7f863</guid>
                
                    <category>
                        <![CDATA[ 2020 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 09 Jun 2020 01:53:17 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9a6b740569d1a4ca2582.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Gwendolyn Faraday</p>
<p><em>While this picture shows an in-person classroom, we have moved our school fully remote as a result of the COVID-19 situation.</em></p>
<p>If you want to learn how to code, there are generally three options to choose from:</p>
<ol>
<li>You can teach yourself and find your own curriculum.</li>
<li>Go to college and get a computer science/IT degree.</li>
<li>Or attend a coding school. Coding schools are hands-on crash courses that are designed to get you up to speed quickly so you can find your first software development job within three months to one year.</li>
</ol>
<p>Option number one is the cheapest, but also the most frustrating and difficult. It's so easy to get stuck along the way and want to give up.</p>
<p>Options two and three could work out well, if you can afford to take time off work (or at least work fewer hours), pay the tuition plus living expenses while you are attending and looking for a job, and still be able to manage your family and personal life. Not everyone is able to do that.</p>
<p>This is why we created <a target="_blank" href="https://freecodeschoolindy.com/">freeCodeSchool Indy</a>. It's a free coding program based off of the freeCodeCamp curriculum where we guide students through part-time coding school programs for three months. </p>
<p>We have two two-hour classes per week - Monday and Wednesday from 6-8 pm, where we teach them everything from HTML basics to JavaScript and Intro to React. </p>
<p>The students are expected to spend at least 6 hours per week studying on their own, and can optionally attend office hours on Sundays that we hold from 1-5 pm. If they complete the first three months, then they are able to attend a second three month program, where they can learn about back-end web development in Node.js.</p>
<p>We started working on this idea over a year ago and it's exciting to be able to say that we completed our first cohort in May. Now we can share what we have learned in this article.</p>
<h2 id="heading-our-goal-in-building-a-free-coding-school">Our Goal in Building a Free Coding School</h2>
<p>Our goal from the beginning was to provide accessible, supportive education for everyone regardless of income or life circumstances (like ability to take time off work). </p>
<p>We are not trying to compete with bootcamps or regular coding schools – they also provide a valuable service for students. We are just trying to have another, more accessible option for people who need a more flexible schedule or cannot afford a paid coding school. </p>
<p>Students will receive guidance and direction from the staff, volunteers, and members of the community throughout the program, and as alumni afterward.</p>
<p>Of course, we want our students to be able to get jobs in the industry if that is their goal. But we do not have the resources to guarantee anything. We just want to provide as much support as we can for the students whether they decide to keep learning on their own, or go to a more formal program, like a coding school or college.</p>
<p>Like I mentioned before, it took us about a year to get everything set up - between finding the space and instructors, as well as deciding on the type of program and curriculum. Here is everything that went into our program preparation.</p>
<h2 id="heading-how-we-planned-the-program">How We Planned the Program</h2>
<p>The first things we did were choose the length of time and goals for the program. We landed on having three-month-long classes where the students would learn the basics of HTML, CSS, and JS, with some extras like Bootstrap and React Components.</p>
<p>If everything went well, our goal was to take a month off and host a level two course for the students who completed the first one. Level two would be another three months where we would build off of what we taught in level one and teach more about JavaScript frameworks and introduce Node.js.</p>
<p>Starting small with just a three month part-time program helped us to be able to learn and make adjustments as we went along. It also gave the students a short, time-based goal to be able to complete the program and have a small portfolio in just a few months.</p>
<p><a target="_blank" href="https://github.com/freecodeschoolindy">Here is our organization on Github</a>. We are in the process of updating and open-sourcing our material as we go along.</p>
<h2 id="heading-adopting-freecodecamps-curriculum">Adopting freeCodeCamp's Curriculum</h2>
<p>Curriculum development is time consuming and expensive. Fortunately, freeCodeCamp already has an awesome free curriculum that we can use and modify with no strings attached.</p>
<p>We took freeCodeCamp's curriculum and followed it as an outline for our lectures. We used the challenges as assignments for students to complete between classes. We also used freeCodeCamp's projects as individual and group assignments along the way. </p>
<p>Throughout the lessons, we also encouraged students to try to do a little bit of extra work to be able to get their freeCodeCamp certifications during, or after the end of, the program.</p>
<h2 id="heading-how-we-found-a-space-to-host-classes">How We Found a Space to Host Classes</h2>
<p>The Indianapolis Public Library generously agreed to host our classes and give us space for office hours as well. The size of the space in the computer lab was limited, so the maximum number of students we could take per class was 22.</p>
<p>We could have used a larger conference room in the library to accommodate a larger class, but then we wouldn't have been able to take students who didn't own a laptop – and that wouldn't have been very accessible for everyone.</p>
<p>We didn't plan to be a remote program, so we had to adjust our classes to use Discord for lectures and all student communication when COVID-19 happened. More on that later.</p>
<h2 id="heading-how-we-chose-technology-tools">How we Chose Technology Tools</h2>
<p>We prepared a Discourse forum (like the freeCodeCamp forum) before the classes started so students could log in, get announcements, ask questions, and post assignments. It also gave the admin staff some privileges to keep track of students and moderate student interactions.</p>
<h2 id="heading-how-we-administered-the-school">How we Administered the School</h2>
<h3 id="heading-finding-students">Finding Students</h3>
<p>When we were planning this program, our worry was that we would not get enough interest and all our planning would be for nothing. The reality was that we had way too much interest and could not accommodate every student. For 22 slots, we had over 140 people who wanted to participate! And that was without doing that much marketing.</p>
<p>It was very exciting to get so much interest in our program, but we also had to decide which students to take and how to choose in a fair way.</p>
<p>We decided to whittle down the field by requiring people to show up for three pre-screening activities where they would complete some basic challenges, like <a target="_blank" href="https://studio.code.org/flappy/1">Code.org's Flappy Game</a>. This let us know which students were dedicated to showing up and got the number of people in line down to around 80. That was still too way too many for the space we had so had to do a random lottery to select the final students.</p>
<h3 id="heading-teaching-students">Teaching Students</h3>
<p>Every student learns differently and has their own personality and preferences. It's unreasonable to expect that we can just lecture the students for an hour and they will all be able to pick up all that information and build the lab without issue. </p>
<p>We decided on a format for lectures where we start off every lecture by asking if anyone has questions – usually we don't get many. Then, we go into the slides, and pause every ~15 minutes to give the students guided 'labs' so they can try out coding on their own with the support of having instructions and still being able to ask questions in the classroom.</p>
<p>We also often leave the last 30+ minutes of the 2-hours classes for the students to be able to work on their class projects.</p>
<h3 id="heading-collecting-assignments">Collecting Assignments</h3>
<p>Some people don't turn in assignments. This could mean they are shy about sharing their code where other students can see, or that they just don't think it's necessary since it's a free coding school after all, and some of their classmates aren't doing it either. </p>
<p>If it's the former, then we encourage them to share assignments with just the staff and let them know that we have all been in their shoes before. </p>
<p>If they aren't turning in assignments because they don't want to... well, there isn't much we can do about that. We try to discourage students from joining the class who don't want to fully participate in the program.</p>
<p>The assignments were originally being turning in on the forum, but we were getting really low engagement on there. Students weren't logging in very often and they were never asking questions there. </p>
<p>Now assignments are turned in via a Discord channel on the server we have for our coding school. </p>
<p>Since we manage our whole program from the same Discord server – including hosting lectures, answering questions, and managing the program – we are seeing an increase in the number of assignments turned in. We are also getting more useful feedback that students are getting from staff and volunteers.</p>
<h3 id="heading-deadlines">Deadlines</h3>
<p>Should we have deadlines for turning in projects? Our opinion right now is no, we shouldn't. </p>
<p>Most of the first cohort got a bit behind and some of them finished the program weeks after the end. Should we punish people who finish, but just not on time? We don't think so and here is why: Everyone learns at their own pace. </p>
<p>If someone finishes in 3 months and another student in 4 months, then they both should be rewarded the same for completing the program. </p>
<p>Someday, we will be able to have rolling admissions for our coding and help students at a more granular level. Until then, the least we can do is stay flexible to accommodate them and let them turn in the rest of the projects whenever they can.</p>
<h3 id="heading-getting-students-to-ask-for-help">Getting Students to Ask for Help</h3>
<p>This has been one of our biggest problems! Some people fall behind and some students are confused but don't want to ask for help. Some students are so confused that they don't even know what kind of help to ask for. </p>
<p>You can't really force people to get help, but you can prompt them. The best way we have found to get them to ask questions is to do short review segments at the beginning of lectures and have scheduled study times where students can pop in and ask questions in a much smaller group setting. </p>
<p>If they prefer to type out the question, they can post it in the student chat or send a private message to one of the organizers.</p>
<p>We can only do so much. If students are lost or confused and don't want to ask for help, there is no way for us to fix that. We try hard to meet them where they are, but they also have to make some effort to come to us.</p>
<h3 id="heading-student-surveys">Student Surveys</h3>
<p>Performing regular student surveys is really helping us to get critical feedback for our program. </p>
<p>Our first time through, we collected information about student goals and background at the beginning, then took a student survey at the half-way point - around 6 weeks in – and then another survey at the end. </p>
<p>While we received a lot of good information, in hindsight, we should have taken more surveys and added a few more questions. This time, we will probably perform surveys to get student feedback every month. Here are some of the questions we are asking:</p>
<ol>
<li>What do you think about the program so far? Is it meeting your expectations?</li>
<li>Do you feel like the lectures are helpful for doing the assignments?</li>
<li>How can we better help you achieve your goals?</li>
<li>Do you have any other feedback for us?</li>
</ol>
<h3 id="heading-dealing-with-drop-outs">Dealing with Drop Outs</h3>
<p>Life happens, things change. We have to understand that students who fully intend to participate might have to drop out due to unavoidable circumstances. </p>
<p>If they communicate with us about the situation, we offer them a spot in the next cohort. </p>
<p>If they simply do not show up or communicate with us, then they are free to reapply in the future, but no spot will be saved for them.</p>
<h2 id="heading-staff-and-volunteers">Staff and Volunteers</h2>
<h3 id="heading-soliciting-volunteers">Soliciting Volunteers</h3>
<p>Without volunteers, it would be quite overwhelming to run a program like this. Here are some of the different types of volunteers you will need to be successful.</p>
<h3 id="heading-responsibilities">Responsibilities:</h3>
<ol>
<li><strong>Organizers –</strong> Yes, we are volunteers too. We are fortunate to have an amazing team of organizers who run the program. This includes myself, two other developers, and a computer lab supervisor from the library who also knows how to code. We chat several times per week in Discord to make sure the program is running smoothly and students are progressing. I think 3-5 is a pretty good number for an organizing team, but we might add more to do specific things, such as 'community manager' or 'volunteer coordinator.'</li>
<li><strong>Presenters –</strong> These people give lectures during class times or special help sessions held on weekends usually. This is the hardest type of volunteering to manage. In our program, the lectures are 1.5-2 hours long and there are only 24 of them, so every single one has to be on point and flow with the rest of the curriculum. Some well-meaning volunteers might not be the right fit for giving lectures for people who are brand new to development. It is <strong>very</strong> important to be clear about what you want them to cover in the lecture, down to the individual points and expected learning outcomes. We also made sure to give volunteers a boilerplate slide deck to work off of so it matched the rest of the curriculum.</li>
<li><strong>Mentors –</strong> Students will not only have coding questions, but also have questions about their careers, networking, etc. Mentorship is great for answering these types of questions. We are currently working on setting up our mentorship program where volunteer mentors will check in with students at least once per week to make sure they are on track and answer any questions they have. One of the reasons for the delay is we have been working on a system for how to handle any complaints of inappropriate language or behavior that might take place when students meet one on one with volunteers.</li>
<li><strong>Lab Assistants –</strong> Lab assistants are there to help out synchronously during live lab sessions, usually with problems running software or debugging. We utilized lab assistants much more when we held in-person classes. With things being remote, we can't see the students' screens so we have had to just have a few people available to answer questions in the chat if people get stuck.</li>
<li><strong>General Helpers –</strong> These people help answer students' questions in the chat and perform other tasks like reviewing projects and portfolios. They are also useful for students to rubber duck off of or for encouragement.</li>
</ol>
<h3 id="heading-volunteer-handbook">Volunteer Handbook</h3>
<p>We made a two-page handbook detailing expectations for volunteer behavior as well as requirements for participation in our program. It's pretty basic right now, but we will be building off of it as we go along I'm sure. </p>
<p>We also give them a link to the <a target="_blank" href="https://www.freecodecamp.org/news/code-of-conduct/">freeCodeCamp code of conduct</a> because it's short, sweet, and to the point: be kind, understanding, etc.</p>
<h3 id="heading-making-sure-staff-has-the-tools-to-succeed">Making Sure Staff has the Tools to Succeed</h3>
<p>We have definitely made a few mistakes, including letting a presenter make his own slides and then having to tell him at the last minute that they needed to change. It didn't go over well. We should have been much clearer with what we wanted from him. </p>
<p>Now, everyone receives a boilerplate slide deck from us as well as a list of topics to cover. We also connect with them several times to go over the progress in their presentation to make sure it's on the right track.</p>
<p>Right now, we have a volunteer handbook, lesson plans and slide decks for teaching, guidelines for mentoring, and google drive folder where we keep all of the documentation for the program, student progress, curriculum materials, and future plans. We recently re-organized all of these materials to make them easier to locate when we need them.</p>
<p>As this program grows, we are going to need to manage more volunteers and even paid staff. We are preparing for this by documenting our processes to make onboarding a little bit smoother each time.</p>
<h3 id="heading-community-partners">Community Partners</h3>
<p>We are currently trying to form community partnerships to get sponsors for funding as well as donations of tech equipment. </p>
<p>Some of our students don't have access to good computers or a fast internet connection. The library provided those things for us when we hosted in person classes, but it's been more difficult now that we are remote. </p>
<p>Also, libraries only have limited hours, and, for students who work multiple jobs or have other family obligations, it can be difficult to make the time to do all of the class work during the day. This is why the sponsorship of community partners is so important to making our program accessible.</p>
<p>In the future, we hope to be able to provide internet access and laptop computers for students who need them.</p>
<h2 id="heading-organizing">Organizing</h2>
<h3 id="heading-marketing">Marketing</h3>
<p>We don't have any marketing experts on our team. Our marketing efforts basically consist of making sure we keep our branding that we agreed upon - colors, verbiage, etc. - consistent and collectively sharing updates on social media.</p>
<p>Fortunately, I have a small following on <a target="_blank" href="https://www.youtube.com/c/FaradayAcademy">YouTube</a>, LinkedIn, and other platforms where I have been able to solicit volunteers and get some community interest in our program. </p>
<p>The public library has also been helpful with reaching out to many different communities and pulling in students that we might never have been able to reach otherwise.</p>
<p>As we grow, we might start expanding our social media reach, but with a limited budget right now, we are just gaining traction organically.</p>
<h3 id="heading-remote-livestreams">Remote Livestreams</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/06/Screen-Shot-2020-06-08-at-10.10.27-PM.png" alt="Image" width="600" height="400" loading="lazy">
<em>Discord screen sharing interface.</em></p>
<p>Hosting remote livestreams has been challenging. Internet connections sometimes drop, plus there is a learning curve for students to be able to use the software.</p>
<p>Discord has been a great option for us, because we can host livestreams inside of the app where all of our chats and everything else are located. This way, we only have to explain how to use one piece of software. </p>
<p>In addition, Discord allows us to screen share with up to 50 people at a time in the voice chat rooms. And that's all for free! We looked into Zoom and some other tools, but we are going to stick with Discord until we need - and can afford - something with more features.</p>
<h3 id="heading-incorporating-amp-funding">Incorporating &amp; Funding</h3>
<p>We wanted to start asking companies and people for funding so we had to incorporate as a non-profit last year. In the US, this process takes about six months. We first had to register as a company with our state and then draw up business documents and apply for non-profit status with the federal government.</p>
<p>At the beginning of this year, we finally got confirmation that we are a 501c3 non-profit organization! Now we are trying to work out ways of getting funding and taking donations. We're going to add a 'donate' button to our website and we are also reaching out to companies to solicit larger donations. There have also been some internal discussions about whether or not crowdfunding is a good idea.</p>
<p>Do you have any suggestions for us in this area? Please leave a comment on this article or reach out to us at contact@freecodeschoolindy.com.</p>
<h2 id="heading-communication-tools">Communication Tools</h2>
<h3 id="heading-forum">Forum</h3>
<p>As previously mentioned, we started off using a Discourse forum, but found that it was hard to maintain and wasn't meeting our needs. People found it hard to use, especially on mobile. We also had trouble getting staff and students to login and check it often enough to make it worth the effort. That is why we got rid of the forum and moved our whole program over to Discord.</p>
<h3 id="heading-discord">Discord</h3>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/06/Screen-Shot-2020-06-04-at-12.43.36-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We now have a Discord server set up for the whole coding school! We use it to host live lectures - we can have up to 50 people in the voice chat and screen share with them at the same time, manage students, organize volunteer activities, coach speakers, answer questions, do group projects, review portfolios, and perform administrative tasks.</p>
<p>Having everything in one place has been the best decision we have ever made. Not only are our costs lower, but it makes the program administration so much easier. Everyone we need to interact with is either already on Discord, or just needs to be invited to Discord :)</p>
<h2 id="heading-graduation">Graduation</h2>
<p>We had grand plans of doing our first in-person graduation for students this year. Unfortunately, due to COVID-19, those plans had to be scrapped. We had to make do with mailing out certificates to students who completed the program and giving everyone a (virtual) pat on the back for finishing.</p>
<p>Now that our classes are virtual, we would love to be able to do something fun for the graduation of our second cohort at the end of August. Do you have any ideas? Let us know if you do.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Putting this program together might have been the hardest thing I've ever done. It's a lot of work but very rewarding. It can be life-changing for students. </p>
<p>It wasn't just me though: There was a team of people helping out and none of this would have happened without them. </p>
<p>I want to give special thanks to <a target="_blank" href="https://thejaredwilcurt.com/">Jared Wilcurt</a>, Casssandra Bautista, Marianne Mckenzie, <a target="_blank" href="https://www.indypl.org/">The Indianapolis Public Library</a>, freeCodeCamp, and all of our wonderful volunteers – all of whom were crucial in putting this program together.</p>
<p>We are working on open-sourcing our curriculum we used – slides, projects, freeCodeCamp challenges, supplementary material, and so on. It's taking a little bit of time to put everything together in a nice format, but be patient, we will get it out to anyone who is interested soon :)</p>
<p>I'm interested in your thoughts. Do you have any ideas for things we can do better next time around? Please reach out to me and let me know.</p>
<p>My Twitter: <a target="_blank" href="https://twitter.com/gwen_faraday">@gwen_faraday</a></p>
<p>My YouTube: <a target="_blank" href="https://www.youtube.com/c/FaradayAcademy">Faraday Academy</a></p>
<p>Program Website: <a target="_blank" href="https://freecodeschoolindy.com/">freecodeschoolindy.com</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I Got a Job Fourteen Days After My Coding Bootcamp ]]>
                </title>
                <description>
                    <![CDATA[ By Randall Kanna Fourteen days after I graduated from my coding bootcamp, I had a job offer. Two weeks after that, I started my first engineering job at a small startup. Here are some of the best tactics and strategies I used. Treat your job search l... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-got-a-job-two-weeks-after-my-coding-bootcamp-2/</link>
                <guid isPermaLink="false">66d460c7868774922c885000</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Interviewing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ jobs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 22 Apr 2020 16:02:06 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9b86740569d1a4ca2c4e.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Randall Kanna</p>
<p><em>Fourteen days after I graduated from my coding bootcamp, I had a job offer. Two weeks after that, I started my first engineering job at a small startup.</em></p>
<p>Here are some of the best tactics and strategies I used.</p>
<h2 id="heading-treat-your-job-search-like-its-your-job">Treat your job search like it’s your job.</h2>
<p>When I graduated from coding boot camp, I was exhausted. It had been the most exhausting three months of my life.</p>
<p>I had spent three months onsite completing the program six days a week.</p>
<p>My boot camp cohort had started with 60 people. Guess how many graduated? 12!</p>
<p>After it was over, a part of me wanted to relax and decompress for a few weeks, but I spent more than $15,000 on tuition and living in San Francisco for three months, so I needed a job — fast. </p>
<p>Also, I wanted to continue the momentum I had gained from graduating. </p>
<p>I read that a lot of previous students let their skills get rusty, and it had taken them 6–12 months (or longer) to find a job.</p>
<p>My solution: I decided I had a job — it was to find a job. From the hours of 9:00 AM to 6:00 PM, I was job hunting. I continually updated my resume, scanned new job listings, reached out to connections, found meetups to attend, and continued to hone my skills.</p>
<p>After 6 PM, I wouldn't respond to recruiter emails or do any prep work for interviews. I used that time to recuperate and prepare for the next day of job hunting and refined my approach and tactics as I went along.</p>
<h2 id="heading-make-yourself-stand-out-in-the-application-process"><strong>Make yourself stand out in the application process</strong></h2>
<p>I applied to dozens of jobs every day. Still, my job search didn't get far until I started customizing the application to the company and sending a personalized email about why I wanted to work there. If you look at AngelList or LinkedIn, you'll see dozens (sometimes hundreds) of applicants applying to one job.</p>
<p>If you can find a way to stand out, you'll drastically increase your odds of getting an interview with the company you want. I created a list of companies that I found on LinkedIn and AngelList that I was interested in. And even if they didn't have a junior developer position posted, I reached out to them with a personalized email.</p>
<p>(Many times companies can fill a position so quickly through referrals that the job will never get posted online.)</p>
<p>Personal connections were also a big advantage. I wrote a customized message to recruiters I connected with on LinkedIn and asked them if they had anything available at the company that might be a good job fit for me.</p>
<h2 id="heading-optimizing-my-linkedin-profile">Optimizing my LinkedIn Profile</h2>
<p>LinkedIn is your online resume. If you optimize your profile by following my tips below, more recruiters will find your LinkedIn profile, and you'll get more interviews.</p>
<p>Even though I hadn't landed a coding job yet, I put "Junior Frontend Developer" as my headline because it meant I would show up in search results when recruiters search for frontend developers to hire.  </p>
<p>I filled out my <a target="_blank" href="https://www.linkedin.com/in/randallkanna/">LinkedIn</a> with my previous jobs to show that even though I didn't have a lot of engineering experience, I worked before and was paid to code in some of my earlier roles. I also made sure to add an accomplishments section to each job that detailed my biggest wins. </p>
<p>And because I didn't have a computer science degree, I added every course I had taken and every coding certification I had. </p>
<p>This demonstrated to companies that I was self-taught and that I was learning on my own time and dedicated to improving my coding skills. </p>
<p>Several companies commented on how robust the course and certifications section was for a boot camp graduate and how it had piqued their interest.</p>
<h2 id="heading-quickly-move-on-if-a-role-or-company-isnt-a-good-fit">Quickly move on if a role or company isn’t a good fit</h2>
<p>I feel like I went through a six-month interview process in two weeks. I quickly went through the interview process for as many companies as possible, went to meetups for networking, and customized my resume constantly to tailor it to each application.</p>
<p>For instance, I knew I would not do well at companies that focused on algorithms and prioritized having a CS background, so I intentionally searched for companies that included mentorships and real-world expertise as part of their criteria. I found blog posts on apprenticeships and mentorships and reached out to the employees who wrote them and asked if they knew if the company was hiring junior engineers.</p>
<p>I also used the interview process to determine if a company would be a good cultural fit.</p>
<p>A few companies had interview processes that were equivalent to Google's. These expected coding boot camp graduates to be able to solve complex algorithms that even a software engineer with a CS degree and years of experience would have struggled to complete.</p>
<p>I knew that if they were expected to have that level of expertise during the interview process it was unlikely that the company had a culture that was welcoming to junior engineers. I moved on.</p>
<p>Some people in my cohort focused on their algorithm skills and building a CS foundation, and it took a little longer to find a job, but they started out with better titles and higher pay.</p>
<h2 id="heading-build-a-coding-portfolio">Build a coding portfolio</h2>
<p>I had a robust portfolio because of the months spent at the boot camp and building apps on my own. During the interviews I shared with prospective companies what I had learned during each project. In my final project, I had focused mostly on frontend so I took that work to companies and detailed exactly what I had worked on.</p>
<p>I was able to sit down with interviewers and discuss my thought process and why I had made the decisions I did.</p>
<p>If you don't have a portfolio, get started on something small and push it up to GitHub. Each time you create a new project, challenge yourself to make it a little more complex than the last. Here are a few great resources on creating a coding portfolio.</p>
<p>Here are a few great resources on creating a portfolio.</p>
<p><a target="_blank" href="https://www.freecodecamp.org/news/portfolio-app-using-react-618814e35843/">Creating a Portfolio with React</a></p>
<p><a target="_blank" href="https://www.freecodecamp.org/news/build-and-deploy-your-own-personal-portfolio-site/">Build and Deploy Your Own Personal Site</a></p>
<p><a target="_blank" href="https://www.freecodecamp.org/news/15-web-developer-portfolios-to-inspire-you-137fb1743cae/">15 Developer Portfolios to Inspire You</a></p>
<p><a target="_blank" href="https://www.freecodecamp.org/news/how-to-build-a-portfolio-website-and-deploy-to-digital-ocean/">How to Build and Deploy Your Portfolio</a> - video course</p>
<h2 id="heading-prove-you-are-eager-to-learn">Prove you are eager to learn</h2>
<p>Two companies I interviewed with told me I could build a project in the framework that I was most comfortable in. But I knew that if I spent a little time learning the framework that they used, I would improve my odds of standing out.</p>
<p>Over one weekend, I taught myself the framework a company used and built a small (and very barely working) app that used it. I was able to discuss the principles of the framework. And even though my app broke during the demo, I got the job.</p>
<h2 id="heading-focus-on-strengths-not-weaknesses">Focus on Strengths not Weaknesses</h2>
<p>No, I had no engineering experience, but I worked on high-profile political campaigns that are fast-moving and demanding. I also did what was needed even if it was outside the role I was hired for.  </p>
<p>Turn the conversation to your strengths and universal skills all companies want in their hires.</p>
<h2 id="heading-youre-not-married-until-theres-a-ring">You're not married until there's a ring</h2>
<p>My coding boot camp gave me a piece of advice that I've never forgotten: <strong>"Until you are married, you keep dancing with other partners."</strong></p>
<p>Translation: Unless you have a signed offer in your hand, don't assume any offer is finalized. Until you have a signed offer from a company in your hands, don't act as you do. Keep interviewing at as many places as you can and do as many coding take-homes as possible.</p>
<p>Not only will this save you from disappointment if you don't get the offer (which is not a good thing) you'll have other offers to negotiate with later. </p>
<h2 id="heading-wrapping-up">Wrapping up</h2>
<p>Going from a tired boot camp graduate to an employed engineer at a great startup in less than a month wasn't easy. But everything I've shared with you will help you avoid the pitfalls and optimize what works. Anyone can get a job in coding if you treat your job search as if it’s your job and keep improving your skills.</p>
<p>If you want more details on how you can standout in your job search, I have a new <a target="_blank" href="https://randallkanna.com/the-standout-developer/">book</a> coming out on June 29th.</p>
<p>Connect with me on <a target="_blank" href="https://twitter.com/RandallKanna">Twitter</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to become a React developer in 5 months ]]>
                </title>
                <description>
                    <![CDATA[ By Per Harald Borgen The story of how I went from non-technical to hired React developer. When I was 29 years old, I transitioned from a hobby coder to a professional front-end developer. This transition is one of the most rewarding things I've ever ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-become-a-react-developer-in-5-months/</link>
                <guid isPermaLink="false">66d85211990ea4c503b968b6</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 16 Oct 2019 06:09:34 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/10/fac-1.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Per Harald Borgen</p>
<h3 id="heading-the-story-of-how-i-went-from-non-technical-to-hired-react-developer">The story of how I went from non-technical to hired React developer.</h3>
<p>When I was 29 years old, I transitioned from a hobby coder to a professional front-end developer. This transition is one of the most rewarding things I've ever done, both personally and professionally.</p>
<p>Personally, it gave me confidence that I could learn whatever I wanted, and professionally, it was pivotal to my career. Today, I'm the co-founder of <a target="_blank" href="https://scrimba.com/">Scrimba</a>, a learning platform that teaches over 100K people to code ever month. I simply couldn't have had this role if I didn't know how to code.</p>
<p>Seeing how important this transition was for me, I want to encourage more people to go down the same path. So in this article, I'll explain exactly how I did it. I'll lay out every single course I took and project I built. Hopefully, this might inspire you to consider doing the same thing.</p>
<p>But be aware that the path I took isn't necessarily the most efficient one, as it involves a coding bootcamp. This can be expensive in itself, and you'll be without a salary for this period.</p>
<blockquote>
<p>At this point, I'll be bold enough to recommend our <a target="_blank" href="https://scrimba.com/g/glearnreact">free intro course on React</a> and the <a target="_blank" href="https://scrimba.com/g/greact">upcoming advanced course</a> for those of you who are looking for the <em>absolutely</em> fastest way possible. The purpose of these is to get to you to a hirable level as soon as possible, and I've personally vetted the curriculum.</p>
</blockquote>
<p>But if you're open to doing a coding bootcamp, please read on.</p>
<h3 id="heading-closing-down-my-previous-startup">Closing down my previous startup</h3>
<p>In late 2014, my two co-founders and I decided to close down our children app startup — Propell — as we had lost our motivation and didn’t see how we could become profitable. It originally started as a side project while I did my economics degree, but soon evolved into a full-time job with four people working in the company at its peak.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/x1tR9W57-E0" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p>While it certainly sucked to give up, it also gave me the opportunity to do what I had been wanting to do since around 2011, which was to properly learn how to code.</p>
<p>Coding had actually been my hobby the last couple of years, as I had taken courses on evenings, weekends and vacations, so I knew a little bit of programming, but I still considered myself non-technical, and far away from any professional level.</p>
<p>The courses that got me started was Udacity’s <a target="_blank" href="https://www.udacity.com/course/intro-to-computer-science--cs101">Intro to Computer Science</a> and <a target="_blank" href="https://codingforentrepreneurs.com/">Coding for Entrepreneurs</a> on Udemy. They’re both great, even though I didn’t finish any of them.</p>
<p>Anyway, continuing learning on my own online wasn’t an option. I wanted an intensive in-person course, as I knew that would increase my chances of being able to pull the transition off. I wanted an environment where I could spend 100% of my time coding alongside others. So I dug through all coding bootcamps I could find and applied to the following:</p>
<ul>
<li><a target="_blank" href="http://devbootcamp.com/">Dev Bootcamp</a></li>
<li><a target="_blank" href="https://devmounta.in/">Dev Mountain</a></li>
<li><a target="_blank" href="http://flatironschool.com/">Flatiron School</a></li>
<li><a target="_blank" href="http://www.foundersandcoders.com/">Founders and Coders</a> (FAC)</li>
<li><a target="_blank" href="http://www.hackership.org/">HackerShip</a></li>
<li><a target="_blank" href="http://www.hackreactor.com/">Hack Reactor</a></li>
<li><a target="_blank" href="http://www.makersquare.com/">MakerSquare</a></li>
<li><a target="_blank" href="https://www.recurse.com/">Recurse Center</a></li>
</ul>
<p>I was accepted to all except Hack Reactor and Recurse Center. If you’re considering doing a coding bootcamp yourself, I’d recommend you to do the same. Apply for all schools that seem interesting to you, and then start filtering. By talking to the people who work there and experiencing the application process, you’ll get a good sense of the quality and philosophy of the school, both of which are highly important.</p>
<blockquote>
<p>A few of the schools seemed too eager to accept me, which made me skeptical. It seemed like collecting tuition from as many as possible was more important than getting the best possible candidates.</p>
</blockquote>
<p>I’ve heard stories of coding bootcamps that are basically scams, so be careful and picky when you choose one!</p>
<p>If you want to be 100% sure that the bootcamp is serious, you should consider one which has a Pay Later option, like <a target="_blank" href="https://vschool.io">V School</a>. Then you're guaranteed that their goals are aligned with yours.</p>
<p>Anyway, after a lot of back and forth, followed by a convincing chat with the brilliant chief of Founders and Coders, Dan Sofer, I finally decided to move to London and join FAC.</p>
<h3 id="heading-the-founders-and-coders-philosophy">The Founders and Coders philosophy</h3>
<p>FAC is not like any other bootcamp. First of all, it’s entirely free. This meant I could afford it without taking a loan, which wouldn’t be the case for the other bootcamps, as their tuition mostly rages between ten and fifteen thousand USD. Secondly, FAC is completely project-based, which I like, as I’ve always learned more from practicing stuff than reading about it.</p>
<p>The lack of tuition means that they can’t hire any full-time teachers, so it’s based on peer to peer learning, where you mostly learn stuff from your classmates and by yourself. You also get help from previous cohorts though, as they stick around and assist new students while working on their own consulting gigs. FAC also has two great mentors Nelson Correia and Ines Teles who provide invaluable help to the students and the organization.</p>
<blockquote>
<p>All in all, this creates an awesome environment — a community of knowledge-hungry people eager to share their skills with each other.</p>
</blockquote>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/fac-2.jpeg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>However, this isn’t the <em>easiest</em> way to learn how to code. You can’t just raise your hand and get the answer from a teacher every time you’re stuck, which I would assume you can do at a 10–15K USD bootcamp. At FAC you have to investigate it on your own and together with your peers, which requires a lot of self-discipline.</p>
<p>But this also has a huge upside; you’ll greatly sharpen your problem-solving skills and learn how to teach yourself whatever you want. This is one of the most important skills you can have as a developer.</p>
<blockquote>
<p>So if you get through FAC, you’ll never be afraid of tackling a technical challenge again. Plus, you’ll get a lot of new friends.</p>
</blockquote>
<p>Going through FAC will most likely change your life for the better.</p>
<h3 id="heading-part-1-eight-projects">Part 1 — Eight projects</h3>
<p>On day 1 the class was grouped into teams for four. These teams were to consist of the next two months. Every Monday we’d get a new project which we needed to build and present for the class the following Friday. Within the teams, we would rotate between four different roles — dev ops, librarian, tester and repo owner — to make sure that every member learned all parts of building a web app.</p>
<p>In addition to this, we had a coding challenge every morning, where we practiced core Javascript skills.</p>
<p>All was done open source, so I’ve linked to all our weekly projects below. Looking back at the projects, I can’t say directly I’m proud of them. But I’m certainly proud of all I learned while building them.</p>
<p>I’ve also noted the technologies we learned during the respective weeks. Plus, the weekly assignments are described more closely in <a target="_blank" href="https://www.gitbook.com/book/foundersandcoders/fac4/details">this gitbook</a>, for those interested in knowing more.</p>
<ul>
<li><a target="_blank" href="https://github.com/foundry-matrix/fmblog">Week 1: Team blog</a> — HTML/CSS, jQuery, Github Pages</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/The-Guardian">Week 2: The Guardian API</a> — Web API’s, Ajax</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/socialfeed">Week 3: Social wall</a> — Servers, Node.js</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/socialfeed">Week 4: InstagramFeed</a> — Heroku, MongoDB</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/StopGoContinue">Week 5: StopGoContinue</a> — D3.js</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/NoteTakingApp">Week6: Notes</a> — React.js</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/ServerBlog">Week7: Blog</a> — Server side rendering, cookies</li>
<li><a target="_blank" href="https://github.com/foundry-matrix/hapi_blog">Week8: Blog</a>— Hapi.js</li>
</ul>
<p>The projects grew steadily in their level of complexity, so every week involved learning new technologies. I normally spent the weekends reading up and doing tutorials on the subjects to be prepared for the week.</p>
<p>During the weekdays I think I averaged at around 10 hours per day coding or learning about coding, which means I totaled at a bit under 1000 hours during my four months in London.</p>
<h3 id="heading-finding-my-react-niche">Finding my React niche</h3>
<p>As you can see, we started using React.js in week 6. I immediately enjoyed working with it and liked the thought of being able to develop native mobile apps as well (React Native). So I decided to continue using React as much as possible throughout the course.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/react.png" alt="Image" width="600" height="400" loading="lazy">
<em>How you wrote React.js back in 2015.</em></p>
<p>This was also a strategic choice. If I were to get to a professional level, I knew I needed to narrow my focus down to fewer subjects, rather than spreading my efforts out on many different ones. React became a natural choice to double down on. This strategy certainly paid off, which I’ll tell you about further down.</p>
<p>The ninth project week involved building our own product, as FAC also wants to inspire the students to make their own stuff as well. My team built a small tool for analyzing your iOS app’s keyword called <a target="_blank" href="http://www.keywordking.co/">KeywordKing</a>, which you can <a target="_blank" href="https://medium.com/@oslokommuneper/the-one-week-startup-28b5efadc734#.jxknx1g3r">read about here.</a></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/ketworrd.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-part-2-building-mvps-for-clients">Part 2 —Building MVP’s for clients</h3>
<p>This week also prepped us for the second part of the course, which involved building MVPs for external clients. Throughout the first eight weeks, we had been pitched weekly by clients who needed developers to prototype their ideas.</p>
<p>It works like this: for £500, a team of 3–5 students would build a prototype in a week. For us, this was a way to learn how to work with clients plus growing our coding skills further, while also making a little bit of money. For the client, it was a chance to get a cheap MVP built fast. And without risking any money, as they would only be invoiced if they were happy with the result, which most clients were (but not all).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/troll.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>During these weeks, I built the following projects together with various other students:</p>
<ul>
<li><a target="_blank" href="https://github.com/the-knights-of-the-reactangular-table/sir_predictalot/tree/development">Sir Predictalot</a> — a prototype for a Tinder’ish news predictions app</li>
<li><a target="_blank" href="https://github.com/Troll-Olav/Puzzle">Troll-Olav</a> — a kids puzzle</li>
<li><a target="_blank" href="https://github.com/people-under-the-stairs/midnight-marauders">RateMyStuff</a> — a social network based around image rating</li>
<li><a target="_blank" href="https://github.com/pajoa/pajoa-the-chimp">Squish</a> — a reinforced learning tool for students</li>
</ul>
<p>I also did a one-week machine learning stunt, which I’ve <a target="_blank" href="https://blog.skcript.com/machine-learning-in-a-week-a0da25d59850">written about here</a>, in addition to making a couple of tutorial videos on the subject (sorry about the awful audio).</p>
<p>At this point, I had spent around four months in London, and it was about time to move back to Norway, where the rest of my life existed.</p>
<h3 id="heading-back-in-norway">Back in Norway</h3>
<p>Back home my plan was to get into professional coding as soon as possible, as I needed to practice my freshly acquired knowledge to make it stick.</p>
<p>I tried to get some consulting work, but it was tougher than I thought to get it up and running. I also suspected that my learning curve would be steeper if I got a job. Jumping into a foreign code base built by professionals seemed like a tough challenge.</p>
<p>So I sent out three job applications to companies who needed Javascript developers. Two of these invited me to an interview.</p>
<p>I didn’t get the first one. Not sure why, but I suspect they wanted a more senior developer. The next one sent me through two interview rounds and then gave me a coding task.</p>
<h3 id="heading-networking-to-find-the-perfect-job">Networking to find the perfect job</h3>
<p>About the same time though, I attended a startup event arranged by an entrepreneur I knew a little bit. He was the CTO of a well-funded startup named <a target="_blank" href="https://xeneta.com/">Xeneta</a>, which I had been a fan of for a couple of years. According to their website, they were looking for front-end developers — and they actually mentioned React.js as one of the technologies they used.</p>
<p>During the evening he told me that they had just rewritten their entire front end in React.js and were looking for a new developer who knew the library; this seemed too good to be true. I told him I’d be interested in the job and we decided to chat up later on.</p>
<p>The following week I went to the first interview, and then two more interview rounds. Then they sent me a coding challenge.</p>
<h3 id="heading-doing-the-hiring-challenge">Doing the hiring challenge</h3>
<p>I can't share the exact challenge with you, but I think I did few things right which one can learn from.</p>
<p>First of all, I spent much more time than what was expected. I was given the task at the end of a week and was told that I didn't need to spend a lot of time on it. But doing it quickly wasn't an option for me. So I asked if I could deliver it over the weekend, which they were fine with. Then I spent the entire weekend working on it. I went over every line of code making sure it was DRY, easy to read and free of sloppiness.</p>
<p>My solution also contained a bunch of tests, even though it wasn't a part of the spec, and even though I think writing tests is very boring.</p>
<p>Finally, I asked some of my previous classmates from FAC to have a quick look at my solution, and this also helped. This might be a bit sneaky, but I was determined to deliver a perfect solution.</p>
<p>Later, as I've been on the other side of the table, I've often seen applicants deliver solutions with sloppy code. Don't do this!</p>
<h3 id="heading-getting-the-offer">Getting the offer</h3>
<p>On June 26th — exactly five months after my first day at Founders and Coders — we came to an agreement, and I was hired as a front end developer.</p>
<p>It was truly an awesome job in a startup with extremely skilled people tackling a big problem in a huge market. I was challenged every single day. So I don’t regret a second that I did the career switch.</p>
<p>After working there for a bit over a year, my previous co-founder Sindre Aarsæther showed me an early prototype of Scrimba and asked me if I'd be interested in joining him building a company around it. I instantly loved the technology and jumped on the opportunity. And I owe it all to actually learning how to code and becoming a professional developer. Without that experience, I couldn't have become a co-founder of Scrimba.</p>
<p>Since then, we've grown the platform from nothing to over 100K monthly active users. It's been a fantastic journey, and people tell us every day how much it helps them to learn to code.</p>
<p>If you're interested in becoming a React developer yourself, please sign check out our <a target="_blank" href="https://scrimba.com/g/glearnreact">intro course here</a> upcoming <a target="_blank" href="https://scrimba.com/g/greact">advanced course here</a>, and we'll do our best to help you.</p>
<p>Good luck :)</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The Coding Bootcamp Primer - A free web development course that prepares you to enroll at any bootcamp ]]>
                </title>
                <description>
                    <![CDATA[ By Per Harald Borgen A free 4-hour course that'll teach you enough web development to be ready for any coding bootcamp. Today, I'm  happy to announce that we're launching a course for people who are considering embarking upon a web development educat... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-ultimate-bootcamp-primer/</link>
                <guid isPermaLink="false">66d85259b6622019db60521a</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 14 Oct 2019 12:44:41 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/10/the-coding-bootcamp-primer--4--1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Per Harald Borgen</p>
<h2 id="heading-a-free-4-hour-course-thatll-teach-you-enough-web-development-to-be-ready-for-any-coding-bootcamp">A free 4-hour course that'll teach you enough web development to be ready for any coding bootcamp.</h2>
<p>Today, I'm  happy to announce that we're launching a course for people who are considering embarking upon a web development education. </p>
<p>It's called <a target="_blank" href="https://scrimba.com/g/gbootcampprimer">The Coding Bootcamp primer</a> (&lt;– link), and it'll teach you the most fundamental building blocks of building websites: HTML, CSS and Javascript. You'll also learn how to set up your computer, debug your code, search for solutions, solve problems and more. By the end, you should be able to build a styled page, such as a calculator, name generator or a personal page.</p>
<p>The lessons have been created by V School, a top-notch coding bootcamp located in Salt Lake City, Utah. It's actually the exact course that they send their students through before starting on their immersive bootcamp. </p>
<p>It's also a great resource for people who aren't necessarily planning to enroll in a coding bootcamp, but who are curious about web development in general. It is designed with the general public in my mind, as we believe everyone can benefit from learning basics coding skills.</p>
<p>Now, let's have a look at the underlying pedagogical philosophy, as well as how the course is structured.</p>
<h1 id="heading-v-schools-learning-philosophy">V School's Learning Philosophy</h1>
<p>Over the years of teaching V School has developed a learning philosophy that can be best described with  <code>The easy way is the hard way.</code> It means that solving problems and challenges is the best way to learn. Naturally, this course will have <em>a lot</em> of hands-on practice</p>
<p>Most of the tutorials will be on Scrimba, but there will also be links to a few external resources, like assignments and how-to videos for a handful of topics.</p>
<p>It is recommended that you to don't binge-watch the course. Make sure you take frequent breaks, sleep on the problems and take your time.</p>
<h3 id="heading-tips-for-the-students-of-these-course">Tips for the students of these course:</h3>
<ul>
<li>Do rewatch screencasts if you're not sure about something. It doesn't mean you're bad at learning or remembering.</li>
<li>Try to use your knowledge and it's ok to stray away to try something out and come back to the course.</li>
<li>Learning shouldn't be lonely. Find help by searching online, asking a friend or a classmate, reaching out to an instructor.</li>
</ul>
<p>V School has also been generous enough to create <a target="_blank" href="https://join.slack.com/t/v-school-module-0/shared_invite/enQtNjYxNTk5OTIyNTk1LTBkYmJiYTVkYWFmZDhkZjA0N2FlOWVlNmY4MTA2NTQyNzE3ZWZjMDdhNjZmNmFlZWUyMWQ0N2NjZGY2MjVlYTM">a dedicated slack channel</a> for you to ask for help and help others. Please join and let's build a community around this course!</p>
<h1 id="heading-how-to-use-scrimba">How to Use Scrimba</h1>
<p>It's best to see something once than a hundred times to read about. If you're not familiar with how Scrimba works, <a target="_blank" href="https://scrimba.com/p/pG66Msa/cQ942nhN?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">watch our screencast</a>, where Bob Ziroll, Director of Education at V School walks you through it.</p>
<h1 id="heading-external-link-computer-setup">External Link - Computer Setup</h1>
<p>Before we start with the course, we need to have some your computer set up. Feel free to <a target="_blank" href="https://scrimba.com/p/pG66Msa/c9PnvGCp?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">jump in our screencast</a> to learn how to do that.</p>
<h1 id="heading-external-link-using-vs-code">External Link - Using VS Code</h1>
<p>At some point in the course, you will need to be able to write some of the code in an editor offline. We normally recommend VSCode, but really any code editor will do. If you'd like to follow the installation steps, you can <a target="_blank" href="https://scrimba.com/p/pG66Msa/cLrn2zH8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">find them in our video.</a></p>
<h1 id="heading-preview-the-v-school-pre-course-project">Preview: the V School Pre-course Project</h1>
<p>This course is free and open to anyone. It also has a capstone project in the end, that can double as V School's pre-course project for anybody interested in applying.</p>
<p>So if you're thinking about joining V School or are on the fence about bootcamps, in general, this course is also for you.</p>
<h1 id="heading-introduction-to-html">Introduction to HTML</h1>
<p><img src="https://thepracticaldev.s3.amazonaws.com/i/67iys40ry16p4acqtoor.png" alt="Nate Jensen" width="1798" height="1012" loading="lazy"></p>
<p>In this screencast, Nate Jensen, V School's instructor, is going to introduce us to the basic HTML concepts: boilerplate, tags and HTML syntax.</p>
<h1 id="heading-html-elements">HTML Elements</h1>
<p>Continuing on the previous chapter's intro, next up are the most common HTML elements, like <code>&lt;h1&gt;</code> to <code>&lt;h6&gt;</code> tags, <code>&lt;span&gt;</code>, <code>&lt;div&gt;</code>, <code>&lt;p&gt;</code>, etc.</p>
<h1 id="heading-html-attributes">HTML Attributes</h1>
<p>In this chapter, Nate will cover HTML attributes. Some HTML elements, like a tag for an image <code>&lt;img&gt;</code> has source attribute <code>src</code>. An anchor tag <code>&lt;a&gt;</code> has <code>href</code>. Attributes add extra functionality to our elements.</p>
<h1 id="heading-assignment-silly-cia-part-1">Assignment - Silly CIA part 1</h1>
<p>This is <a target="_blank" href="https://scrimba.com/p/pG66Msa/cmkeLgAM?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">our first assignment</a> and you should attempt to complete it yourself without cutting corners such as copypasting code, even if it might take you quite some time to complete it. Having said that, if you get stuck always reach out to other people either on Scrimba, or the V School's coursework page.</p>
<h1 id="heading-html5-semantic-tags">HTML5 Semantic Tags</h1>
<p>In this chapter, Nate covers what semantic tags are and why there were introduced in HTML5.</p>
<h1 id="heading-css-intro-inline-style">CSS Intro (inline-style)</h1>
<p><img src="https://thepracticaldev.s3.amazonaws.com/i/xjvkal2lunlefdhriqou.png" alt="Grant Wilhelm" width="1810" height="1010" loading="lazy"></p>
<p>In this cast, Grant Wilhelm, V School's instructor shows us how we can add styling to HTML elements by writing them inline using <code>style</code> attribute.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">"color:red;font-size:55px"</span>&gt;</span>Welcome to CSS!<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<h1 id="heading-css-selectors">CSS Selectors</h1>
<p>In this part, Grant shows us how to link a separate stylesheet with <code>link</code> tag.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"index.css"</span> /&gt;</span>
</code></pre>
<p>And then Grant introduces styling with selectors as a better alternative to inline styling from the previous chapter.</p>
<p>For example, to target an <code>&lt;h1&gt;</code> tag in our <code>styles.css</code> file we can write:</p>
<pre><code class="lang-css"><span class="hljs-selector-tag">h1</span> {
  <span class="hljs-attribute">color</span>: Blue;
  <span class="hljs-attribute">font-size</span>: <span class="hljs-number">55px</span>;
}
</code></pre>
<h1 id="heading-assignment-silly-cia-part-2">Assignment - Silly CIA part 2</h1>
<p>This is <a target="_blank" href="https://coursework.vschool.io/silly-cia-part-2/">our next self-driven assignment</a> and similar to the first one, you're highly advised to not cut corners and reach out if stuck for too long.</p>
<h1 id="heading-assignment-css-wars-the-selector-awakens">Assignment - CSS Wars: The Selector Awakens</h1>
<p>Congratulations on completing the previous assignment! Nothing pushes your skills further than a good challenge. Keep it up and dive straight into <a target="_blank" href="https://coursework.vschool.io/css-wars-the-selector-awakens/">your next assignment.</a></p>
<h1 id="heading-css-colors-and-fonts">CSS Colors and Fonts</h1>
<p>Welcome to your next CSS cast, we hope you've enjoyed your challenge.</p>
<p>In this chapter, we will learn that to define colors in CSS, we have quite a few options, apart from just writing the color's name.</p>
<p>We can use hexadecimal (hex, for short) notation.</p>
<pre><code class="lang-css"><span class="hljs-selector-tag">body</span> {
  <span class="hljs-attribute">background-color</span>: <span class="hljs-number">#a4f6b9</span>;
}
</code></pre>
<p>Specifying via red, green, blue values with <code>rgb</code>.</p>
<pre><code class="lang-css"><span class="hljs-selector-class">.header</span> {
  <span class="hljs-attribute">background-color</span>: <span class="hljs-built_in">rgb</span>(<span class="hljs-number">55</span>, <span class="hljs-number">155</span>, <span class="hljs-number">255</span>);
}
</code></pre>
<p>Or with <code>rgba</code> where <code>a</code> is an alpha parameter that is a number between 0.0, fully transparent, and 1.0, fully opaque.</p>
<pre><code class="lang-css"><span class="hljs-selector-class">.header</span> {
  <span class="hljs-attribute">background-color</span>: <span class="hljs-built_in">rgba</span>(<span class="hljs-number">55</span>, <span class="hljs-number">155</span>, <span class="hljs-number">255</span>, <span class="hljs-number">0.5</span>);
}
</code></pre>
<h1 id="heading-css-display-property">CSS Display Property</h1>
<p>When using HTML we're going to be talking about <em>block</em> elements that take up the full width of the page, and <em>inline</em> elements that only take up as much as they need.</p>
<p>Oftentimes, we might want to override the defaults. For example, if we wish to display a few images one under the other, rather than side by side.</p>
<p>We can do this default by using <code>display</code> property.</p>
<pre><code class="lang-css"><span class="hljs-comment">/* img by default is an inline element */</span>
<span class="hljs-selector-tag">img</span> {
  <span class="hljs-attribute">display</span>: block;
  <span class="hljs-attribute">height</span>: <span class="hljs-number">175px</span>;
  <span class="hljs-attribute">width</span>: <span class="hljs-number">175px</span>;
}
</code></pre>
<h1 id="heading-sign-up-for-our-email-list">Sign up for our Email List</h1>
<p>This might be a perfect time to interject and offer to stay in touch and get the latest updates from V School. <a target="_blank" href="https://scrimba.com/p/pG66Msa/czNJ4vue?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">You can sign up in our screencast.</a></p>
<h1 id="heading-assignment-newsies">Assignment - Newsies</h1>
<p>Welcome to <a target="_blank" href="https://coursework.vschool.io/block-vs-inline-newsies/">your next challenge</a>! If you're getting stuck, make sure that you go back and rewatch some of the previous screencasts, otherwise, you've got this!</p>
<h1 id="heading-css-box-model">CSS Box Model</h1>
<p>In this screencast, Grant will introduce CSS box model.</p>
<p><img src="https://thepracticaldev.s3.amazonaws.com/i/lvhmh5akyu2wc3511sxo.png" alt="CSS Box Model" width="814" height="632" loading="lazy"></p>
<h1 id="heading-assignment-color-grid-from-scratch">Assignment - Color Grid From Scratch</h1>
<p>It's time for <a target="_blank" href="https://coursework.vschool.io/color-grid-from-scratch/">our new assignment</a> and when you're done we'll be looking forward to continuing with the course in the next lesson.</p>
<h1 id="heading-css-layout-and-positioning">CSS Layout and Positioning</h1>
<p>In this screencast, Grant will help us to learn the principles of layout and positioning with CSS. For example, how to overlap elements, make some of them sticky on the page, etc.</p>
<h1 id="heading-assignment-css-flags">Assignment - CSS Flags</h1>
<p>In <a target="_blank" href="https://coursework.vschool.io/css-flags/">the next assignment</a> you will be asked to build some countries' flags with pure CSS! When in doubt, fall back and rewatch some of the casts from before and see you in the next assignment.</p>
<h1 id="heading-assignment-design-a-blog">Assignment - Design a Blog</h1>
<p><a target="_blank" href="https://coursework.vschool.io/design-a-blog/">Our next assignment</a> will be slightly different, as you can very easily personalise it and have it as a basis for your actual real-life blog in the future!</p>
<h1 id="heading-external-link-debugging-intro">External Link - Debugging Intro</h1>
<p>The skill of debugging is extraordinarily important in web development. What are bugs and some ways on how to find them <a target="_blank" href="https://scrimba.com/p/pG66Msa/cR4EdJhM?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">in our screencast.</a></p>
<h1 id="heading-external-link-chrome-dev-tools">External Link - Chrome Dev Tools</h1>
<p>The Developer Tools in your browser of choice will be one of the most important tools you will need to learn. Check out <a target="_blank" href="https://scrimba.com/p/pG66Msa/cK2MdPAP?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">our primer on the topic.</a></p>
<h1 id="heading-external-link-using-google">External Link - Using Google</h1>
<p>We're quite sure that you are very familiar with using Google to search for things. We've collected <a target="_blank" href="https://scrimba.com/p/pG66Msa/cy6grKhd?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">a few tips on how to search efficiently</a>, so do check it out.</p>
<h1 id="heading-javascript-data-types">Javascript Data Types</h1>
<p>Hello and welcome to the Javascript part of the course, where our old friend Nate, will help us write our first lines of Javascript. Nate will introduce <em>primitive</em> and <em>complex</em> data types.</p>
<p>Primitives are:</p>
<ul>
<li>strings, e.g <code>"hello"</code></li>
<li>numbers, e.g <code>2</code>, <code>3</code></li>
<li>booleans, e.g <code>true</code> or <code>false</code></li>
</ul>
<p>Complex are combinations of primitives:</p>
<ul>
<li>array, e.g <code>[1, 2, true, "hello"]</code></li>
<li>objects, e.g <code>{likes: "travel", countries_visited: 21, has_passport: true}</code></li>
</ul>
<h1 id="heading-assignment-grocery-store-js">Assignment - Grocery Store JS</h1>
<p>Congrats! You have reached <a target="_blank" href="https://scrimba.com/p/pG66Msa/cGe23Wcv?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">your first Javascript assignment</a>. Do reach out if you get stuck and, more importantly, have fun!</p>
<h1 id="heading-javascript-arrays">Javascript Arrays</h1>
<p>Welcome back to our next cast. Nate dives a little deeper into arrays and shows how to access various elements of an array and determine its length.</p>
<pre><code class="lang-js"><span class="hljs-comment">//              0        1       2        3         4</span>
<span class="hljs-keyword">var</span> colors = [<span class="hljs-string">'blue'</span>, <span class="hljs-string">'green'</span>, <span class="hljs-string">'red'</span>, <span class="hljs-string">'yellow'</span>, <span class="hljs-string">'purple'</span>];

<span class="hljs-built_in">console</span>.log(colors[<span class="hljs-number">1</span>]); <span class="hljs-comment">// green</span>
<span class="hljs-built_in">console</span>.log(colors.length); <span class="hljs-comment">// 5</span>
</code></pre>
<h1 id="heading-javascript-conditionals">Javascript Conditionals</h1>
<p>In this screencast, Nate will help us learn how to add logic to our Javascript programs.</p>
<p>Often, we would like to do something only if something else is in the right place. For example, if the user's birthday is on the day they are looking at your page, show them a confetti animation :)</p>
<p>For that, we would use <em>conditionals</em>.</p>
<p>Nate will walk us through all the <code>if</code>, <code>else if</code> and <code>else</code>, how they are used and more.</p>
<h1 id="heading-assignment-if-statement-olympics">Assignment - If Statement Olympics</h1>
<p>Great, time to practice those if-statements with <a target="_blank" href="https://scrimba.com/p/pG66Msa/cWQe8duV?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">the next JS assignment</a></p>
<h1 id="heading-javascript-loops">Javascript Loops</h1>
<p>Another common thing in programming is to repeat a certain operation for a number of times. You don't have to copy-paste code for the number of times you need it done, because there are <em>loops</em> for that.</p>
<pre><code class="lang-js"><span class="hljs-keyword">for</span> (i = <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">100</span>; i++) {
  <span class="hljs-comment">// your code you wish to repeat</span>
}
</code></pre>
<p>Nate will let teach us all about <code>for</code> loops, and even how you can supercharge them with <em>conditionals</em> from the previous lesson.</p>
<h1 id="heading-assignment-evenodd-looping">Assignment - Even/Odd Looping</h1>
<p>Nice one! <a target="_blank" href="https://scrimba.com/p/pG66Msa/cryP79CM?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">Let's now practice loops.</a> Be sure to not cut corners and seek help if stuck. Good luck and have fun.</p>
<h1 id="heading-assignment-loops-and-arrays-practice">Assignment - Loops And Arrays Practice</h1>
<p>All right! Let's now do a very common programming task and <a target="_blank" href="https://coursework.vschool.io/loops-and-arrays-practice/">practice loops and arrays together.</a></p>
<h1 id="heading-javascript-functions-part-1">Javascript Functions part 1</h1>
<p>Remember how we talked about not having to copy-paste code in the chapter about loops? Well, a programming term for that is <em>DRY</em>, Don't Repeat Yourself.</p>
<p><em>Functions</em> are used when we have a piece of code that we would like to reuse, in multiple places.</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">sum</span>(<span class="hljs-params">x, y</span>) </span>{
  <span class="hljs-built_in">console</span>.log(x + y);
}
</code></pre>
<h1 id="heading-javascript-functions-part-2">Javascript Functions part 2</h1>
<p>Great, now when we know how to make a function, how do we use it? A term for using a function is <em>calling</em> a function.</p>
<p>We can call the function from the previous chapter</p>
<pre><code class="lang-js">sum(<span class="hljs-number">2</span>, <span class="hljs-number">2</span>); <span class="hljs-comment">//displays 4</span>
</code></pre>
<p>More on calling, how to store results of a function and how to combine them with loops, <a target="_blank" href="https://scrimba.com/p/pG66Msa/cmkJgRTd?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">in this chapter's screencast</a> with Nate.</p>
<h1 id="heading-assignment-functions-exercise">Assignment - Functions Exercise</h1>
<p>Welcome back! <a target="_blank" href="https://coursework.vschool.io/exercise-functions/">We now have an exercise to practice functions.</a> Reach out if you're stuck, have fun and good luck.</p>
<h1 id="heading-javascript-objects-part-1">Javascript Objects Part 1</h1>
<p>It's now time to cover Javascript objects. If you didn't see the point of them after the chapter on data structures, we will cover them in-depth now.</p>
<p>Objects are for those cases when we need to describe something in depth. Objects have <em>properties</em>. For example, personal details of your friends and relatives might be stored in an object, so you know when to send them a birthday card.</p>
<pre><code class="lang-js"><span class="hljs-comment">// to create an object</span>
<span class="hljs-keyword">var</span> person = {
  <span class="hljs-attr">name</span>: <span class="hljs-string">'Rick'</span>,
  <span class="hljs-attr">age</span>: <span class="hljs-number">70</span>,
  <span class="hljs-attr">relation</span>: <span class="hljs-string">'grandfather'</span>
};

<span class="hljs-comment">// to access a property, use '.' dot notation</span>
<span class="hljs-built_in">console</span>.log(person.name);
<span class="hljs-built_in">console</span>.log(person.age);
</code></pre>
<p>You would often hear people say <em>key-value pair</em> when they talk about properties and their values.</p>
<h1 id="heading-javascript-objects-part-2">Javascript Objects Part 2</h1>
<p>You can also create properties on existing objects.</p>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> car = {
  <span class="hljs-attr">type</span>: <span class="hljs-string">'Honda'</span>,
  <span class="hljs-attr">make</span>: <span class="hljs-string">'Civic'</span>,
  <span class="hljs-attr">wheels</span>: <span class="hljs-number">4</span>,
  honk
};

car.hasHadAccident = <span class="hljs-literal">true</span>;

<span class="hljs-built_in">console</span>.log(car.hasHadAccident); <span class="hljs-comment">// displays true</span>
</code></pre>
<p>And some properties can be assigned to functions</p>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> car = {
  <span class="hljs-attr">type</span>: <span class="hljs-string">'Honda'</span>,
  <span class="hljs-attr">make</span>: <span class="hljs-string">'Civic'</span>,
  <span class="hljs-attr">wheels</span>: <span class="hljs-number">4</span>,
  <span class="hljs-attr">honk</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{
    <span class="hljs-built_in">console</span>.log(<span class="hljs-string">'HOOOOONK'</span>);
  }
};

car.honk(); <span class="hljs-comment">// HOOOOONK</span>
</code></pre>
<h1 id="heading-assignment-social-js">Assignment - Social JS</h1>
<p><a target="_blank" href="https://scrimba.com/p/pG66Msa/cVyzKDfD?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">Our next assignment</a> will help you write more complex data structures and help you think how about them.</p>
<h1 id="heading-assignment-loop-olympics">Assignment - Loop Olympics</h1>
<p>Welcome back again, <a target="_blank" href="https://coursework.vschool.io/loop-olympics/">the next exercise</a> will give you additional practice on using and creating for loops.</p>
<h1 id="heading-javascript-conventions">Javascript Conventions</h1>
<p>Javascript is a very dynamic language and there are many ways to do things. Over the years developers have come up with a set of go-to rules and generally, everybody tends to follow them. These include ways to name variables and functions, use of whitespace, where and how to use comments, etc.</p>
<p>Nate shares these important rules of courtesy among the developers <a target="_blank" href="https://scrimba.com/p/pG66Msa/c7zvQMfk?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">in our screencast</a>, do check it out.</p>
<h1 id="heading-assignment-daily-planet-editor">Assignment - Daily Planet Editor</h1>
<p>We now have <a target="_blank" href="https://scrimba.com/p/pG66Msa/cwyzqPUz?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">another exercise to complete.</a> This assignment will have you clone down a repository from GitHub that has some javascript code inside. The code is plagued with bad JS conventions, and your goal is to clean it up
and make sure it runs correctly.</p>
<h1 id="heading-introduction-to-the-dom">Introduction to the DOM</h1>
<p>So far we were learning about Javascript, but how does it apply to the actual web development?</p>
<p>Javascript comes in when you need to programmatically update your HTML and CSS. To add interactivity and makes things happen on your page.</p>
<p>In this screencast, Bob explains how this can be achieved.</p>
<h1 id="heading-what-is-the-dom">What is the DOM?</h1>
<p>DOM stands for "Document Object Model". It's essentially a set of tools that are given to developers to be able to change the page programmatically. The DOM is simply an object, on which we can use different methods and properties to make changes to the page.</p>
<p>The way we access the DOM is by adding a <code>&lt;script&gt;</code> tag to the page with our <code>.js</code> file.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>What is the DOM?<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>What is the DOM?<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"index.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>Then inside <code>index.js</code> file, we can access the DOM by using <code>document</code> keyword.</p>
<pre><code class="lang-js"><span class="hljs-built_in">console</span>.log(<span class="hljs-built_in">document</span>);
</code></pre>
<h1 id="heading-assignment-log-document-to-the-console">Assignment - log <code>document</code> to the console</h1>
<p>This is going to be a short one. For <a target="_blank" href="https://scrimba.com/p/pG66Msa/cy6g7zCM?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">your next assignment</a> try to build a basic HTML page from scratch, try to log <code>document</code> and look what actually gets logged in the console.</p>
<h1 id="heading-selecting-elements-getelementbyid">Selecting Elements - getElementById</h1>
<p>In this cast, Bob shows us how we can select a specific DOM element by a provided <code>id</code> on the element.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-comment">&lt;!-- We specify id for h1 --&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"hello"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"index.pack.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>And now we can select that element with Javascript</p>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> hello = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'hello'</span>);
<span class="hljs-built_in">console</span>.log(hello); <span class="hljs-comment">// &lt;h1 id="hello"&gt;</span>
</code></pre>
<h1 id="heading-assignment-getelementbyid">Assignment - getElementById</h1>
<p>Welcome to <a target="_blank" href="https://scrimba.com/p/pG66Msa/c27rwau4?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">the next exercise</a>. In this one you will practice some DOM manipulation and also attempt to solve a problem that you haven't been introduced before. No worries, any search engine is your friend!</p>
<h1 id="heading-selecting-multiple-elements">Selecting Multiple Elements</h1>
<p>In this chapter, Bob shows us how to select multiple DOM elements. You really have a selection in this case. Elements could be selected by their id, class name or tag name.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"things"</span>&gt;</span>Thing 1<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"things"</span>&gt;</span>Thing 2<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"things"</span>&gt;</span>Thing 3<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"index.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> things = <span class="hljs-built_in">document</span>.getElementsByClassName(<span class="hljs-string">'things'</span>);
<span class="hljs-built_in">console</span>.log(things); <span class="hljs-comment">// HTMLCollection with 3 elements.</span>
</code></pre>
<h1 id="heading-queryselector-and-queryselectorall">querySelector and querySelectorAll</h1>
<p>There is also another way that can help us select elements and it could be used with all three: tags, ids and class names.</p>
<pre><code class="lang-js"><span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'#favorite-things'</span>); <span class="hljs-comment">// returns the first element that matches the id</span>
<span class="hljs-built_in">document</span>.querySelectorAll(<span class="hljs-string">'#favorite-things'</span>); <span class="hljs-comment">// returns all elements that match the id</span>
</code></pre>
<h1 id="heading-modifying-an-elements-text">Modifying an element's text</h1>
<p>It's all well and good to be able to select elements, but it's really useful to be able to update them once selected. One of the most common usages is updating some text with Javascript.</p>
<p>In this chapter, Bob covers a few ways and looks at their pros and cons. One of them is:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"paragraph"</span>&gt;</span>PLACEHOLDER<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'#paragraph'</span>).textContent = <span class="hljs-string">"I've changed!"</span>;
</code></pre>
<h1 id="heading-modifying-styles">Modifying Styles</h1>
<p>If we can modify some text, the same applies to modifying styles.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h1</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"header"</span>&gt;</span>Modifying Styles with JS<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> header = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'header'</span>);
header.style.color = <span class="hljs-string">'blue'</span>; <span class="hljs-comment">// header changes color to blue</span>
</code></pre>
<h1 id="heading-modifying-styles-classname-and-classlist">Modifying Styles - className and classList</h1>
<p>Often you might not want to change a style permanently. It's common to change colors depending on some event or input for some time and then return it to a default position. For example, you're inputting a text in a field, you might want to highlight that box's edges.</p>
<p>This is a perfect case for adding and removing a class.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">h1</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"header"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"title another"</span>&gt;</span>Modifying Styles with JS<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'#header'</span>).classList.add(<span class="hljs-string">'new-class'</span>); <span class="hljs-comment">// now classes in #header are: title new-class another</span>
<span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'#header'</span>).classList.remove(<span class="hljs-string">'title'</span>); <span class="hljs-comment">// now classes in #header are: new-class another</span>

<span class="hljs-comment">// to turn on or off use toggle</span>
<span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">'#header'</span>).classList.toggle(<span class="hljs-string">'title'</span>); <span class="hljs-comment">// adds title class back.</span>
</code></pre>
<h1 id="heading-modifying-elements-value">Modifying elements - value</h1>
<p>While we're on the subject of modifying elements, <code>&lt;input /&gt;</code> tag deserves our special attention. It's a bit of an odd one out, as it doesn't have <code>textContent</code> property and the way you would access what the user has typed into an input field is with <code>value</code> property.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"text-input"</span> /&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> inputBox = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'text-input'</span>);
<span class="hljs-built_in">console</span>.log(inputBox.value); <span class="hljs-comment">// will log user's input</span>
</code></pre>
<h1 id="heading-creating-elements-in-js">Creating elements in JS</h1>
<p>If we can modify an element, why not create it?</p>
<p>We can do it with <code>createElement()</code> function.</p>
<p>For example, if we have a list</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"my-list"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>0<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>1<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>2<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<p>We can add another <code>&lt;li&gt;</code> element like so:</p>
<pre><code class="lang-js"><span class="hljs-comment">// create a new list element</span>
<span class="hljs-keyword">var</span> newLi = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">'li'</span>);

<span class="hljs-comment">// add an order number inside, so it looks like &lt;li&gt;3&lt;/li&gt;</span>
newLi.textContent = <span class="hljs-string">'3'</span>;

<span class="hljs-comment">//select the existing list</span>
<span class="hljs-keyword">var</span> myList = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'my-list'</span>);

<span class="hljs-comment">// add the newly created li to the list.</span>
myList.append(newLi);
</code></pre>
<h1 id="heading-creating-elements-in-js-innerhtml">Creating elements in JS - innerHTML</h1>
<p>The approach Bob has shown us in the previous chapter is the go-to way. But in this chapter, he shows us that for such quick operations we can simplify the code by using <code>innerHtml</code>.</p>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> myList = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'my-list'</span>);
<span class="hljs-comment">// innerHTML is a string represantation, which is why it's possible to just add another element.</span>
myList.innerHTML += <span class="hljs-string">'&lt;li&gt;3&lt;/li&gt;'</span>;
</code></pre>
<h1 id="heading-creating-elements-in-js-for-loops-createelement">Creating elements in JS - for loops + createElement</h1>
<p>Ok, let's now apply what we've learnt.</p>
<p>We can combine our knowledge of loops with <code>createElement</code> to display information on the screen.</p>
<p>Imagine you're having a party and you've sent the invitations. When someone agrees to come, you'd like to show their names on a page. This list of people can change. So different users might see different information depending on when they saw your page.</p>
<p>Let's see how it can be done</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">ul</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"guests"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"index.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-comment">// my guests</span>
<span class="hljs-keyword">var</span> partyGuests = [
  <span class="hljs-string">'Jason Lee Scott'</span>,
  <span class="hljs-string">'Kimberly Hart'</span>,
  <span class="hljs-string">'Zack Taylor'</span>,
  <span class="hljs-string">'Trini Kwan'</span>,
  <span class="hljs-string">'Billy Cranston'</span>
];

<span class="hljs-comment">// grab the list</span>
<span class="hljs-keyword">var</span> guestList = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'guests'</span>);

<span class="hljs-comment">// for every guest in the partyGuests array</span>
<span class="hljs-keyword">for</span> (<span class="hljs-keyword">var</span> i = <span class="hljs-number">0</span>; i &lt; partyGuests.length; i++) {
  <span class="hljs-comment">// create a list element for each</span>
  <span class="hljs-keyword">var</span> newName = <span class="hljs-built_in">document</span>.createElement(<span class="hljs-string">'li'</span>);

  <span class="hljs-comment">// and guest's name to the list element</span>
  newName.textContent = partyGuests[i];

  <span class="hljs-comment">// add the list element to my list of guests</span>
  guestList.append(newName);
}
</code></pre>
<h1 id="heading-event-listeners">Event Listeners</h1>
<p>All of the DOM modifications we've learnt so far were leading up to this very chapter. A lot of the changes usually depend on a user interacting with your page.</p>
<p>This brings us to <em>events</em> and <em>event listeners</em>. Events are clicks, hovers, keyboard presses, the usual ways people interact with web pages. Event listeners are special bits of code that wait for those events and then trigger your code when something happens.</p>
<p>Let's look at an example of a button.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"styles.css"</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> /&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"button"</span>&gt;</span>Click me<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"index.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<pre><code class="lang-js"><span class="hljs-keyword">var</span> button = <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'button'</span>);

<span class="hljs-comment">// add an vent listener for clicks</span>
button.addEventListener(<span class="hljs-string">'click'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{
  <span class="hljs-comment">// when a user clicks the button, run this function.</span>
  <span class="hljs-built_in">console</span>.log(<span class="hljs-string">'The button was clicked!'</span>);
});
</code></pre>
<h1 id="heading-self-study-get-the-value-from-an-input-element">Self study - get the value from an input element</h1>
<p>Welcome to <a target="_blank" href="https://scrimba.com/p/pG66Msa/cVyMwNtZ?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">your next challenge.</a> You will need to record user's input and the log it in the console after they click on a button. No worries if you're not sure how to do it. There are some useful links in the cast and we're sure you can do it.</p>
<h1 id="heading-dj-js-event-listener-practice">DJ JS - Event listener practice</h1>
<p>Great job for getting this far in the course. It's now time to practice event listeners in <a target="_blank" href="https://scrimba.com/p/pG66Msa/cvzkbnsq?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">our next exercise.</a> As always if you get stuck, do watch some of the previous screencasts and feel free to reach out.</p>
<h1 id="heading-pre-course-project">Pre-course Project</h1>
<p>Nice one. You've made it through the course materials and you are ready for <a target="_blank" href="https://scrimba.com/p/pG66Msa/cvzkbnsq?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gbootcampprep_launch_article">the pre-course project</a>. This project is aimed at people who would like to enrol to V School, but if you'd like some extra practice, also feel free to jump in.</p>
<h1 id="heading-congrats">Congrats!</h1>
<p>Huge congratulations for completing the course. You've worked very hard and you should be really proud of yourself. This is the beginning of an amazing journey for you!</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/QftjGj8Pg60" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How Ruben Harris Used the Power of Stories to Break Into Startups ]]>
                </title>
                <description>
                    <![CDATA[ In this week's episode of the freeCodeCamp podcast, I interview Ruben Harris. Ruben runs Career Karma, a social network for people interested in attending coding bootcamp. He also hosts the Breaking into Startups Podcast. Ruben just finished Y Combin... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-ruben-harris-used-the-power-of-stories-to-break-into-startups-podcast/</link>
                <guid isPermaLink="false">66b8d3ca8cd1c2aa053d4976</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Entrepreneurship ]]>
                    </category>
                
                    <category>
                        <![CDATA[ podcast ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Mon, 30 Sep 2019 07:04:49 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/09/54204732_130744494725588_25369589837234553_n.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this week's episode of the freeCodeCamp podcast, I interview Ruben Harris.</p>
<p>Ruben runs Career Karma, a social network for people interested in attending coding bootcamp. He also hosts the Breaking into Startups Podcast.</p>
<p>Ruben just finished Y Combinator, a startup accelerator, where he and his team raised their first round of venture capital funding.</p>
<p>Ruben grew up in Atlanta and worked in finance. He met his future co-founders - Ukrainian-born brothers Artur and Timur Meyster - years ago. The three of them agreed to spread out, get jobs in different industries, then later regroup to build a startup together.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/career-karma.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>Ruben and his co-founders Artur and Timur on stage at an event.</em></p>
<p>In this interview, Ruben shares his insights on coding bootcamps. He also shares what he learned going through Y Combinator. And he talks about his close bond with his co-founders.</p>
<h1 id="heading-communication-and-the-power-of-stories">Communication and the power of stories</h1>
<p>Ruben attributes much of his success to his skill at telling stories - a skill he still works to refine every day.</p>
<blockquote>
<p>"It's easy to think that the way you're going to rise is through your skills technically. But the way that you rise is actually through your non-technical skills and understanding how to communicate and be creative and manage your perception - which is also your story."</p>
</blockquote>
<p>Ruben failed to get into Y Combinator the first time he applied. He attributes this failure to challenges he faced when communicating what <a target="_blank" href="https://careerkarma.com">Career Karma</a> did and the value it could provide people.</p>
<p>He and his team had the coding chops. They knew a lot about higher education. They understood the role coding bootcamps played in the labor market. But they had trouble conveying all that.</p>
<p>Ruben pinpointed communication as the thing that was holding him back. He said the team made a decision to "recognize that we may not have everything figured out. And investing time in figuring it out will pay dividends later."</p>
<p>His hard work did indeed pay off. Career Karma got into Y Combinator, secured investors, and have been growing since.</p>
<h1 id="heading-breaking-into-startups">Breaking into Startups</h1>
<p>Before Career Karma, Ruben, Artur, and Timur created a tech career podcast called <a target="_blank" href="https://breakingintostartups.com/">Breaking Into Startups</a>.</p>
<p>Ruben says was inspired to start this podcast after moving to San Francisco and getting a job in tech. He realized how bad most of the advice out there was for people who were looking to do the same.</p>
<blockquote>
<p>"The advice that was given to me was if you want to break into tech, just move to the west coast, this magical place. You'll figure it all out. But for most people that's toxic advice. Most people will go through a psychological breakdown trying to make that transition happen. And the industry will chew them up."</p>
</blockquote>
<p>He wanted Breaking Into Startups to give people a more realistic glimpse into what career change was like.</p>
<blockquote>
<p>"We wanted to start documenting those stories on the podcast because the tech media wasn't really covering a lot of those stories. We realized for us to understand the shifts, it was important to talk with other people that were like us, who figured out how to get into these companies. So that's why we started featuring stories from people who were older or younger, from different sexes and religions, veterans. And we created a podcast around that became a source of truth and tactical advice that didn't really exist anywhere else."</p>
</blockquote>
<p>After having recorded more than 100 episodes over a span of 3 years, Ruben summarizes the commonalities between many of his guests:</p>
<blockquote>
<p>"At the end of the day, nobody has it all figured out. And similarly, when you're in a coding bootcamp or you're trying to learn a new skillset, you get imposter syndrome. But what actually eliminates impostor syndrome is realizing that everybody's lost."</p>
</blockquote>
<p>He continues:</p>
<blockquote>
<p>"If you feel comfortable, that's your body telling you that you're ready to push harder. You're not growing. Challenges give you growth. And growth is life."</p>
</blockquote>
<h1 id="heading-vocational-training-as-a-path-to-a-better-career-for-millions-of-americans">Vocational Training as a Path to A Better Career For Millions of Americans</h1>
<p>Ruben - himself a university graduate - is a champion of vocational education.</p>
<p>Pointing out that more than 7,000 Americans drop out of high school every day, Ruben says:</p>
<blockquote>
<p>"The only way to level up is through education. And I think that form of education is going to be a bootcamp that's run on its own, a bootcamp that's run by a college. I actually think that the big future is going to be employer-as-payer model. And you can see that with Adobe doing Adobe Digital Academy, you can see that with Microsoft, you can see that with Cognizant. With all kinds of things like that."</p>
</blockquote>
<p>He continues:</p>
<blockquote>
<p>"And the reason I think that is in the US alone, over $1 trillion is spent on post-secondary education. A lot of that training and education comes from corporate America. Companies are going to realize that they have to build talent in addition to buying talent. They spend so much money on university recruiting and events that have a very low return-on-investment. I think that apprenticeships are at the same stage that bootcamps were in 5 years ago, and they're going to become more and more en vogue."</p>
</blockquote>
<h2 id="heading-listen-to-the-full-interview">Listen to the full interview</h2>
<p>These are just some of the insights Ruben shared during my interview with him.</p>
<p>We also talked about his life growing up in Atlanta and the role of his parents and his faith.</p>
<p>I've learned a lot from Ruben over the three years I've known him, and I think you'll learn a lot from him to.</p>
<p>This interview is a 75 minute listen in your favorite podcast player app - just search for "freecodecamp" and you should find it.</p>
<p>If you have an Amazon Echo, you can just say "Alexa - play the freeCodeCamp podcast."</p>
<p>Or you can <a target="_blank" href="http://podcast.freecodecamp.org/ep-80-how-ruben-harris-used-the-power-of-stories-to-break-into-startups">listen to it right here in your browser</a>.</p>
<h3 id="heading-other-helpful-links">Other helpful links</h3>
<p>You can listen to Ruben interview me back in 2017 on <a target="_blank" href="https://breakingintostartups.com/quincy-free-code-camp/">this episode of Breaking into Startups</a> (50 minute listen).</p>
<p>During the podcast, Ruben also mentioned an <a target="_blank" href="https://breakingintostartups.com/76-gary-vaynerchuk-ceo-vaynermedia/">interview he did with Gary Vaynerchuk</a> (45 minute listen).</p>
<p>Ruben mentioned <a target="_blank" href="https://careerkarma.com/blog/letter-to-newbies-learning-to-code/">this article by his co-founder Artur Meyster</a>, about his life after completing a coding bootcamp.</p>
<p>Finally, you can <a target="_blank" href="https://twitter.com/rubenharris">follow Ruben on Twitter</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The Coding Bootcamp Handbook –  Immersive Engineering Programs Explained ]]>
                </title>
                <description>
                    <![CDATA[ Before you spend thousands of dollars and several months of your life on a coding bootcamp, spend 30 minutes reading this handbook. Who is this handbook for? Anyone considering attending a bootcamp Any developer considering founding a bootcamp or te... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/coding-bootcamp-handbook/</link>
                <guid isPermaLink="false">66b8d2de064c610cf26d29b0</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Fri, 30 Aug 2019 14:40:38 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/08/If-you-dream-it--you-can-do-it--1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Before you spend thousands of dollars and several months of your life on a coding bootcamp, spend 30 minutes reading this handbook.</p>
<h1 id="heading-who-is-this-handbook-for">Who is this handbook for?</h1>
<ul>
<li>Anyone considering attending a bootcamp</li>
<li>Any developer considering founding a bootcamp or teaching at one</li>
<li>Any journalist writing about bootcamps</li>
</ul>
<h1 id="heading-for-the-people-who-think-theyre-too-busy-to-read-this-handbook">For the people who think they're too busy to read this handbook...</h1>
<p>My advice to you boils down to this: <strong>Do your research</strong>.</p>
<p><strong>Apply for lots of developer jobs first.</strong> Go through some job interviews. You may be able to get a developer job without needing to attend a bootcamp.</p>
<p><strong>Don't blindly trust bootcamps' testimonials or employment statistics.</strong> Use LinkedIn to reach out to their alumni directly.</p>
<p><strong>Prepare yourself.</strong> Make sure you have enough money. If you're ready to enroll, make sure you have enough cash to pay tuition. And make sure you have enough cash to survive during the bootcamp, and for 6 months after while you apply for jobs.</p>
<p><strong>Bootcamps aren't magic.</strong> Bootcamps can only help prepare you. <em>You</em> have to learn everything. <em>You</em> have to go through the developer job interview process. <em>You</em> have to put in the work.</p>
<h1 id="heading-a-note-on-objectivity">A note on objectivity</h1>
<p>I've designed this handbook to be as objective as possible. To this end, <strong>I do not mention any bootcamps or their founders by name.</strong> I do not link to any of their websites.</p>
<p>I didn't write this handbook to help bootcamps. I wrote this handbook to help you.</p>
<p>As the teacher who founded freeCodeCamp, I am in a unique position to write about bootcamps for three reasons:</p>
<ol>
<li>A lot of  bootcamps use freeCodeCamp for their curriculum and course prepwork. I've helped coach a lot of bootcamp founders on how to prepare people for developer careers.</li>
<li>I learned to code in San Francisco in the early 2010's, when bootcamps first came onto the scene. I didn't attend a bootcamp, but I hung out with many bootcamp founders and attended student "demo days."</li>
<li>Over the past 3 years, I've conducted significant primary research. I've published <a target="_blank" href="https://www.kaggle.com/fccuser/datasets?scroll=true">several datasets</a> containing responses from thousands of bootcamp alumni.</li>
</ol>
<p>freeCodeCamp's mission is to help as many people learn to code as possible. Bootcamps help a lot of people accomplish this. So they are helping freeCodeCamp in our mission.</p>
<p>This said, freeCodeCamp has never received any compensation from bootcamps. Several of the big bootcamp chains have approached us about sponsorship. We have always refused.</p>
<h1 id="heading-why-did-i-write-this-handbook">Why did I write this handbook?</h1>
<p>When you Google "coding bootcamp" or "coding bootcamps in [city name]", you find a lot of bootcamp review websites. But there are fundamental problems with these review sites.</p>
<p>First, these review sites are sponsored by the bootcamps themselves. Bootcamps pay for advertisements. They pay to rank higher in the search results. They pay for "paid placement" blog articles, op-eds, and other publicity.</p>
<p>This is a conflict of interest.</p>
<p>Second, many of the reviews on these sites were coerced. I've heard stories from graduates of several bootcamps who were pressured to leave positive reviews. In some cases, bootcamps made students write reviews as a mandatory in-class activity.</p>
<p>There are also a lot of fake reviews written by marketing departments.</p>
<p>It's impossible to know which bootcamps are playing by the rules and which are cheating. So all that these review sites accomplish is to help cheaters drown out the more ethical bootcamps.</p>
<p>Instead of relying on websites full of dubious reviews, you should think for yourself. There are no shortcuts to making a decision this important.</p>
<blockquote>
<p>"The #1 marker of quality of a bootcamp is how hard it is to get in. Online reviews are completely and 100% gamed. Job placement statistics are also ruthlessly gamed. The only thing that's ungameable by a bootcamp is how hard it is to get in." - one of the former bootcamp managers I talked to while researching this handbook</p>
</blockquote>
<p>This handbook will give you a framework you can use to understand how bootcamps work. It will help you research your options and plan the path to your first developer job.</p>
<h1 id="heading-what-exactly-is-a-bootcamp">What exactly is a bootcamp?</h1>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-222.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Bootcamps are schools where you learn to code full-time - usually in person.</p>
<p>Most bootcamps are around 12 weeks long, though some are as long as a year.</p>
<p>Most bootcamps cost between US $10,000 and $20,000.</p>
<p>Some bootcamps offer loans - either directly or through a financing company.</p>
<p>Some bootcamps offer "Income Share Agreements" where instead of paying up front, you pay a percentage of your pre-tax income (usually 17%) for several years (usually 2 years). This is not "free money" - and I'll explain it in detail below.</p>
<p>The goal of a bootcamp is to take a classroom full of people who have never worked in tech before and help them get their first developer job.</p>
<p>That's a tall order. And there's a lot of money on the line. Which leads us to the next question.</p>
<h1 id="heading-do-bootcamps-actually-work">Do bootcamps actually work?</h1>
<p>In many cases, yes. Every year, thousands of bootcamp grads get their first developer jobs.</p>
<blockquote>
<p>"The best bootcamps take people with raw ability and turn them into (lightly) experienced programmers. Most of what they do in some ways is selection, and then put people into pressure cookers of learning." - a former bootcamp manager I talked to</p>
</blockquote>
<p>But there are also bootcamp grads who fail to get a developer job and end up going back to their past careers.</p>
<p>Success comes down to a few factors:</p>
<ul>
<li>How selective the bootcamp is</li>
<li>How capable the teachers are</li>
<li>And whether the people running the bootcamp care about their employment statistics or are just in it for short term financial gains.</li>
</ul>
<p>Most bootcamps don't publicly share their numbers. And the bootcamps who do may use non-standard metrics. This makes it difficult for you to make apples-to-apples comparisons.</p>
<p>But there's a growing transparency movement within bootcamps. They are pressuring one another to be more accountable.</p>
<p>Some bootcamps want to self-regulate the industry before the government is forced to step in and regulate it for them.</p>
<p>Bootcamps have only existed as a form of post-high school education for a few years. They aren't yet regulated like colleges and universities. That is, through accreditation.</p>
<h2 id="heading-are-bootcamps-accredited">Are bootcamps accredited?</h2>
<p>The short answer is no, they aren't accredited.</p>
<p>But first, what does it meant to  be accredited? And why's that so important for colleges and universities?</p>
<p>In the US, most universities are regionally accredited. And some academic programs are nationally accredited, such as English preparation schools.</p>
<p>There are two major reasons for this:</p>
<ul>
<li>accredited schools can help students get a US visa</li>
<li>accredited schools can help students get federal grants or federal student loans</li>
</ul>
<p>In order to get accredited, schools have to undergo an audit by independent educators. These auditors dig through files and make sure the school is following all the laws. They also make sure students are getting jobs after they graduate.</p>
<p>If graduates from the school aren't able to get jobs in their field of study, that's a red flag. The school may lose its accreditation.</p>
<p>You may have heard the term "diploma mill". These are colleges and universities that have lost their accreditation (or never got accredited in the first place). They sell worthless courses and worthless diplomas.</p>
<p>In the US, public universities are run by the government. These are accredited. And most private universities are run by nonprofits - often by religious organizations. These are usually accredited, too.</p>
<p>But there's a third category of university: private for-profit universities. And this is where things get a little sketchy. Some of these universities are accredited, but some of them aren't.</p>
<p>These private for-profit universities advertise heavily on late-night TV and buy lots of Facebook ads. They trick unsophisticated students into enrolling. </p>
<blockquote>
<p>"A foole and his money is soone parted." - Dr. John Bridges, way back in 1587</p>
</blockquote>
<p>In some cases, these schools qualify for federal student loans, the GI Bill, and other forms of government assistance.</p>
<p>Plainly put, most of these private for-profit universities are a scam. The US government is slowly shutting them down. But many people still fall for their marketing and end up thousands of dollars in debt with a worthless degree.</p>
<p>Even so, word of these scams spreads slowly. And even when a school sounds too good to be true, people still want to believe.</p>
<p>This brings us back to coding bootcamps.</p>
<p>Without some form of accreditation, a few bootcamps who are focused on short term financial gains - rather than the long-term health of the bootcamp model - can ride a wave of bootcamp popularity. They can get rich while serving up sub-par results for students.</p>
<p>A bootcamp accreditation system could help prevent this.</p>
<p>As I mentioned, most bootcamps don't have the resources to get accredited. Or they haven't existed long enough to qualify. This is where self-regulation comes into play.</p>
<p>The Council on Integrity in Results Reporting (CIRR) is a joint effort by bootcamps to publicly share the employment statistics of their graduates in a way everyone can understand.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/08/Launch_Academy_Boston__H1_2018__Audited.png" alt="Image" width="600" height="400" loading="lazy">
<em>This is a standardized CIRR outcomes report for a bootcamp.</em></p>
<p>Many prominent bootcamps are a part of this initiative. But some prominent bootcamps aren't participating or have stopped sharing their data.</p>
<p>A bootcamp's membership in the CIRR isn't the same thing as getting accredited, but it's a good start.</p>
<h1 id="heading-what-kind-of-salaries-do-bootcamp-graduates-get">What kind of salaries do bootcamp graduates get?</h1>
<p>Based on public data, bootcamp graduates earn the same starting salary as other entry-level developers. This includes computer science majors and other university graduates who learned to code on their own.</p>
<p>The biggest factor in how much money you get paid as an entry-level developer is the cost of living of the city. A junior developer in San Francisco can make twice as much as a junior developer in the middle of America.</p>
<p>If a bootcamp says their graduates get higher starting salaries than the graduates of other bootcamps, that means most of their graduates get jobs in more expensive cities like San Francisco.</p>
<h1 id="heading-how-long-does-it-take-bootcamp-graduates-to-get-a-job">How long does it take bootcamp graduates to get a job?</h1>
<p>This depends on the bootcamp. Some bootcamps have extensive career coaching. Others have close ties to local industry and can help you line up job interviews. Both of these can significantly shorten the number of months you spend applying for jobs afterward.</p>
<p>The post-bootcamp job search takes about 6 months on average.</p>
<h1 id="heading-what-is-the-completion-rate-for-bootcamps">What is the completion rate for bootcamps?</h1>
<p>A majority of people who start bootcamps go on to finish them.</p>
<p>Most good bootcamps are selective. If they don't think you'll be able to get a developer job after the program, they won't accept you.</p>
<p>Bootcamps have a short-term incentive to accept you so they can get your tuition dollars. But they also have a long-term incentive not to accept you if they think you could hurt their employment statistics.</p>
<p>This said, not all bootcamps care about their employment statistics. Some may focus on short term cash, due to financial desperation. (A lot of high-profile bootcamps have shut down in recent years.)</p>
<p>In some cases, bootcamps may kick out students half way through their program.</p>
<p>If the bootcamp is a "cash up front" bootcamp, they've already reaped the short-term benefit of enrolling you. Even if you're under-performing, it may make sense to try to salvage you rather than give you a refund.</p>
<p>These bootcamps do still want the long-term benefit of you boosting their employment statistics. But this benefit is more abstract than the cold hard cash you've handed them.</p>
<p>On the other hand, wage-garnishing bootcamps (remember those Income Sharing Agreements) have a bigger incentive to kick you out if you're under-performing. This is because they only benefit over the longer term (17% of your salary over the next 2 years).</p>
<p>Also, some bootcamp students decide to drop out for a variety of reasons. These may have nothing to do with the bootcamp itself, such as major life events.</p>
<h1 id="heading-how-often-do-people-graduate-from-bootcamps-but-fail-to-transition-into-tech">How often do people graduate from bootcamps but fail to transition into tech?</h1>
<p>Usually by the time people enroll in more selective bootcamps, they've already spent a lot of time coding, and are close to being able to get a developer job. So it's less common for these bootcamp graduates to fail to find a job.</p>
<p>But regardless of your skills, finding a developer job is inherently difficult. Bootcamps can aid you in this process, and many of them have career counselors to help.</p>
<p>It is not uncommon for graduates of even selective bootcamps to have to apply to hundreds of developer jobs (and interview at dozens of companies) before getting a satisfactory job offer.</p>
<blockquote>
<p>"Sometimes people put in all the work, and are talented, but just don’t get lucky for a long time. Other times, many people spam click job applications job boards. This rarely works.   </p>
<p>The best thing (by far) to do is make industry connections and meet real people. And then ask other developers for help on preparing, on seeking jobs, and on referrals. Internal referrals are generally the best bet." - another former bootcamp manager I talked to while researching this handbook</p>
</blockquote>
<p>So in many cases, when people fail to transition into tech, it's not really the bootcamp's fault. Some people just underestimate how arduous the job search process can be and give up before they find success.</p>
<h1 id="heading-what-types-of-bootcamps-are-there">What types of bootcamps are there?</h1>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-223.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Some bootcamps focus on particular stacks, like Ruby on Rails, Python / Django, or Java / Android. Some even focus on specific technical careers, like User Experience Design.</p>
<p>But it's more helpful to think of bootcamps in terms of their ownership structure. What are their incentives?</p>
<h2 id="heading-privately-owned-local-bootcamps">Privately-Owned Local Bootcamps</h2>
<p>These are often founded by one or more local developers. The founders may teach some of the classes themselves. (This is usually a good thing.)</p>
<p>Most bootcamps start out as locally-owned, single-campus schools like these.</p>
<h2 id="heading-privately-owned-bootcamp-chains">Privately-Owned Bootcamp Chains</h2>
<p>As locally-owned bootcamps grow, their founders may open additional campuses in other cities.</p>
<p>By operating more than one campus, owners get the advantages of economies of scale and economies of scope. They can spread the burden of fixed costs (like marketing and curriculum) across several schools.</p>
<p>This said, it's hard to offer consistent quality across multiple schools.</p>
<p>My advice to prospective students is to treat each city campus as its own school. Don't rely on the overall reputation of a bootcamp chain. Instead, do your research. Seek out alumni from that specific campus and interview them.</p>
<h2 id="heading-university-based-bootcamps">University-based bootcamps</h2>
<p>Most university-based bootcamps aren't run by the university itself. They are run by for-profit education companies.</p>
<p>Universities contract with these private companies to run the bootcamps. These bootcamps pay the university a hefty fee to use their classroom space and - more importantly - their prestigious name. It's a controversial practice.</p>
<p>When you look at a university-based bootcamp, don't rely on the reputation of the university itself. Instead, do your own research.</p>
<h2 id="heading-free-nonprofit-bootcamps">Free Nonprofit Bootcamps</h2>
<p>Nonprofit bootcamps are similar to their locally-run for-profit counterparts. The main difference is these have no profit incentive.</p>
<p>With traditional 501(c)(3) nonprofits, there is no ownership. Nobody owns stock. Instead, they're owned by the public.</p>
<p>This is how The Red Cross, Doctors Without Borders, and freeCodeCamp are all incorporated.</p>
<p>And some bootcamps use this structure as well.</p>
<p>Some nonprofit bootcamps are completely free. They are donor-supported, or supported through grants from the government.</p>
<p>There are several of these programs aimed at retraining military veterans and refugees.</p>
<h2 id="heading-free-for-profit-bootcamps">Free For-Profit Bootcamps</h2>
<p>Surprisingly, there are a few bootcamps that are for-profit but still free. And these programs don't use Income Sharing Agreements to garnish your wages, either.</p>
<p>These programs are selective. They may require applicants to have a Ph.D. or other advanced degree.</p>
<p>These programs make 100% of their money from employers. The program charges employers a recruitment fee when they place you at their company. These recruitment fees can be as high as 33% of your first year's salary.</p>
<p>But you as a student don't pay anything. Your future employer covers the expense of the bootcamp for you.</p>
<h3 id="heading-online-bootcamps">Online bootcamps</h3>
<p>I mention these last because they are new and experimental.</p>
<p>It's one thing to take a student who is new to coding and prepare them for their first job in a matter of months. It's another thing to do this completely online.</p>
<p>"Learn to code" style websites can teach you online because they are designed for long-term use. If you practice coding online several times each week for a year or two, your skills will steadily improve.</p>
<p>But online bootcamps expect you to do all this intensively, over a much shorter period of time.</p>
<p>Much of the value of a bootcamp comes from sitting shoulder-to-shoulder with other learners. You help one another get past errors and failing tests. You build projects together. You form interpersonal relationships.</p>
<p>All this is much harder to accomplish online, and in such a short period of time.</p>
<p>The main reason companies offer online bootcamps is simple: they're dramatically more profitable.</p>
<ul>
<li>The company doesn't need to rent office space to serve as a campus.</li>
<li>They don't have to worry about housing.</li>
<li>They can hire instructors from all around the world. This is much cheaper than hiring instructors in, say, San Francisco.</li>
<li>They can dump students into a big chat room together and let them figure things out with minimal supervision.</li>
</ul>
<p>Voilà - a coding bootcamp for 1/10th the cost. And a lot of these online bootcamps still charge as much as in-person bootcamps.</p>
<p>So before you enroll in an online bootcamp, you should do extra diligence. See whether there is a comparable in-person option in your city.</p>
<h1 id="heading-what-kind-of-people-generally-go-to-bootcamps">What kind of people generally go to bootcamps?</h1>
<p>All kinds of people attend bootcamps.</p>
<p>But the most common demographics are:</p>
<ul>
<li>Recent university graduates who haven't entered the workforce yet and can afford to wait another 6 months to do so.</li>
<li>Wealthy working professionals who want to switch industries and can afford to not work for the next 6 months.</li>
</ul>
<p>Less common, but still notable, are:</p>
<ul>
<li>Military veterans retraining for civilian careers</li>
<li>People who are unemployed and using loans to finance the bootcamp (or are signing "Income Share Agreements")</li>
<li>High school and college students learning to code over summer break (and not planning to enter the workforce immediately afterward)</li>
</ul>
<p>The average age of a bootcamp student is 28, but it's common for people much older than that to enroll in bootcamps.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/08/Bootcamp_Success_vs_Age___Kaggle.png" alt="Image" width="600" height="400" loading="lazy">
<em>A visualization of age data from freeCodeCamp New Coder Survey respondents who have attended coding bootcamps.</em></p>
<p>Most of them have at least 1 parent who graduated from university.</p>
<p>Most of them had learned to code on their own for more than 6 months before starting the bootcamp.</p>
<p>Most bootcamp students already have a university degree - though not usually in computer science.</p>
<h1 id="heading-is-a-bootcamp-right-for-me">Is a bootcamp right for me?</h1>
<p>This comes down to several factors:</p>
<ol>
<li>How much time you have</li>
<li>How much money you have</li>
<li>Whether you are currently working</li>
<li>And how much experience you have with coding</li>
</ol>
<p>Let's talk about all of these factors, starting with money.</p>
<h1 id="heading-can-i-afford-a-bootcamp">Can I afford a bootcamp?</h1>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-224.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Given infinite time and infinite money, my advice to 100% of people would be: yes - do a bootcamp.</p>
<p>But since time and money are scarce, we should discuss this in more detail.</p>
<h2 id="heading-how-much-is-bootcamp-tuition">How much is bootcamp tuition?</h2>
<p>As we discussed, some bootcamps are completely free, but these are not representative of the field.</p>
<p>Most bootcamps cost between US $10,000 and $20,000. The longer the program is, the more it usually costs.</p>
<p>Some bootcamps don't require you to pay tuition up-front. Instead, they garnish your future wages through something called an "Income Sharing Agreement."</p>
<h2 id="heading-what-are-income-sharing-agreements-isas">What are Income Sharing Agreements (ISAs)?</h2>
<p>Basically, you sign a contract with these bootcamps. These bootcamps then work closely with the US Internal Revenue Service. They figure out exactly how much money you make, then garnish a percentage of your pre-tax income (usually 17%) for a number of years (usually 2 years).</p>
<p>If your first job out of a bootcamp pays $50,000 per year, that means you would pay:</p>
<pre><code>($<span class="hljs-number">50</span>,<span class="hljs-number">000</span> * <span class="hljs-number">17</span>% = $<span class="hljs-number">8</span>,<span class="hljs-number">500</span>) * <span class="hljs-number">2</span> years = $<span class="hljs-number">17</span>,<span class="hljs-number">000</span> total
</code></pre><p>If you get paid $80,000 per year:</p>
<pre><code>($<span class="hljs-number">80</span>,<span class="hljs-number">000</span> * <span class="hljs-number">17</span>% = $<span class="hljs-number">13</span>,<span class="hljs-number">600</span>) * <span class="hljs-number">2</span> years = $<span class="hljs-number">27</span>,<span class="hljs-number">400</span> total
</code></pre><p>If you get paid $100,000 per year:</p>
<pre><code>($<span class="hljs-number">100</span>,<span class="hljs-number">000</span> * <span class="hljs-number">17</span>% = $<span class="hljs-number">17</span>,<span class="hljs-number">000</span>) * <span class="hljs-number">2</span> years = $<span class="hljs-number">34</span>,<span class="hljs-number">000</span> total
</code></pre><p>Most of these ISAs won't kick in until you make at least US $50,000 per year. And if you earn less than $50,000 per year for five years, these ISAs will go away and you won't owe anything anymore. And some ISAs have a "cap" - a maximum amount you have to pay back.</p>
<p>But the important thing to note with ISAs is they are a new form of debt. Unlike other forms of consumer debt - like student loans - ISAs exist in a legal gray area.</p>
<p>ISAs are a new form of "financial engineering". They seem to be legal, but none of this has been tested in a court of law.</p>
<p>It's also unclear what happens if you take out an ISA, and then the bootcamp goes bankrupt. (This happens often - even to big bootcamp chains). You would have no control over who gains ownership over your debt. It's unclear how aggressively they could pursue you to pay them back.</p>
<p>So again, <strong>do your research</strong>.</p>
<h2 id="heading-how-much-are-living-expenses-during-a-bootcamp">How much are living expenses during a bootcamp?</h2>
<p>Your living expenses will depend on which city the bootcamp is in, and that city's cost of living.</p>
<p>Living at home with your parents in the midwest? Your costs will be much lower than if you are moving to San Francisco and renting an apartment.</p>
<p>You should save enough money to last you through the bootcamp, plus 6 months. This way, you have enough time to find the right job and to cash your first paycheck.</p>
<h2 id="heading-what-is-opportunity-cost">What is "opportunity cost"?</h2>
<p>Opportunity Cost is a concept from economics that roughly means "foregone earnings."</p>
<p>To get the true cost of attending a coding bootcamp, you should factor in opportunity cost as well.</p>
<p><strong>Example</strong>: You currently earn $3,000 per month. You're moving to San Francisco, where it can cost $2,000 per month just to rent a bedroom. You'll attend a 12-week bootcamp that costs $15,000.</p>
<p>Here is your true cost, assuming an additional 6 months until you get a job and cash your first pay check:</p>
<pre><code>Bootcamp Tuition: $<span class="hljs-number">15</span>,<span class="hljs-number">000</span>

Cost <span class="hljs-keyword">of</span> Living: (<span class="hljs-number">9</span> months * $<span class="hljs-number">2</span>,<span class="hljs-number">000</span>) = $<span class="hljs-number">18</span>,<span class="hljs-number">000</span>

Opportunity Cost <span class="hljs-keyword">of</span> Foregone Wages: (<span class="hljs-number">9</span> months * $<span class="hljs-number">3</span>,<span class="hljs-number">000</span>) = $<span class="hljs-number">27</span>,<span class="hljs-number">000</span>

True Economic Cost: ($<span class="hljs-number">15</span>,<span class="hljs-number">000</span> + $<span class="hljs-number">18</span>,<span class="hljs-number">000</span> + $<span class="hljs-number">27</span>,<span class="hljs-number">000</span>) = $<span class="hljs-number">60</span>,<span class="hljs-number">000</span>
</code></pre><p>As you can see, in this case, the coding bootcamp tuition was only 1/4th of the true cost.</p>
<p>So a $20,000 bootcamp that helps you get a job in 4 months can be cheaper than a $15,000 bootcamp that helps you get a job in 6 months. That is, once you factor in cost of living and opportunity costs.</p>
<p>The lesson is simple: don't get too hung up on the cost of coding bootcamp tuition itself. It is only part of the true cost.</p>
<h1 id="heading-are-my-coding-skills-good-enough-for-a-bootcamp">Are my coding skills good enough for a bootcamp?</h1>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-225.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>A naive answer would be "just apply and see if you can get in."</p>
<p>But instead, let's think in terms of the bootcamp's incentives.</p>
<p>There's a Goldilocks Zone for coding bootcamps: not too beginner, not too advanced - just right.</p>
<h2 id="heading-scenario-1-your-skills-are-too-advanced-for-you-to-learn-much-from-a-bootcamp">Scenario #1: Your skills are too advanced for you to learn much from a bootcamp</h2>
<p>If you're a strong candidate, the bootcamp is confident you will get a job afterward. Their only rational decision is to accept you. Even if they don't think you'd learn much from their program.</p>
<p>Why?</p>
<ul>
<li>The bootcamp will get your tuition money.</li>
<li>They won't have to teach you much.</li>
<li>And then when you get a job afterward, you'll boost their employment statistics.</li>
</ul>
<p>From their perspective, they should admit you.</p>
<h2 id="heading-scenario-2-you-are-too-new-to-coding-to-get-much-out-of-the-bootcamp">Scenario #2: You are too new to coding to get much out of the  bootcamp</h2>
<p>If you're a weak candidate, then it comes down to the decision maker at the bootcamp. Are they focused on the long term or the short term? How much do they care about their employment statistics?</p>
<p>If the bootcamp is focused on the long term, they should reject you. Or assign you additional pre-coursework, then ask you to come interview again in a few months.</p>
<p>But bootcamps who are struggling financially don't have the luxury of worrying about their employment statistics. They may not be around for the long term. Their rational decision might be to just accept you anyway - regardless of your preparedness.</p>
<blockquote>
<p>"In the long run we are all dead." - John Maynard Keynes in 1923</p>
</blockquote>
<p>Maybe you rise to the occasion and succeed against the odds. Maybe you don't. Either way, the bootcamp gets their tuition money and is able to stay solvent a few months longer.</p>
<h2 id="heading-scenario-3-you-are-just-right">Scenario #3: You are "just right"</h2>
<p>The bootcamp should accept you in this situation, and it will be a win for both parties.</p>
<p>But again, you don't know which scenario this is. Is this Scenario #3 where you're "just right"? Or is the bootcamp just saying it is? Are you actually in Scenario #1 or Scenario #2?</p>
<p>So bootcamps have a strong incentive to accept you even when you're not good fit.</p>
<p>This is why I said the approach of "just apply and see if you can get in" is naive.</p>
<p>Here's what I recommend you do instead.</p>
<h2 id="heading-step-1-spend-a-few-months-learning-to-code-on-your-own">Step #1: Spend a few months learning to code on your own.</h2>
<p>Try earning the freeCodeCamp Responsive Web Design certification. Then earn the Algorithms and Data Structures certification.</p>
<p>These will ensure you understand the fundamentals. And a lot of coding bootcamps require these as part of their pre-coursework anyway.</p>
<h2 id="heading-step-2-apply-for-developer-jobs">Step #2: Apply for developer jobs.</h2>
<p>How do you handle employers' resume screens and phone screens? Can you advance to their on-site coding interviews? If so, you may just want to keep applying for jobs. You may not need a coding bootcamp.</p>
<h2 id="heading-step-3-apply-for-coding-bootcamps">Step #3: Apply for coding bootcamps.</h2>
<p>If you've made it to Step #3, you now know with confidence that you have some basic skills. And you know that you're not yet ready for a developer job.</p>
<p>You can now apply to coding bootcamps with confidence. You won't be too advanced. If they accept you, you can be confident that you're not too beginner, either.</p>
<p>If they don't accept you, you can just continue your self study and apply to the bootcamp again later.</p>
<h1 id="heading-how-do-i-choose-a-bootcamp">How do I choose a bootcamp?</h1>
<p>The first consideration should be: are there any coding bootcamps in your city? If so, I encourage you to visit them and learn as much as you can about them.</p>
<p>By staying in your current city, you can reduce your cost of living. You can also reduce your stress. You don't have to spend your time shopping for an apartment or learning a new neighborhood. You can spend that time coding.</p>
<h1 id="heading-do-i-need-to-move-to-san-francisco-for-my-bootcamp">Do I need to move to San Francisco for my bootcamp?</h1>
<p>You might think: "But shouldn't I move to San Francisco, where all the developers are?"</p>
<p>It's true that the San Francisco Bay Area - which includes Silicon Valley - is the tech mecca of the western hemisphere.</p>
<p>San Francisco is home to several excellent bootcamps. It also has tons of employers. And a huge ecosystem of evening tech events, hackathons, startup communities, and recruiters.</p>
<p>But San Francisco is an expensive, stressful place to live. I worked there as a developer for 4 years, and I don't plan on moving back any time soon.</p>
<p>The important thing to remember is: <strong>software is still software - regardless of where you are in the world.</strong></p>
<p>You can learn a lot from most experienced developers who have worked in tech for 5 or 10 years. Almost as much as you could learn from an elite developer at a San Francisco tech company.</p>
<p>(And the most elite developers can earn millions of dollars a year. You probably won't find them teaching at bootcamps anyway.)</p>
<h1 id="heading-what-tools-should-bootcamps-be-teaching">What tools should bootcamps be teaching?</h1>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-226.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This may sound counter-intuitive, but I'm going to come right out and say it. <strong>The tools don't matter.</strong></p>
<p>Some bootcamps teach Ruby and Rails or Sinatra. Despite their declining popularity, these are still good tools for new developers.</p>
<p>Some bootcamps teach Full Stack JavaScript with Node.js. This is the most widely used toolchain for new projects. But it may be a bit harder to learn.</p>
<p>Some bootcamps teach Python and Flask or Django. Some teach the .NET ecosystem. Some may go straight into mobile development with Android and Java or Kotlin. Some go close to the metal with C.</p>
<p>Again, the tools don't matter. What matters is that you learn one set of tools really well.</p>
<p>Learn one set of tools and understand how everything fits together at a conceptual level. Then you can easily learn new sets of tools.</p>
<p>You can sum up most of what you'll learn in a coding bootcamp as:</p>
<ul>
<li>Computer Science fundamentals</li>
<li>Programming itself (lots of practice coding)</li>
<li>Other skills you'll need as a developer. Like software development methodologies, debugging techniques, testing, reading documentation.</li>
<li>Understanding the job application process itself.</li>
</ul>
<p>So don't dismiss a bootcamp because "they teach Rails and I want to learn Node" or "I want to be a mobile developer" or "I don't want to learn front end development."</p>
<p>You'll learn the same basic things regardless of which tools the bootcamp teaches.</p>
<h1 id="heading-how-important-is-a-bootcamps-track-record">How important is a bootcamp's track record?</h1>
<p>If a bootcamp that has been around for a few years, you should pay close attention to their track record.</p>
<h2 id="heading-older-bootcamps">Older bootcamps</h2>
<p>First, find out whether the bootcamp is part of the Council on Integrity in Results Reporting. If they aren't, ask them why not.</p>
<p>You should ask for their employment statistics. If they're reluctant to show you these - or can't share numbers from the past year - that's a red flag.</p>
<p>Either way, you should find their graduates on LinkedIn. Reach out to them to ask them about their experience there.</p>
<h2 id="heading-newly-opened-bootcamps">Newly-opened bootcamps</h2>
<p>If the coding bootcamp is new, there will be much less information available. You will have to rely much more on your intuition.</p>
<p>Ask for the names of the bootcamp's teachers. Pull them up on LinkedIn.</p>
<p>Do they have any past cohorts? Find their graduates on LinkedIn and ask them about their experience there.</p>
<p>Being one of the first students at a coding bootcamp is an exercise in high risk / high reward.</p>
<p>Like all kinds of small business, bootcamps may shut down quickly if they don't get traction. If this happens, you will find yourself explaining the school to future employers in the past tense. Awkward.</p>
<p>But at the same time, new coding bootcamps have something to prove. Their teachers and staff will work like crazy to ensure the school succeeds. They'll try their hardest to train you. They'll help you get a good job so they can get a win under their belt and onto their testimonials page.</p>
<p>In the face of sparse data, you need to decide for yourself. Do the people running this bootcamp seem like they know what they're doing? Are they passionate about this?</p>
<h1 id="heading-should-i-visit-the-campus-before-i-enroll">Should I visit the campus before I enroll?</h1>
<p>Yes. You are about to make a decision that - when you factor in cost of living and opportunity cost - is tens of thousands of dollars and months of your time.</p>
<p>By all means, book a flight. Even if you're only flying in for a day trip. Talk to the teachers and the staff. Scope out the school. Observe the students.</p>
<p>This is an important decision. And in the grand scheme of things, this trip is a small investment of your time and money.</p>
<h1 id="heading-should-i-reach-out-to-past-alumni">Should I reach out to past alumni?</h1>
<p>The answer is always yes. Don't skip this step.</p>
<p>Find them on LinkedIn. If they don't respond to your LinkedIn message after a few days, find their email or message them on Twitter. See if you can get them on a phone call.</p>
<p>Ask them to be as candid as possible. Assure them that everything they share with you will be in confidence.</p>
<p>Tell them your circumstances. Tell them how important this decision is for you.</p>
<p>I recommend reaching out to several alumni like this.</p>
<p>This is the most difficult part of the bootcamp research process. You may be thinking "I'm an introvert." Or "I don't want to bother these busy people."</p>
<p>But these people are where you will be a year from now. They are the best window into what you can expect from this bootcamp.</p>
<p>If you end up going to the bootcamp, these people will be your fellow alumni. This is an opportunity to also make them your mentors.</p>
<h1 id="heading-are-there-free-bootcamp-alternatives">Are there free bootcamp alternatives?</h1>
<p>There are a lot of ways you can learn to code without paying anything. Some of these have been around for decades, like the computer section of your local library.</p>
<p>Others free resources can help a motivated novice ramp up their skills and get hired as a developer.</p>
<p>Most developers consider themselves at least partially self-taught. They have used a variety of these learning resources.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/08/1_BDcBo7UJ86Br5O5J1Va_6A.jpeg" alt="Image" width="600" height="400" loading="lazy">
<em>A chart from Stack Overflow's annual developer survey.</em></p>
<h2 id="heading-what-are-learn-to-code-websites">What are learn-to-code websites?</h2>
<p>There are websites where you can learn to code right in your browser. Some of them - like freeCodeCamp - are completely free.</p>
<p>Some of these learn-to-code websites cost money. But you may be able to use them for free through your local library.</p>
<p>These websites cover many of the same concepts and tools as coding bootcamps.</p>
<p>Bootcamps are focused on high-touch in-person instruction. They operate a campus with classrooms and instructors.</p>
<p>By contrast, learn-to-code websites use instructional design to teach people inexpensively at scale.</p>
<p>These learn-to-code websites have forums and may even have local study groups.</p>
<p>Still, many people prefer the traditional classroom environment that bootcamps provide.</p>
<h2 id="heading-what-are-massive-open-online-courses">What are "Massive Open Online Courses"?</h2>
<p>Massive Open Online Courses (MOOCs) are free courses usually taught by university professors. These tend to be lecture-based, and may have homework assignments or exams.</p>
<p>MOOCs gained popularity in 2012, and remain an excellent way to learn concepts. There are hundreds of MOOCs on programming and computer science - many of which are self-paced.</p>
<p>Some of these MOOCs also offer certifications, though you may have to pay for them.</p>
<p>The important thing to note here is that you can learn almost any topic - straight from world-class professors - at your convenience.</p>
<p>Always keep this fact in mind when you're considering paid learning resources. They have a high bar to clear to justify their cost.</p>
<h2 id="heading-are-there-free-coding-textbooks">Are there free coding textbooks?</h2>
<p>There are thousands of free programming and computer science textbooks. Many of these are Creative Commons licensed or even public domain.</p>
<p>Developers have also sold books that they've since decided to make freely available.</p>
<p>Also, some developers release digital versions of their books for free, and sell physical copies of them.</p>
<h1 id="heading-what-are-some-paid-bootcamp-alternatives">What are some paid bootcamp alternatives?</h1>
<p>Of course, if you have the money, you can put it to use. There are a wide range of career training options to consider.</p>
<h2 id="heading-should-i-go-back-to-university">Should I go back to university?</h2>
<p>If you already have a university degree, you probably shouldn't go back to university.</p>
<p>Yes, there are Masters in Computer Science programs. But these are designed for already-working developers to further expand their skills.</p>
<p>I don't recommend enrolling in an undergraduate computer science program to do a second bachelor's degree. This would take years of extra study. And most undergraduate computer science programs focus more on math and conceptual knowledge than they do on hands-on coding.</p>
<p>Coding bootcamps are a much faster way to get coding practice. They can help you establish the conceptual baseline you need to work as a developer.</p>
<h2 id="heading-can-night-school-courses-help-me-learn-to-code">Can night school courses help me learn to code?</h2>
<p>You may be able to find a program in your community that helps adults learn computer skills at night.</p>
<p>Check your local community colleges, libraries, and adult education programs. See whether they teach software development courses.</p>
<p>Be aware that many of these programs focus on more rudimentary computer skills. You may not need a course on operating systems, spreadsheets, or touch typing.</p>
<p>Before you enroll in any courses, ask them about past alumni who are now working as developers. If they can't provide any, the program may be too basic for you.</p>
<h2 id="heading-can-i-hire-a-tutor-to-help-me">Can I hire a tutor to help me?</h2>
<p>Some developers will tutor on the side. You can find them on online classified ad listings.</p>
<p>There are also websites that specialize in pairing students with online tutors.</p>
<p>This can be quite expensive. But if you're able to learn to code on your own, this may be a good option for you. You get the benefit of weekly tutoring session for the fraction of the cost of a bootcamp.</p>
<h1 id="heading-what-is-the-future-for-bootcamps">What is the future for bootcamps?</h1>
<p>The first coding bootcamps were founded less than a decade ago. This is still a young industry.</p>
<p>This said, the industry is consolidating. Several bootcamp chains have been acquired by traditional for-profit education companies. Textbook companies, for-profit university systems - and even a coworking space startup.</p>
<p>And some coding bootcamp chains have gone out of business.</p>
<p>But it's not like these failures represent a fundamental flaw in the coding bootcamp model. There are hundreds of bootcamps out there still going strong. And developers are opening new bootcamps all the time.</p>
<p>But there's less money in running bootcamps than there is in financing student debt. And that is where we're seeing the most innovation - in the area of "financial engineering."</p>
<blockquote>
<p>"The study of money, above all other fields in economics, is one in which complexity is used to disguise truth or to evade truth, not to reveal it." - John Kenneth Galbraith, Harvard professor, in 1975</p>
</blockquote>
<p>It's hard to predict what will happen with bootcamps. Here are a few possible directions - with some of them less positive for students than others.</p>
<h2 id="heading-will-going-to-a-bootcamp-become-as-common-as-going-to-a-university">Will going to a bootcamp become as common as going to a university?</h2>
<p>In their current form, bootcamps are not a substitute for a university education. They are a supplement to it.</p>
<p>Most bootcamp students have already graduated from university. They are mid-career and enrolling in a bootcamp to learn new skills.</p>
<p>Universities cover a lot of things outside the scope of bootcamps. Everything from English composition to history to mathematics.</p>
<p>Coding bootcamps cover - well - coding. They also touch on some computer science concepts and workplace soft skills.</p>
<p>If you see a bootcamp marketing itself as an alternative for college, that's a huge red flag.</p>
<p>We have centuries of data on universities. We know how effective they are at increasing your lifetime earnings. A bachelor's degree with the right major can double or triple your earning power.</p>
<p>Coding bootcamps are new. There isn't much data. And there's even less data about bootcamp graduates who didn't finish university.</p>
<p>Instead of looking at coding bootcamps as an alternative to university, look at them as an alternative to vocational college.</p>
<p>If you weren't going to go to college anyway, a bootcamp is better than nothing. And the skills you'll learn may be more relevant than traditional trade schools.</p>
<p>In the future, coding bootcamps may indeed become a place more people go to straight out of high school.</p>
<p>But we need a lot more efficacy data first. I wouldn't send my kids to a bootcamp instead of a university, and I urge similar caution to you.</p>
<p>By the way, if you're in high school and reading this, here's my advice to you: go to the best university you can afford without student loans.</p>
<p>Before you take out student loans, look into community colleges. There are also accredited ultra-low-cost university programs. You can do many of these online while working. As always, don't trust their marketing and do your own research.</p>
<h2 id="heading-will-bootcamps-eventually-qualify-for-federal-student-loans">Will bootcamps eventually qualify for federal student loans?</h2>
<p>Bootcamps are expensive. There aren't many people who can afford to attend them.</p>
<p>Bootcamps may try to remedy this is the same way universities did. By lobbying the federal government.</p>
<p>Bootcamps may succeed in opening the government's coffers. This could be in the form of subsidized student loans. Bootcamps may also target the GI bill and other programs designed to help people graduate from college.</p>
<p>Americans hold $1.5 trillion in student loan debt. That's a million million dollars. That's $16,000 for every man, woman, and child in America. Student loan debt is the main reason young Americans can't afford to buy houses anymore.</p>
<p>Should we let bootcamps create even more of this student debt?</p>
<p>It would be a disaster for consumers.</p>
<p>But that doesn't mean it couldn't happen.</p>
<p>Look who's running the US Department of Education right now. Anything is possible, no matter how damaging it may be over the long term.</p>
<p>There's an alternative to financial complexity. Bootcamps can find new ways to make it more affordable to people paying cash.</p>
<h2 id="heading-will-bootcamps-conglomerate-into-a-few-big-chains">Will bootcamps conglomerate into a few big chains?</h2>
<p>This has already happened to an extent.</p>
<p>Bootcamps can save money by spreading their fixed costs across multiple campuses. They get economies of scale and economies of scope.</p>
<p>But there are diminishing returns to these benefits. Some of these chains have gone out of business. Others - no longer able to operate on their own - got acquired by education conglomerates.</p>
<p>There is a right size to any operation. It's unclear what the right size for a coding bootcamp chain is.</p>
<p>Some of the best bootcamps only have one location. Others are able to keep quality high across multiple campuses. A lot of their success comes down to the quality of their leadership.</p>
<h2 id="heading-will-the-bootcamp-model-spread-into-non-coding-fields-like-law-and-accounting">Will the bootcamp model spread into non-coding fields like law and accounting?</h2>
<p>Software development is a unique profession. It is unencumbered by regulatory bodies.</p>
<p>Other fields have bureaucracies in place to shut people out. For example, in the US:</p>
<ul>
<li>To become a lawyer, you have to go through 4 years of college, 3 years of a law school, then get certified by the American Bar Association through your state's bar exam.</li>
<li>To become an accountant, you have to go through 4 years of college, attend a bunch of graduate-level courses, get certified by the American Institute of Certified Public Accountants through a long series of exams, then work as a low-wage apprentice for a year.</li>
<li>To be a doctor, you have to go through 4 years of college, 4 years of medical school, then work as a low-wage "resident" for 3 to 7 years, then get certified by the American Medical Association by passing your state's board certification exam.</li>
</ul>
<p>Without major changes, bootcamps won't work for heavily regulated fields like these.</p>
<h2 id="heading-will-bootcamps-merge-with-traditional-university-programs-to-create-a-new-kind-of-school">Will bootcamps merge with traditional university programs to create a new kind of school?</h2>
<p>There are already programs that take inspiration from both universities and bootcamps.</p>
<p>This said, most big-name universities are hundreds of years old. Shifting to a much shorter learning period will be difficult for them to do. Stranger things have happened, though.</p>
<p>Here's a more likely scenario: bootcamps (and their for-profit education conglomerate parent companies) buy accredited colleges and rebrand them. This way they can skip the long process of becoming accredited themselves.</p>
<p>For the record, I'm against the mixing of university programs with coding bootcamps. These are two different education modalities designed for two different sets of learners.</p>
<p>Instead, we need new types of educational institutions. Preferably low cost with a stronger emphasis on life-long education and on-the-job training.</p>
<p>Imagine a school with nonstop internships, where you work in your desired field. You have enough money to live on without needing to go into debt.</p>
<p>There are already programs like this in Europe. And over here in the US - well, we can dream, can't we?</p>
<h1 id="heading-what-are-your-final-words-of-advice">What are your final words of advice?</h1>
<p>Your developer job search will come down to 3 things:</p>
<ol>
<li>Your skills</li>
<li>Your reputation</li>
<li>Your network</li>
</ol>
<p>Don't make the mistake of focusing on only one or two of these. Think about ways you can build all three at the same time.</p>
<p>Going to a bootcamp can be the best decision you ever made. Or it can be an awkward financial setback.</p>
<p>Do your research. Save up your money. Learn coding fundamentals first.</p>
<p>Bootcamps aren't magic. They aren't going to do the work for you.</p>
<p>In the end, the experience is what you make of it. So make the most of it.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ When it comes to whiteboard coding interviews, remember to PREP ]]>
                </title>
                <description>
                    <![CDATA[ By Andy Tiffany PREP is a mnemonic I created to help you remember the steps involved in solving whiteboard coding problems. It stands for Parameters, Return, Example, Pseudocode. The mnemonic is new, but the underlying technique is battle tested. Th... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/before-you-code-remember-to-prep-for-your-coding-interview-2ccfb58147db/</link>
                <guid isPermaLink="false">66c345670bafa8455505c68b</guid>
                
                    <category>
                        <![CDATA[ Coding Bootcamps ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 21 Dec 2016 19:33:05 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*vLadxMniF0KW0HWeGkipJw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Andy Tiffany</p>
<p>PREP is a mnemonic I created to help you remember the steps involved in solving whiteboard coding problems. It stands for <strong>P</strong>arameters, <strong>R</strong>eturn, <strong>E</strong>xample, <strong>P</strong>seudocode.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*vbQ8FGNAlEC4jnxg8Z7Ceg.png" alt="Image" width="800" height="120" loading="lazy"></p>
<p>The mnemonic is new, but the underlying technique is battle tested. This is essentially a beginner-friendly version of <a target="_blank" href="https://en.wikipedia.org/wiki/Test-driven_development">test-driven development</a> that lends itself well to coding challenges.</p>
<p>Let’s get right to it and learn PREP through an example problem. We’ll use JavaScript, but this technique works for just about any programming language.</p>
<h3 id="heading-your-interviewer-asks-you-to-write-a-function-that-accepts-a-sentence-and-returns-the-longest-word-what-do-you-do">Your interviewer asks you to w<strong>rite a function that accepts a sentence and returns the longest word. What do you do?</strong></h3>
<h4 id="heading-p-is-for-parameters">“P” is for Parameters</h4>
<p>Most problems involve writing a function. In this step you need to determine what parameters your function should accept. Then you need to give them meaningful names.</p>
<p>Keywords like “takes in” or “accepts” in the problem statement will guide you here. If it’s unclear, you can also ask the interviewer for clarification. In your case, the statement “accepts a sentence” tells you that the function should accept a single string parameter.</p>
<p>So you’ve determined the <em>type</em> of your parameter. But what should you name it? It might sound simple, but good naming is a crucial programming skill, and it takes practice.</p>
<p>You could call yours “sentenceString,” but calling it “sentence” is more concise and still makes it clear we’re dealing with a string.</p>
<p>Since this is your first step, you also need to think of a meaningful name for your function itself. In your case, “longestWord” is both concise and descriptive. Now that you’ve decided this, you can write the shell for your function like this:</p>
<h4 id="heading-r-is-for-return">“R” is for Return</h4>
<p>What does this function <em>return</em>? Is it a number? A boolean? A string?</p>
<p>Remember: the value a function returns is not the same as what it might display in a print/log statement.</p>
<p>Once again, you can look at the problem statement for clarification. “Returns the longest word” tells you that you’re returning a <em>word,</em> and you know that words are strings. Let’s make this crystal clear by creating a variable to represent this return value and rigging up your function to return it. Even though you aren’t returning the correct answer yet, you’re set up to return the correct type. You have created a placeholder that will make the next steps easier.</p>
<h4 id="heading-e-is-for-example">“E” is for Example</h4>
<p>Even for expert developers, static code is harder to understand than running code. You want to make your code runnable and “alive” as soon as possible. You can breathe life into your function with an example test invocation.</p>
<p>You know that if your function accepts the sentence, “I saw a hippopotamus,” it <em>should</em> return the string “hippopotamus” once it’s properly working. But for now, you just want to see your placeholder value from the last step to confirm your code is runnable and setup correctly.</p>
<h4 id="heading-the-last-p-is-for-pseudocode">The last “P” is for Pseudocode</h4>
<p>While it’s tempting to just dive in and start coding now, it would be too easy to get caught up in a detail that could distract you from the bigger picture. You need to devise a strategy first, and <em>pseudocoding</em> is just the tactic for this.</p>
<p>Pseudocode is a series of precise statements written in spoken language comments that describe what you need to do.</p>
<h3 id="heading-youve-finished-prep-now-you-can-code">You’ve finished PREP. Now you can code!</h3>
<p>The four steps in PREP helped you clearly frame the problem and think about how to solve it. In truth, accurate framing is half the battle. Most interviewers will already be impressed to see your methodical approach. At this point, your goal is to just write code that will make your examples and tests pass. You’ll do this by encoding each of your pseudocode steps.</p>
<p>You know you’ve got a working solution when you can run your code and see the correct output.</p>
<p>You’ve made it through the hardest part now. You can breathe a sigh of relief that you’ve at least gotten to a working solution. At this point, there are just two more questions to think about:</p>
<ul>
<li>Are there any edge cases that would break the code? For example, do you need to take into account sentences that have a period at the end of them? You’ll write more test cases for these edge cases, then fix the code if necessary.</li>
<li>Can you make the code cleaner or more efficient now? You should discuss ideas with the interviewer so that they know your thoughts before risking breaking the solution.</li>
</ul>
<p>That’s it! This process might seem overly mechanical at first, but trust me, it will become second nature — much like the steps in learning to drive. Even after programming for more than 12 years, this is still roughly the sequence I follow when I’m problem solving. I’d more likely use a formal testing framework instead of log statements like we did here, but the steps are the same either way.</p>
<p>Now you try it! Here are a few beginner-level problems you can practice with, in roughly ascending order of difficulty:</p>
<ol>
<li>Suppose you have an array of string like [ “adios”, “bye”, “ciao” ]. Your task is to write a function called total_characters that accepts such an array as a parameter and returns the summed number of characters across all the strings in the array.</li>
<li>Write a function to flip a coin n times that returns the numbers of times a “heads” was flipped.</li>
<li><em>(From <a target="_blank" href="https://www.freecodecamp.com/challenges/sum-all-numbers-in-a-range">Free Code Camp</a>)</em> We’ll pass you an array of two numbers. Return the sum of those two numbers, and all numbers between them. The lowest number will <em>not</em> always come first. Try using PREP to set this up yourself first, but then feel free to confirm your setup and finish solving it <a target="_blank" href="https://www.freecodecamp.com/challenges/sum-all-numbers-in-a-range">here</a>.</li>
</ol>
<p>PREP has already helped several <a target="_blank" href="https://firststepcoding.com">First Step Coding</a> learners ace their coding interviews, and I hope it can help you too. Happy coding!</p>
<p><em>If you liked this, click the ? below so other people will see this here on Medium.</em></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
