<?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[ life - 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[ life - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 05:06:51 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/life/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Outsource Your Online Security with 1Password, Authy, and Privacy.com ]]>
                </title>
                <description>
                    <![CDATA[ Take some work off your plate while beefing up security with three changes you can make today. Unstable times are insecure times, and we’ve already got enough going on to deal with. When humans are busy and under stress, we tend to get lax in less-ob... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/outsourcing-security-with-1password-authy-and-privacy-com/</link>
                <guid isPermaLink="false">66bd8f69c1ca1df1936e29d7</guid>
                
                    <category>
                        <![CDATA[ authentication ]]>
                    </category>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ passwords ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Victoria Drake ]]>
                </dc:creator>
                <pubDate>Tue, 17 Mar 2020 22:08:13 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/03/cover-4.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Take some work off your plate while beefing up security with three changes you can make today.</p>
<p>Unstable times are insecure times, and we’ve already got enough going on to deal with. When humans are busy and under stress, we tend to get lax in less-obviously-pressing areas, like the security of our online accounts. </p>
<p>These areas only become an obvious problem when it’s too late for prevention. Thankfully, most of the work necessary to keep up our cybersecurity measures can be outsourced.</p>
<p>Implementing proper cybersecurity measures can be fiddly, and I especially dislike fiddling with things that I could avoid fiddling with. </p>
<p>These fiddly things include resetting forgotten passwords, transferring multifactor authentication (MFA) codes when I change devices, and dealing with the fallout of compromised payment details in the event one of my accounts is still breached.</p>
<p>Here are three changes I’ve made that significantly reduce the chances of needing to fiddle with any of these things again. You can too.</p>
<h2 id="heading-1password">1Password</h2>
<p>I’ve historically avoided password managers because of an irrational knee-jerk reaction to putting all my eggs in one basket. </p>
<p>You know what’s great for irrational reactions? Education. To figure out if putting all my passwords into a password manager is more secure than not using one, I set out to see what some smart people wrote about it.</p>
<p>First, we need to know a thing or two about passwords. Troy Hunt figured out almost a decade ago that <a target="_blank" href="https://www.troyhunt.com/only-secure-password-is-one-you-cant/">trying to remember strong passwords doesn’t work</a>. In more recent times, Alex Weinert expanded on this in <a target="_blank" href="https://techcommunity.microsoft.com/t5/azure-active-directory-identity/your-pa-word-doesn-t-matter/ba-p/731984">Your Pa$$word doesn’t matter</a>. </p>
<p>TL;DR: our brains aren’t better at passwords than computers, and please use MFA.</p>
<p>So passwords don’t matter, but complicated passwords are still better than memorable and guessable ones. </p>
<p>Since I’ve next to no hope of remembering a dozen variations of <code>p/q2-q4!</code> (I’m not a <a target="_blank" href="https://inbox.vuxu.org/tuhs/CAG=a+rj8VcXjS-ftaj8P2_duLFSUpmNgB4-dYwnTsY_8g5WdEA@mail.gmail.com/">chess player</a>), this is a task I can outsource to <a target="_blank" href="https://1password.com/">1Password</a>. I’ll still need to remember one, long, complicated master password - 1Password uses this to encrypt my data, so I really can’t lose it - but I can handle just one.</p>
<p>Using 1Password specifically has another, decidedly obvious, advantage. I chose 1Password because of their <a target="_blank" href="https://support.1password.com/watchtower/">Watchtower</a> feature. <a target="_blank" href="https://www.troyhunt.com/have-i-been-pwned-is-now-partnering-with-1password/">Thanks to Troy Hunt’s Have I Been Pwned</a>, Watchtower will alert you if any of your passwords show up in a breach so you can change them. Passwords still don’t completely work, but this is probably the best band-aid there is.</p>
<p>One last bonus is that using a password manager is a heck of a lot more convenient. Complicated passwords need not take two tries to type. </p>
<p>When it comes to sites that I only rarely use, and don’t consider important, I’m typically far more likely to end up (re)setting those passwords to something memorable, and thus something easily hacked. Even - perhaps especially - unimportant sites can open doors to your more important ones. </p>
<p>Using 1Password and generated passwords, those sites are now also first-class citizens in the land of strong passwords, instead of being half-abandoned and half-open attack vectors.</p>
<p>So, yes, all my eggs are in one basket. A well-protected, complex, and monitored basket, as opposed to being scattered about in several of those paper cartons from the grocery store that don’t really close and certainly can’t survive a <em>rather gentle bump</em> as you come in the doorway, Victoria, how many times do I need to remind you to be careful.</p>
<h2 id="heading-authy">Authy</h2>
<p>Okay - so it’s more like one-and-a-half baskets. ??</p>
<p><a target="_blank" href="https://authy.com/">Authy</a>, from the folks over at <a target="_blank" href="https://www.twilio.com">Twilio</a>, provides a 2FA solution that’s more secure than SMS (I find this to be an interesting intersection, coming from Twilio, and I applaud.) <a target="_blank" href="https://authy.com/blog/authy-vs-google-authenticator/">Unlike Google Authenticator</a>, you can choose to back up your 2FA codes in case you lose or change your phone. (1Password offers 2FA functionality as well - but, you know, redundancies.)</p>
<p>With Authy, your back up is encrypted with your password, similarly to how 1Password works. This makes it the second password you can’t forget, if you don’t want to lose access to your codes. If you reset your account, they all go away. I can deal with remembering two passwords; I’ll take that trade.</p>
<p>I’ve tried other methods of MFA, including hardware keys, which can make accessing accounts on your phone more complicated than I care to put up with. I find the combination of 1Password and Authy to be the most practical combination of convenience and security that yet exists in my knowledge.</p>
<h2 id="heading-privacycom">Privacy.com</h2>
<p>Finally, there’s one last line of defense you can put in place in the unfortunate event that one of your accounts is still compromised. All the strong passwords and MFA in the world won’t help if you open the doors yourself, and scams and phishing are a thing.</p>
<p>Since it’s rather impractical to use a different real credit card every place you shop, virtual cards are just a great idea. There’s no good reason to spend an afternoon (or more) resetting your payment information on every account just to thwart a misbehaving merchant or patch up a data breach from that online shop for cute salt shakers you made a purchase at last year (just me?).</p>
<p>By setting up a separate virtual card for each merchant, in the event that one of those merchants is compromised, I can simply pause or delete that card. None of my other accounts or actual bank details are caught up in the process. Cards can have time-oriented limits or be one-off burner numbers, making them ideal for setting up subscriptions.</p>
<p>This is the sort of basic functionality that I hope, one day, becomes more prevalent from banks and credit cards. In the meantime, I’ll keep using <a target="_blank" href="https://privacy.com/join/Q6V3V">Privacy.com</a>. That’s my referral link; if you’d like to thank me by using it, we’ll both get five bucks as a bonus.</p>
<h2 id="heading-outsource-better-security">Outsource better security</h2>
<p>All together, implementing these changes will probably take up an afternoon, depending on how many accounts you have. It’s worth it for the time you’d otherwise spend resetting passwords, setting up new devices, or (knock on wood) recovering from compromised banking details.  </p>
<p>Best of all, you’ll have continual protection just running in the background - an effortless boost to your <a target="_blank" href="https://victoria.dev/blog/personal-cybersecurity-posture-for-when-youre-just-this-guy-you-know/">personal cybersecurity posture</a>.</p>
<p>We have the technology. Free up some brain cycles to focus on other things - or simply remove some unnecessary stress from your life by outsourcing the fiddly bits.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The past ten years, or, how to get better at anything ]]>
                </title>
                <description>
                    <![CDATA[ If you want to get better at anything: Solve your own problems, Write about it, Teach others. 1. Searching, a decade ago I was a young graduate with newly-minted freedoms, and I was about to fall in love. I had plenty of imagination, a couple handf... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-last-ten-years-or-how-to-get-better-at-anything/</link>
                <guid isPermaLink="false">66bd8f88ff5a6ee84df6b843</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Freelancing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technical writing ]]>
                    </category>
                
                    <category>
                        <![CDATA[ writing ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Victoria Drake ]]>
                </dc:creator>
                <pubDate>Tue, 31 Dec 2019 15:31:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/12/cover-5.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>If you want to get better at anything:</p>
<ol>
<li>Solve your own problems,</li>
<li>Write about it,</li>
<li>Teach others.</li>
</ol>
<h2 id="heading-1-searching-a-decade-ago">1. Searching, a decade ago</h2>
<p>I was a young graduate with newly-minted freedoms, and I was about to fall in love. I had plenty of imagination, a couple handfuls of tenacity, and no sense of direction at all.</p>
<p>For much of my youth, when I encountered a problem, I just sort of bumped up against it. I tried using whatever was in my head from past experiences or my own imagination to find a solution. For some problems, like managing staff duties at work, my experience was sufficient guidance. For other, more complicated problems, it wasn’t.</p>
<p>When you don’t have a wealth of experience to draw upon, relying on it is a poor strategy. Like many people at my age then, I thought I knew enough. Like many people at my age now, I recognize how insufficient “enough” can be. A lack of self-directed momentum meant being dragged in any direction life’s currents took me. When falling in love turned out to mean falling from a far greater height than I had anticipated, I tumbled on, complacent. When higher-ups at work handed me further responsibilities, I accepted them without considering if I wanted them at all. When, inevitably, life became more and more complicated, I encountered even more problems I didn’t know how to solve. I felt stuck.</p>
<p>Though I was morbidly embarrassed about it at the time, I’m not shy to say it now. At one point, it had to be pointed out to me that I could search the Internet for the solution to any of my problems. Anything I wanted to solve - interactions with people at work, a floundering relationship, or the practicalities of filing taxes - I was lucky enough to have the greatest collection of human knowledge ever assembled at my disposal.</p>
<p>Instead of bumbling along in the floatsam of my own trial and error, I started to take advantage of the collective experiences of all those who have been here before me. They weren’t always right, and I often found information only somewhat similar to my own experience. Still, it always got me moving in the right direction. Eventually, I started to steer.</p>
<p>There’s a learning curve, even when just searching for a problem. Distilling the jumble of confusion in your head to the right search terms is a learned skill. It helped me to understand <a target="_blank" href="https://www.google.com/search/howsearchworks/crawling-indexing/">how search engines like Google work</a>:</p>
<blockquote>
<p>We use software known as web crawlers to discover publicly available webpages. Crawlers look at webpages and follow links on those pages, much like you would if you were browsing content on the web. They go from link to link and bring data about those webpages back to Google’s servers…</p>
<p>When crawlers find a webpage, our systems render the content of the page, just as a browser does. We take note of key signals — from keywords to website freshness — and we keep track of it all in the Search index.</p>
</blockquote>
<p>Sometimes, I find what I need by using the right keyword. Other times, I discover the keyword by searching for text that might surround it on the content of the page. For software development, I search for the weirdest word or combination of words attached to what I’m trying to learn. I rarely find whole solutions in my search results, but I always find direction for solving the problem myself.</p>
<p>Solving my own problems, even just a few little ones at a time, gave me confidence and built momentum. I began to pursue the experiences I wanted, instead of waiting for experiences to happen to me.</p>
<h2 id="heading-2-updating-the-internet-some-years-ago">2. Updating the Internet, some years ago</h2>
<p>I’d solved myself out of a doomed relationship and stagnant job. I found myself, rather gleefully, country-hopping with just <a target="_blank" href="https://heronebag.com">one backpack</a> of possessions. I met, though I didn’t know it at the time, my future husband. I found a new sense of freedom, of having options, that I knew I never wanted to give up. I had to find a means to sustain myself by working remotely.</p>
<p>When I first tried to make a living on the Internet, I felt like a right amateur. Sitting on the bed, hunched over my laptop, I started a  crappy Wordpress blog with a modified theme that didn’t entirely work. I  posted about how I tried and failed to start a dropshipping business.  My site was terrible, and I knew it. My first forays into being a “real” developer were to solve my own problems: how to get my blog working, how to set up a custom domain, how to get and use a security certificate. I found some guidance in blogs and answers that others had written, but much of it was outdated, or not entirely correct. Still, it helped me.</p>
<p>I can’t imagine a world in which people did nothing to pass on their knowledge to future generations. Our stories are all we have beyond instinct and determination.</p>
<p>I stopped posting about dropshipping and started writing about the technical problems I was solving. I wrote about what I tried, and ultimately what worked. I started hearing from people who thanked me for  explaining the solution they were looking for. Even in posts where all I’d done was link to the correct set of instructions on some other website, people thanked me for leading them to it. I still thought my web site was terrible, but I realized I was doing something useful. The more problems I solved, the better I got at solving them, and the more I wrote about it in turn.</p>
<p>One day, someone offered me money for one of my solutions. To my great delight, they weren’t the last to do so.</p>
<p>As I built up my skills, I started taking on more challenging offers to solve problems. I discovered, as others have before me, that especially in software development, not every solution is out there waiting for you. The most frustrating part of working on an unsolved problem is that, at least to your knowledge, there’s no one about to tell you how to solve it. If you’re lucky, you’ve at least got a heading from someone’s cold trail in an old blog post. If you’re lucky and  tenacious, you’ll find a working solution.</p>
<p>Don’t leave it scribbled in the corner of a soon-forgotten notepad, never to ease the path of someone who comes along later. Update that old blog post by commenting on it, or sending a note to the author. Put your solution on the Internet, somewhere. Ideally, blog about it yourself in as much detail as you can recall. Some of the people who find your post might have the same problem, and might even be willing to pay you to solve it. And, if my own experience and some scattered stories hold true, one of the people to who’ll come along later, looking for that same solution, will be you.</p>
<h2 id="heading-3-paying-it-forwards-backwards-and-investing-two-years-ago">3. Paying it forwards, backwards, and investing; two years ago</h2>
<p>Already being familiar with how easy it is to stop steering and start drifting, I sought new ways to challenge myself and my skills. I wanted to do more than just sustain my lifestyle. I wanted to offer something to others; something that mattered.</p>
<p>A strange thing started happening when I decided, deliberately, to write an in-depth technical blog about topics I was only beginning to become familiar with. I started to deeply understand some fundamental computer science topics - and trust me, that was strange enough - but odder than that was that others started to see me as a resource. People asked me questions because they thought I had the answers. I didn’t, at least, not always - but I knew enough now to not let that stop me. I went to find the answers, to test and understand them, and then I wrote about them to teach those who had asked. I hardly noticed, along the way, that I was learning too.</p>
<p>When someone’s outdated blog post leads you to an eventual solution, you can pay them back by posting an update, or blogging about it yourself. When you solve an unsolved problem, you pay it forward by recording that solution for the next person who comes along (sometimes you). In either case, by writing about it - honestly, and with your best effort to be thorough and correct - you end up investing in yourself.</p>
<p>Explaining topics you’re interested in to other people helps you find the missing pieces in your own knowledge. It helps you fill those gaps with learning, and integrate the things you learn into a new, greater understanding. Teaching something to others helps you become better at it yourself. Getting better at something - anything - means you have more to offer.</p>
<h2 id="heading-the-past-decade-and-the-next-decade">The past decade, and the next decade</h2>
<p>It’s the end of a decade. I went from an aimless drift through life to being captain of my ship. I bettered my environment, learned new skills, made myself a resource, and became a wife to my best friend. I’m pretty happy with all of it.</p>
<p>It’s the end of 2019. Despite a whole lot of life happening just this year, I’ve written one article on this blog for each week since I started in July. That’s 23 articles for 23 weeks, plus one Christmas bonus. I hear from people almost every day who tell me that an article I wrote was helpful to them, and it makes me happy and proud to think that I’ve been doing something that matters. The first week of January will make <a target="_blank" href="https://victoria.dev">my blog</a> two years old.</p>
<p>The past several months have seen me change tack, slightly. I’ve become very interested in cybersecurity, and have been lending my skills to the Open Web Application Security Project. I’m now an author and maintainer of the <a target="_blank" href="https://github.com/OWASP/wstg">Web Security Testing Guide</a>, version 5. I’m pretty happy with that, too.</p>
<p>Next year, I’ll be posting a little less, though writing even more, as I pursue an old dream of publishing a book, as well as develop my new cybersecurity interests. I aim to get better at quite a few things. Thankfully, I know just how to do it - and now, so do you:</p>
<ol>
<li>Solve your own problems,</li>
<li>Write about it,</li>
<li>Teach others.</li>
</ol>
<p>Have a very happy new decade, dear reader.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The real reason why everyone should learn to code ]]>
                </title>
                <description>
                    <![CDATA[ By Huseyin Polat Yuruk “Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs Did you ever think what Steve Jobs was trying to emphasize with this sentence? Is it about code writing?Should everyon... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-real-reason-why-everyone-should-learn-to-code/</link>
                <guid isPermaLink="false">66d84ffbe9c1a2c18adec09e</guid>
                
                    <category>
                        <![CDATA[ coding ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 20 Sep 2019 08:41:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/09/1_5JSbmq0YGcw6a3cTSsf1Qw-1.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Huseyin Polat Yuruk</p>
<p><em><strong>“Everyone in this country should learn to program a computer, because it teaches you to think.” — Steve Jobs</strong></em></p>
<p>Did you ever think what Steve Jobs was trying to emphasize with this sentence?</p>
<p>Is it about code writing?<br>Should everyone write code?<br>Should everyone be a programmer?</p>
<p><strong>NO. Not at all.</strong></p>
<p>“Everyone should learn to code” movement is wrong because it assumes that writing code is the final goal. Everyone, including most of the software developers, thinks that their job is to write code. But actually, it is not. The job of a software developer is to solve problems. It took me years to understand it.</p>
<p>Most people who call themselves programmers can’t even code. Tragically, a bunch of them are not even aware of what their job really is about. Due to this many software programs’ lifetime is too short. Why? Well, they have been developed as a solution for a specific problem but now it can’t even solve that problem due to the unconscious programmers behind it. In the end, the program dies.</p>
<p>If you talk to senior programmers, I mean real programmers, ask them what they think about writing code. They will tell you that the best code is actually no code at all and that a good programmer is the one who knows how to avoid writing unnecessary code lines.</p>
<p>“Everyone should learn to code” movement is not about coding. It doesn’t mean that everyone should be a programmer and develop software that people can use. Essentially,it’s all about <strong>problem-solving</strong>.</p>
<h4 id="heading-why-is-that">Why is that?</h4>
<p>Because programming itself covers a whole range of skills that have real-world uses. Critical thinking, problem analysis &amp; solving, logic, etc. These are skills the current generation of kids seems to be missing out on in their education.</p>
<p>I am not saying that we shouldn’t teach our kids how to code or no one should learn to code. I am trying to emphasize that coding is just a tool to solve a problem. Yes, programming can teach you how to think and how to approach a certain problem. But being a programmer is a completely different thing.</p>
<p>I would rather call this movement “Everyone should learn how to solve a problem” instead of “Everyone should learn to code.”</p>
<p>If you enjoyed this article, read <a target="_blank" href="http://huseyinpolatyuruk.com">some more of my articles on my blog</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to convince strangers to help you get a job ]]>
                </title>
                <description>
                    <![CDATA[ By Alex Lacey The 7-step process that I used to get 40 referrals In an increasingly competitive job market, landing a first-round job interview can be a major challenge in itself. However, there is one surefire way to increase your chances: a referr... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-convince-strangers-to-help-you-get-a-job-35db34549ac4/</link>
                <guid isPermaLink="false">66c350d41283974fd2bb0784</guid>
                
                    <category>
                        <![CDATA[ careers ]]>
                    </category>
                
                    <category>
                        <![CDATA[ jobs ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Tutorial ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 31 Dec 2017 23:05:13 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*rEWKvT3mQgaca6a2RBH2ow.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Alex Lacey</p>
<h4 id="heading-the-7-step-process-that-i-used-to-get-40-referrals">The 7-step process that I used to get 40 referrals</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/FYbAMRIiDM5QARHXWXrm60r3uCo0VmQizHTC" alt="Image" width="800" height="531" loading="lazy"></p>
<p>In an increasingly competitive job market, landing a first-round job interview can be a major challenge in itself. However, there is one surefire way to increase your chances: a referral from someone at the company you want to work for. This is obvious, but what if you don’t know anyone at that company?</p>
<p>In my recent job-search, I received referrals for 40 jobs at 40 hard-to-reach companies despite not knowing anyone at 38 of them. My strategy was simple. I used my free one-month trial of LinkedIn Premium (the Recruiter Lite version) to ask relevant individuals at each company. I asked for a short phone call to hear about their experiences. At the end of the call, I asked them for a referral to work there. Here’s the shocking part: <em>every single person said yes.</em></p>
<p>Over time, I’ve refined this process to maximum efficiency, and I believe that countless others could benefit from the lessons I’ve learned. So, without further ado, here is a 7-step guide to getting referrals for any job application:</p>
<h4 id="heading-step-1-sign-up-for-a-free-one-month-trial-of-linkedin-premium"><strong>Step 1: Sign up for a free one-month trial of LinkedIn Premium</strong></h4>
<p>Every LinkedIn member is eligible for a free one-month trial of LinkedIn Premium, which provides a handful of features not available to free accounts.</p>
<p>By far the best of these features is InMail, which allows you to send messages to <em>anyone</em> among the more than 500 million users on LinkedIn. As far as I’m aware, there has been nothing else in the entire course of human history that gives regular people the ability to directly contact such a large pool of individuals.</p>
<p>There are four versions of LinkedIn <a target="_blank" href="https://www.linkedin.com/premium/products?">Premium</a> that are available for a free one-month trial. Although the “Premium Career” option (normally $30/month) was supposedly designed for job-seekers, I recommend the “Recruiter Lite” (normally $100/month) plan for a few reasons:</p>
<ul>
<li>Unlimited browsing of others’ profiles</li>
<li>Advanced search functionality (including a job title filter)</li>
<li>30 InMail messages per month instead of 3</li>
<li>Unlimited InMail messages to other LinkedIn Premium members.</li>
</ul>
<p>Even if your job-search continues after the first free month or you’ve already used your trial in the past, I still believe that these features are worth the price.</p>
<p>I should also note that the LinkedIn Recruiter Lite plan has its own separate interface accessible on the top right of the page, and your InMail message credits will only be available there, not in your regular LinkedIn account.</p>
<h4 id="heading-step-2-find-people-on-linkedin-that-you-want-to-contact"><strong>Step 2: Find people on LinkedIn that you want to contact</strong></h4>
<p>For each employer that you’re interested in, you should use the Recruiter Lite search parameters to select 2–3 people that you might reach out to. Finding the right people is not an exact science, but here are some possible criteria:</p>
<ul>
<li><strong>Currently at the company</strong><br>You should use this filter for every search. The default is “Current or Past” and you should change it to “Current”. Sometimes, people have two jobs listed as current on their LinkedIn profile. This often means that they switched jobs and never officially “ended” the other job on LinkedIn. In this case, their current job is the one with the most recent start date, which can be determined by clicking on their profile.</li>
<li><strong>1st-degree connections</strong><br>If you already know someone at a company, they can give you a “warm introduction” to someone that has the role you desire. This is by far the most common tactic that people use to get referrals. Also although it has a higher rate of success than reaching out to strangers, it is inherently limited by the size of your network. As such, do not rely on this in isolation.</li>
<li><strong>LinkedIn premium members</strong><br>It costs zero InMail credits to contact someone who also has a LinkedIn Premium subscription. People who have LinkedIn Premium are generally more active on the platform. This means that they’re slightly more likely to respond than a non-premium member. For large companies, I was able to solely contact these members and save up InMail credits for smaller companies. Although it’s not possible to filter a search to premium members only, the algorithm seems to push them to the top of the results. Additionally, the gold LinkedIn logo next to their information makes them quite easy to identify.</li>
<li><strong>Job title similarity</strong><br>You should use the “position” search filter to find people that have similar job-titles to the one you are seeking. Their referral often carries more weight than a referral from someone else at the company.</li>
<li><strong>Seniority</strong><br>Give preference to higher-level people, as their referrals also carry more weight. For medium to large companies, it should not be difficult to find someone who has a related role at a higher level with a LinkedIn Premium account. It takes a bit of digging to find out how an employer’s hierarchy works. However, it can often be found by viewing the LinkedIn profiles of senior people that have been at a company for a long time. Their history of various roles at the company can be helpful. It’s important to note that many higher-ups have a lot of sources vying for their attention. Thus the rate of success in contacting them will be significantly lower, but still worth a shot. If they do agree to chat, they’re more likely to be comfortable with giving a referral, than an entry-level employee. This may be because they’re more familiar with the process</li>
<li><strong>2nd-degree connections</strong><br>Suppose you have a mutual connection with someone. You can ask your shared connection to give you a formal introduction to them on LinkedIn. If you don’t know your mutual connection well enough to ask for an introduction, you can mention that you both know the person in your message to them.</li>
<li><strong>University</strong><br>If they attended the same college as you, that’s one instant factor in which you can relate to them. This will make them more likely to agree to take time to speak with you on the phone. In my own experience, I’ve found that graduates from a non-Ivy League schools, such as myself, working in hard-to-reach companies were likely to help. Perhaps this is because they also had to work a bit harder in the application process.</li>
<li><strong>Anything else you have in common</strong><br>Location, college major, hometown, interests, and so on. Everything on their LinkedIn profile is fair game.</li>
</ul>
<p>There are a lot of factors to consider, but it’s important to not over-analyze each person’s profile in an attempt to find the “perfect” referral. Spend 10 minutes choosing 5–10 people at a company and move on. To stay organized, you can set up a new “project” in the recruiter interface for saving profiles that you want to contact.</p>
<h4 id="heading-step-3-send-inmail-to-the-people-youve-found"><strong>Step 3: Send InMail to the people you’ve found</strong></h4>
<p>First, before reaching out to anyone, make sure that your LinkedIn profile is completely updated and looks as impressive as possible. Some of the people you contact will look at your profile.</p>
<p>When you are ready to send a message to someone, the content of the message is important. To maximize your chances of receiving a response, ask them for a 15-minute phone call to discuss their experiences with the company. Here’s a stock message you can use:</p>
<blockquote>
<p>Hi [their name],</p>
<p>My name is [your name]. I’m currently looking into jobs within [specific industry], and I saw that there was a posting at [their company]. [mention anything you and them have in common, if applicable].</p>
<p>I don’t know too much about what this role looks like at [their company], and I’d love to hear about your experiences. Would you be able to chat on the phone for ~15 minutes sometime this week?</p>
<p>[your name]</p>
</blockquote>
<p>Resist the urge to add extra details that aren’t 100% necessary. The recipient will be less likely to read the whole message. If you do add something, make sure it truly increases your likelihood of getting a response</p>
<p><strong>Side note</strong>: If you’re a student, always mention it, because people love to help students.</p>
<p>It’s important to remember that this process is inherently hit-and-miss. Some (most) of the people you reach out to will not respond, and that’s okay. <em>Do not</em> over-analyze the situation or let this discourage you.</p>
<h4 id="heading-step-4-plan-out-a-time-to-talk"><strong>Step 4: Plan out a time to talk</strong></h4>
<p>If the person replies, make sure to be prompt in your response to them. They’ll often ask you to send a few time slots in which you’re available. As a courtesy, provide a wide range of availability in their time-zone. This can be inferred from their location listed on their LinkedIn profile.</p>
<p>People will often want to talk during their work-hours, most commonly on Fridays. This is especially true for consultants, though there are exceptions.</p>
<h4 id="heading-step-5-talk-to-them-on-the-phone"><strong>Step 5: Talk to them on the phone</strong></h4>
<p>You should be prepared for the call with a few questions for them, as you will be expected to guide the conversation. As with in-person interviews, the general rule-of-thumb is that you want to ask subjective questions. They would likely provide a different answer than someone else. Do not concrete questions that could be answered with a Google Search. Here are some ideas:</p>
<ul>
<li>“How does this role differ from this role at [similar companies]?”</li>
<li>“Based on your experience, what is the company culture like compared to other places you’ve worked?”</li>
<li>“How does this job compare to [previous job listed on their LinkedIn profile]?”</li>
<li>“What does the day-to-day work look like in this role?”</li>
<li>“How would you define success in this role?”</li>
<li>“If I were to receive this job or a similar job, how do you recommend that I prepare for it?”</li>
<li>“Do you have any general advice for me in my job search process?”</li>
</ul>
<p>Then, after 10–15 minutes, ask the following question:</p>
<p>“I know that the role is super competitive, so do you think it would be valuable for me to seek out a referral from you or someone else at the company?”</p>
<p>You’ll be surprised how often they say yes.</p>
<p>If they agree, you should then ask about how the referral process works, because it varies between employers. In smaller companies, they’ll usually just send your resume to a recruiter. At larger companies, there is often a simple form that they can fill out. In most cases, the company will want you to apply online also. However, employers vary on whether you should submit the application before or after the referral. Make sure you find out. Often, the person you’re speaking with won’t know the details of the referral process offhand, so they’ll need some time to inquire.</p>
<h4 id="heading-step-6-follow-up"><strong>Step 6: Follow up</strong></h4>
<p>Your communication with each person should continue beyond the initial referral. This is necessary because it facilitates future contact if necessary. Maybe you’ll need a referral again someday, but more importantly, it shows them that their favor meant a lot to you.</p>
<p>I recommend following up the next day with a LinkedIn connection request. This allows you to contact them again in the future after your premium subscription is over), including a message like this one:</p>
<p>“Once again, thank you so much for speaking with me yesterday and referring me to [their company]! I’ll keep you updated on the outcome of the application process.”</p>
<p>In addition, you should update them once the outcome of that specific application has been decided. They’ll often be notified by the recruiter about whether you got the job, but it’s also nice to communicate with them personally. Also you should contact them again once you accept a job offer somewhere.</p>
<h4 id="heading-step-7-pay-it-forward"><strong>Step 7: Pay it forward</strong></h4>
<p>In the grand scheme of things, this is the most important step. When others ask you for career-help in the future, remember the people who helped you. Give advice. Be a mentor. Go above and beyond for them. Then, further in the future, the people that you helped will do the same for others, and so on.</p>
<p>If you get the chance, please respond in the comment section of this article to let me know how you were able to network to find a job. Eventually, I’d like to publish an updated version of this article that includes information from others too.</p>
<p>And above all else: never give up hope. Rejection will happen. Do not allow yourself to get discouraged. Good luck!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ This is what you need to know about Socially Responsible Programming ]]>
                </title>
                <description>
                    <![CDATA[ By ?? Anton de Regt Your talent is worth more than lots of zeroes in your bank account Lately, I have seen a lot of stories about people getting their first developer job. Like this one or this one or this one. This is great news, but… Their focus se... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/this-is-what-you-need-to-know-about-socially-responsible-programming-1085d31faec1/</link>
                <guid isPermaLink="false">66c36324af2b7c40e7d7eb49</guid>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 16 Oct 2017 07:04:46 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*u-kxswKIXPTTjVHbe_-0AA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By ?? Anton de Regt</p>
<h4 id="heading-your-talent-is-worth-more-than-lots-of-zeroes-in-your-bank-account">Your talent is worth more than lots of zeroes in your bank account</h4>
<p>Lately, I have seen a lot of stories about people getting their first developer job. Like <a target="_blank" href="https://forum.freecodecamp.org/t/got-my-first-developer-job/138772">this one</a> or <a target="_blank" href="https://forum.freecodecamp.org/t/finally-got-my-first-developer-job-mid-level/127622">this one</a> or <a target="_blank" href="https://medium.freecodecamp.org/how-i-got-my-first-dev-job-and-what-im-going-to-do-next-4837b1e9c89c">this one</a>. This is great news, but…</p>
<p>Their focus seems to be about getting the good paying jobs in IT after they learned how to code. I don’t think they realize the potential of what they learned. Programming is so much more than an income provider. Code can make or break the world. But why should you care what I have to say?</p>
<p>I’ve tried helping society in different ways. I volunteered my time for causes like the Red Cross or the local athletics club. I’ve donated money to charities. But it’s time to take a different approach. The reason for this is that I don’t have a talent for generating a lot of money. Thus, donating money is not the most effective method for me. I also don’t have a particular talent for folding camp beds with Red Cross volunteers.</p>
<p>The difference with earlier attempts to give back to society is that I now focus on my talents. I got these talents from studying computer science a few years back. I don’t work for a tech company. But in my free time I love to work on small projects. So, my new approach is to use my programming skills to code socially responsible.</p>
<h3 id="heading-what-is-socially-responsible-programming">What is Socially Responsible Programming?</h3>
<p>Let’s start by abbreviating it to SRP. By doing SRP you don’t donate your money to society, you donate your programming skills.</p>
<blockquote>
<p>“If I have the means, I have the responsibility to employ them.” ― <a target="_blank" href="https://www.goodreads.com/author/show/9629.Terry_Brooks">Terry Brooks</a></p>
</blockquote>
<p>All programmers have this amazing skillset to turn nothing into something valuable. They build things out of thin air. I’ve always found it super rewarding to create something. Working for a tech company must be even more rewarding because the things you create are being used by many.</p>
<p>What if I tell you there is an even more rewarding way to use your fingers? And what if you don’t even have to work for a big tech firm? What can be more rewarding than disrupting the world with your code?</p>
<p>The answer is: disrupting the world with your code and making it a better place at the same time. This is what I call Socially Responsible Programming (SRP). In this article, I’ll tell you everything about it and I’ll explain why you should care.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/cteGf6wYVRnAoVXkCWiSwfMxDO5ffDSPBt4k" alt="Image" width="800" height="418" loading="lazy">
_[source](https://adsoftheworld.com/media/ambient/paper_dispenser" rel="noopener" target="<em>blank" title=")</em></p>
<p>You don’t have to be a renowned programmer to start reaching for the high levels of SRP. A few years ago I studied computer science. After my degree I didn’t see how I could improve the world with coding. So, I decided to do something else. A few months into the new adventure I missed programming. So I started a few projects from the <a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp</a> curriculum.</p>
<p>These projects reignited my love for programming and I haven’t lost it since. I don’t see myself as a particularly talented programmer. I like to code and JavaScript makes it super easy to build awesome stuff that runs on phones and desktops.</p>
<p>Currently, I am working on a project with a friend that will connect elderly with youngsters. The goal of this project is to reduce the loneliness of elderly people.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Vx5ngjTSppi2R8I-nsWEPhbUjwOrVAKMVeEf" alt="Image" width="800" height="411" loading="lazy">
_[Loneliness of elderly in Europe](https://flipchartfairytales.wordpress.com/2013/10/21/jeremy-hunts-granny-friendly-societies/" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-requirements-for-reading-this-article">Requirements for reading this article</h3>
<p>To be eligible to read this article you have to meet either of the following criteria:</p>
<ul>
<li>I’ve built a website at least once</li>
<li>I’ve built an Android/iOS app at least once</li>
<li>I’ve studied computer science</li>
<li>I knew <a target="_blank" href="https://nl.wikipedia.org/wiki/Ada_Lovelace">Ada Lovelace</a></li>
<li>Other coding experience</li>
</ul>
<p>If you don’t have any programming experience, don’t sweat it. Start with the <a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp</a> curriculum and come back here in a few months.</p>
<p>Also, feel free to substitute programming with any other skills you might have. If you do have coding experience you meet all the requirements for this article, keep reading.</p>
<h3 id="heading-the-goal">The Goal</h3>
<p>The goal of SRP is to create value for your users. Value is usually created by helping users with a problem. With SRP it is the same, it also focuses on a problem. But not every problem qualifies.</p>
<p>The problem of not being able to find a <a target="_blank" href="https://www.uber.com/">cab</a> doesn’t qualify. The problem of not having enough time to <a target="_blank" href="https://www.seamless.com/">cook</a> doesn’t qualify. Also, the problem of being too damn lazy to get off the couch doesn’t qualify. Of course, I’m exaggerating.</p>
<p>When a game gets kids from all over the world to go outside it definitely is a socially responsible game. Well done Pokemon GO!</p>
<blockquote>
<p>“The world howls for social justice, but when it comes to social responsibility, you sometimes can’t even hear crickets chirping.” ― <a target="_blank" href="https://www.goodreads.com/author/show/9355.Dean_Koontz"><strong>Dean Koontz</strong></a></p>
</blockquote>
<p>It’s impossible to write down a list of qualifying issues. Different individuals or societies will have different perceptions of the severity of issues. When in doubt, ask yourself if you could argue that you have a moral obligation to help on a particular issue. When the answer is yes, most of the time it’s a good issue to start a project around.</p>
<p>For example, it is possible you feel a moral obligation to give to charity or to help elderly people cross the road. Issues that do qualify don’t have to be global issues.</p>
<p>Your solutions can also be very simple like customizing a free website template. At the end of this article, I’ll list a few examples of socially responsible projects. For inspiration see this <a target="_blank" href="https://en.wikipedia.org/wiki/Social_issue">link</a> of typical social issues that live in society.</p>
<p>The goal of SRP is to build something that helps any number of people, animals, trees, or… basically anything. But why is it so important to help society?</p>
<h3 id="heading-why-srp-is-important"><strong>Why SRP is important</strong></h3>
<p>Now I’m going to bombard you with moral statements…</p>
<p>Wouldn’t you want help if you needed it?</p>
<p>Wouldn’t you want people to use their skills to make something that is actually beneficial to the world?</p>
<p>Should the primary motivation to work be generating digits on a bank account?</p>
<blockquote>
<p>“Successful people have a social responsibility to make the world a better place and not just take from it.” — <a target="_blank" href="https://www.brainyquote.com/quotes/quotes/c/carrieunde471313.html"><strong>Carrie Underwood</strong></a></p>
</blockquote>
<p>You have a talent. I know you do because you qualified for this article! You have the ability to change lives for the better.</p>
<p>We are all stuck on this planet together (for now at least), so instead of donating money, donate your time. This method is much more effective, especially if you put your talents to work.</p>
<p>If you are reading this article you speak English, have <a target="_blank" href="http://www.internetlivestats.com/internet-users/#byregion">internet access</a> and a little free time. By these metrics, I dare to say that you have a better life than at least half of the population on earth. That’s almost 4 billion people! Which means there are enough people that could enjoy your help. These people deserve a little bit of your attention. Programmers especially have the ability to help them, I’ll explain how you can do that in a little bit.</p>
<p>The cool thing is that SRP doesn’t just help others, it also benefits you. For me the most important reasons I code responsible are the following:</p>
<ol>
<li>I feel great about myself</li>
<li>It adds a sense of purpose and meaning to my life</li>
<li>I can help others in need and make a difference</li>
</ol>
<p>Now it’s time to get into how you can start with SRP.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/KdTbLtjOGILChuxSAciKXt6SuPs7r7ofjAa-" alt="Image" width="800" height="904" loading="lazy">
_[source](https://adsoftheworld.com/media/ambient/the_father_bob_maguire_foundation_bins" rel="noopener" target="<em>blank" title=")</em></p>
<h3 id="heading-how-to-code-for-society">How to code for society</h3>
<p>It all starts with opening your eyes to the people around you to find a qualifying issue. The best way to do this is by changing your routine. Go to places you’ve never been before.</p>
<p>For example, visit a local <a target="_blank" href="https://www.meetup.com/">Meetup</a>. Meetups are my new way of opening my eyes. I even sent in a 5-minute lightning talk proposal to the AmsterdamJS Meetup and it got accepted!</p>
<p>Once you’ve opened your eyes, you’ll start to notice things that could benefit from a few lines of code. Start with simple projects to get experience, and keep upgrading your projects.</p>
<p>Time is scarce, but to make a difference you will have to invest time in your project. Make sure you put at least a set number of hours in it each week. I put at least 2 hours a week into my SRP projects, most of the time a lot more. Set any goal for yourself and stick to it.</p>
<p>If you want a fun and easy way to track how much time you spend on different projects try <a target="_blank" href="https://wakatime.com/">WakaTime</a>. Your free time has its limits of course, but there’s a solution for this. Ask your boss if he will grant you a few hours a week to work on a socially responsible project. Smart bosses accept this so they can show to clients how good they are for society.</p>
<p>Are you ready for some examples?</p>
<h3 id="heading-examples-of-social-projects">Examples of social projects</h3>
<p>There are a lot of cool examples of people who’ve built apps or websites that make the world a better place. The examples listed below are pretty advanced. Don’t get intimidated, instead look at it to get inspired.</p>
<h4 id="heading-teaching">Teaching</h4>
<p><a target="_blank" href="https://www.khanacademy.org/">Khan Academy</a> has a mission to provide a free, world-class education to anyone, anywhere. It teaches a range of topics, from math to history.</p>
<p><a target="_blank" href="https://www.freecodecamp.org/about/">freeCodeCamp</a> is a community that helps you learn to code. Once you learned to code you can get experience by contributing to open source projects. Non-profits actually use these programs.</p>
<h4 id="heading-guides">Guides</h4>
<p><a target="_blank" href="http://ankommenapp.de/APP/EN/Startseite/startseite-node.html">Ankommen App</a> is a guide for refugees to get to know Germany in their first few weeks in the country.</p>
<p><a target="_blank" href="https://play.google.com/store/apps/details?id=com.earth911.android&amp;feature=search_result">iRecycle</a> can tell you how, where and when to recycle anything.</p>
<h4 id="heading-games">Games</h4>
<p><a target="_blank" href="https://play.google.com/store/apps/details?id=treeplanet.dev.treeplanet2&amp;hl=en">Tree Planet 2</a> turns virtual trees into real ones. The aim of the app is to grow a virtual tree. The game will need its users to fertilize, water and defend it from loggers. While users are growing a tree on their phones, a real life tree is also planted and tended to. Tree Planet 2 claims to have planted 500,000 real trees in 10 different countries.</p>
<p><a target="_blank" href="https://itunes.apple.com/hk/app/save-children-earthquake-response/id395153026?mt=8">Save the Children Earthquake Response</a> is a simulation game about disasters. It has the goal to spread awareness about disaster relief.</p>
<h3 id="heading-final-thoughts">Final thoughts</h3>
<p>I’m not saying you should quit your job and go all philanthropic. What I am saying is: start thinking about how you can solve issues that you see in your environment. It could be a personal issue and that’s fine, as long as you can help someone or something with your talent! <strong>What can you come up with?</strong></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Vyv6brYeCShunmTCXlILl3ta5IhRENWlXuL-" alt="Image" width="486" height="262" loading="lazy">
_[source](https://giphy.com/gifs/robin-williams-moviegif-moviequote-f56Z2mFv6ipLa" rel="noopener" target="<em>blank" title=")</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I went from selling food in the street to working for top firms in tech — Part 3: first week on… ]]>
                </title>
                <description>
                    <![CDATA[ By Alvaro Videla This is the third installment in this series of articles where I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. Here’s the first and second parts i... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-part-3-first-week-on-9b4486eb02ee/</link>
                <guid isPermaLink="false">66c34e48a124e2df05195f6f</guid>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 29 Sep 2017 14:26:42 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*UCVDYCm03G5MQc9oXCTiGw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Alvaro Videla</p>
<p>This is the third installment in this series of articles where I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it.</p>
<p>Here’s the <a target="_blank" href="https://medium.com/@old_sound/become-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-6aa61a2d0629">firs</a>t and <a target="_blank" href="https://medium.freecodecamp.org/become-ii-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-5da51d788ea9">second</a> parts in case you haven’t seen it yet. If you like the series and want to see a book out of this, please leave a comment below. <a target="_blank" href="https://tinyletter.com/videlalvaro">Subscribe</a> to my newsletter to stay up to date as I go along writing this book.</p>
<h3 id="heading-the-technical-interview">The Technical Interview</h3>
<p>The programmer who was interviewing me explained how things would go, that I was going to walk right into their offices, get my own desk, and program at one of their computers, with everybody else just doing their jobs, since “that’s how it’s going to be if you join us.” I thought that was pretty cool already. And just like he said, once I got into the office, everybody said hello and continued doing their jobs. Even though I wasn’t close to getting the job, I was already starting to feel like a part of something.</p>
<p>The test consisted of building a website to list books for an imaginary library. It seemed simple enough: connect to a database, fetch a list of books, and display them on a webpage, with the buttons for the usual actions for adding books, deleting them, and updating their information. “I can do that,” I thought.</p>
<p>While I was focusing on the test, behind me were programmers who were splitting their time between working on their tasks and playing with tennis balls in a very particular way: they were throwing them at each other, with a lot of force, up to the point where one shot hit the reset button of one of the computers and one guy lost what he was doing on his editor. “That’s a strange way to work, but it’s kinda cool,” I thought. I had expected a more formal working environment, but was pleasantly surprised at how relaxed the environment was.</p>
<p>Meanwhile, halfway through my implementation, I got stuck. I couldn’t get my code to print the list of books, and nothing was showing up on the screen. “How do I get out of this one?” I wondered. I tried to debug it by adding print statements here and there, but that didn’t work, and I had no idea what was going on. The clock was ticking away, and I was starting to get really desperate. “Come on,” I told myself. “I can’t miss this opportunity because of this problem. What do I do? Should I ask for help? What if this disqualifies me instantly?”</p>
<p>I thought about it some more. “I guess they help each other during work,” I reasoned. “OK, whatever, I’m going to ask for help.” I called the interviewer over and talked him through my problem, trying to explain everything I had tried so far, so he wouldn’t think I was cheating him into giving me an answer. Lucky for me, he also had no idea what was going on, so he told me it was fine and that I could leave it as it was.</p>
<p>Unfortunately, I had used too much time on this debugging session so I didn’t have enough time to complete the second part of the test. Later on, I would value this lesson, since I saw that asking for help earlier would have saved a lot of time later — time that in this particular case was critical for me. And in the future, it could be critical for the company I would end up working for.</p>
<p>I didn’t want to ask for extra time to try to solve the next problem, since I thought that wasn’t fair. I wanted to play by the rules, because I felt it was the right thing to do. As we’ll see later, I think that decision paid off.</p>
<p>In the meantime, I had the second problem in front of me and I had to do something about it. I skimmed through it and saw that it was about parsing URLs out of some log files, so I gathered some courage. I put my most convincing face and told the guy that while I understood my time was up, the solution was a matter of just “splitting these lines by these characters, and then going with the URL splitting by using this and that character.” The guy nodded, and told me that indeed that was the solution. Then he said that the interview was over, and he asked me if I had any questions about the company or if there was something I wanted to add.</p>
<blockquote>
<p>Later on, I would value this lesson, since I saw that asking for help earlier would have saved a lot of time later</p>
</blockquote>
<p>“Well, now that you ask, yes,” I began. “I’ve been building this mapping application that I want to show you…” This was my opportunity to shine. I typed the website URL on the computer in front of us and started to pray to every god out there for it to load without problems. “Please, just this one time,” I thought. And as every element from the website finished loading, my anxiety decreased and my excitement increased. The creation I was most proud of was there, right in front of my eyes, and more importantly, in front of the eyes of the person who would decide if I had a job or not.</p>
<p>I went through every feature of the app, explaining with passion the goal of the app, which features it had, and which features it lacked but that I knew I had to implement to have a clear business case.</p>
<p>After a demo, he seemed impressed by Aleph Maps and gave me kudos for it, which made me happy I’d had the chance to run the demo for him and gone ahead with it. This showed me that all the demos I had run for various members of my family and for my friends had been worthwhile, since when it mattered, I was able to show that I could not only build things on my own, but also that I was good at explaining things.</p>
<p>By then it was around 6 p.m. — time for them to call it a day, and for me to get back home. As we were leaving the building together, I asked the man who conducted my tests if he was attending university, because perhaps he knew my friend who had told me about this job opportunity. “Oh yeah, I know your friend, why didn’t you mention him before?” he asked. I didn’t answer, but the fact was that I didn’t want to bring it up and use it to my advantage during the interview. But in any case, it didn’t hurt afterward. He showed me how to get public transport back to the bus terminal and then we parted ways.</p>
<p>Once on my own, I couldn’t believe I was done with the interview. Everything I had prepared for in the last two months had passed in what felt like the blink of an eye. All the stressing out about the little details — some that mattered, some that didn’t — was gone. Now it was me and Montevideo, and the streets crowded with people going back to their homes, and the cars, and the night falling over the city. I’d done it.</p>
<p>Once I had processed all of it, the worst part came. It was time to take the bus and head home to wait for an answer, and waiting is something I’m really bad at. But that’s what it became. Waiting while staring at the ceiling of our room, wondering with my wife how our lives would change if I got the job. Waiting while looking at my books without knowing if I should have kept reading them or not. Waiting while making sure my phone had enough battery power so there would be no missed phone calls. Waiting, until at some point the wait was over, my phone rang, and again it was that number from Montevideo.</p>
<p>“When can you start?” asked the voice on the other end. I was in. Yes, me. They wanted me: the guy who barely knew how to program, but let’s not worry about that now. “They want me,” I told myself, letting it sink in. “I’m in.” The whole gamble had paid off. Finally, after all those years of having jobs that paid nothing, working just because that’s what people do, even if having jobs meant forgetting about our dreams — finally, life was starting to turn around and smile on us, and from one day to the next, we could see a life that was worth living.</p>
<p>I asked for one week to move to Montevideo, so they told me February 26 would be my starting date. “You will be working in PHP and JavaScript. You’re going to earn 15,000 pesos (500 USD) a month.” FIFTEEN THOUSAND PESOS! That was three times what my wife was making! “We are going to be rich!” I thought. I was going to be able to buy as much Coca-Cola as I wanted! We could probably even manage to save $100 per month and buy a house someday. We couldn’t believe what was happening to us.</p>
<blockquote>
<p>Finally, life was starting to turn around and smile on us, and from one day to the next, we could see a life that was worth living</p>
</blockquote>
<p>I spent that week prepping in JavaScript and trying to find a place to stay in Montevideo. A friend hooked me up with his apartment, since he was going to move out after Easter. The rent was good for us, so we decided that in about a month my wife would move to Montevideo and join us. The “apartment” was just one room, plus a kitchen and a small bathroom, and you could only fit two beds and a dining table in there. For a short while, it would be three of us living in that room, but honestly, that didn’t matter to us. I would be starting a new and exciting job, and we would have a place to live. Mission accomplished.</p>
<h3 id="heading-first-week-at-work">First Week at Work</h3>
<p>My first day at work began with a nice twist: the person who conducted the interview was also my new manager. He brought me to office kitchen, we sat down at the table, and he started explaining what the company was doing, what the business model was, and so on. He then proceeded to lay down on a piece of paper depicting what the backend architecture was like, how things worked, what the server was doing, where the database was located, and many other details. I have to be honest: it was hard to follow. I recall hearing the term “production” a couple of times too. “This is our production setup,” “Here’s the production database,” and so on. I had no idea what this <em>production</em> thing he kept talking about was! Later, I learned that production referred to all the infrastructure, including code, that was facing clients and producing income for the company.</p>
<p>We went through a couple of questions and answers here and there, and then came to what was, for me, the most significant part of that day. He looked at me and told me, honest and straight to the point: “We know that you’re not a good programmer, that you are just starting at this, and that you have no experience, so before you’re even able to commit one line of code to our codebase, we need you to study this book,” he said as he handed me a copy of <em>PHP Objects, Patterns, and Practice</em> by Matt Zandstra. “You have to know it by next week.” As straightforward it was, this was some of the most solid, sincere, and helpful feedback I’ve ever received as a programmer. To this day, I thank him for being forthright with me. During my career, I’ve learned how difficult it is to come by a manager who will give you this kind of feedback — feedback that’s useful for understanding your own shortcomings, but at the same time puts you on the right track in order to overcome them.</p>
<p>Then he told me: “We know you are inexperienced, but during the interview you showed yourself as a person with a great attitude. That’s why we hired you.” I was speechless. I wondered what I’d done to deserve such an opportunity. Even more, I knew I had to prove I was worth it, so I set myself a goal of mastering the design patterns book as quickly as possible. First, I couldn’t disappoint my new boss who had taken a chance on me, and second, I finally had an opportunity in the big leagues, at the job I’d worked so hard for. It was time to shine.</p>
<blockquote>
<p>“We know you are inexperienced, but during the interview you showed yourself as a person with a great attitude. That’s why we hired you.”</p>
</blockquote>
<h3 id="heading-fired-after-one-week-on-the-job">Fired After One Week on the Job</h3>
<p>During my first week, I studied that book like my life depended on it, because in a way, it did. I tried to learn as many of those design patterns as possible, practicing every example, and I tried to absorb as much knowledge as possible. By the end of the week, I wanted my manager to come to me and tell me, “Now you’re ready to start programming with us.” But as with every tale, this story needed a twist.</p>
<p>That Thursday, some people from the company came and called me to another room to deliver some news: the company was conducting layoffs, and I was among the people being let go. “Nothing personal,” they said. “Business isn’t going too well, and we need to downsize, so we’re letting go of people who just joined the company. We hope you understand.” That day, I was one of around 50 employees who lost their jobs.</p>
<p>I’m not sure I can accurately describe what I felt at that moment. “Why does life has to be like this?” I wondered, feeling somewhat discouraged and helpless. “What do I do now?” I asked to use the phone and called my wife. “Please don’t worry, but I have some bad news…” I began. I tried hard not to lose my composure, but meanwhile, the whole world was coming apart below my feet. All around me were employees coming in from other rooms and bidding farewell to all the people who were just fired, which only made me feel worse. Even so, I tried to convince myself that I shouldn’t despair. I had gotten this far, so it was simply a matter of applying to another job somewhere else.</p>
<p>While I was saying goodbye to my short-lived colleagues, one of them tipped me off about some companies I should apply for, so I took note. From an internet cafe, I sent out job applications to the companies my brand new former colleague gave me, and when I was done, I headed back home.</p>
<blockquote>
<p>I tried to convince myself that I shouldn’t despair. I had gotten this far, so it was simply a matter of applying to another job somewhere else.</p>
</blockquote>
<p>“What a depressing day,” I thought. I entered the apartment and laid down on the bed, which for the record, was just a mattress on the floor. I remember the sky was gray, a perfect match for how I was feeling. I tried to nap, but my mind was lost, staring at the ceiling of that empty apartment and thinking about this new turn of events. “What if I hadn’t been fired?” “What did I do wrong?” I knew I had done nothing wrong. It was just bad luck, but it was hard to accept it.</p>
<p>Suddenly my phone rang.</p>
<p>“Is this Alvaro Videla? I’m calling from Intersys. We received your application and we want to have an interview with you. Is next Monday OK for you?”</p>
<p>“OF COURSE THAT’S FINE WITH ME,” I thought, but instead I said, “Yes, that sounds great, I’ll be there.” As I hung up and placed my phone on the floor, I was in shock, unable to believe what had just happened. Montevideo was a city full of surprises.</p>
<p>The next day I went down the street and asked the barber if he would give me a free haircut, since I had a job interview lined up but I had no money left. I still hadn’t received my salary from the week of work, so I needed a favor in exchange for being paid back the following week. Luckily, he was really happy to help me. I still remember his warm smile; he felt proud he was helping a neighbor get a job. While I was getting the haircut, he shared his story. I learned that in the early 2000s, he and his crew were the winners of some world hairdresser championship! I had no idea there were hairdresser championships. Don’t worry, I couldn’t believe him either back then. Either way, getting a haircut with a “world champion” was cool, but also meant that the service was expensive — $10 to be exact. It doesn’t seem like much, but keep in mind that in my hometown I could get a haircut for less than $2, and $10 could buy me at least five burgers and a soda. That said, it was quite an investment for my next job interview. I couldn’t complain though: a total stranger was doing me a favor when I needed it the most, and that raised my spirits.</p>
<p>The next week came and I had my interview, which went great. The company I was just fired from was Live Interactive, after all, which happened to be well known in Montevideo due to being one of the biggest internet companies in the country. This meant that programmers coming from there were well regarded. Needless to say, I got the job. The salary wasn’t that great, but our plan of moving to the capital was still intact. Not bad for my first 10 days in Montevideo.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>All in all, my plan had worked, and all my preparation and study paid off. I got my first job interview as a programmer and then passed it. I was hired and fired in the space of one week, but I didn’t give up and went on to secure a second job interview, landing a new position in my second week in Montevideo.</p>
<p>But in order for this to happen, the first and most important step was being honest with myself. This allowed me to assess my skills to see what I was good at doing and where I had to improve.</p>
<p>Being self aware helped me when I embarked upon the task of creating a program from scratch, because I was realistic about what I could do, but at the same time it forced me to do something about the areas where I was lacking. Additionally, dividing the project into actionable tasks helped me make progress and follow my idea through to completion.</p>
<p>But it wasn’t just about skills; I also had to believe in myself, and that self confidence helped me whenever I faced a challenge that seemed like an insurmountable mountain.</p>
<p>Meanwhile, humility always kept me in check, reminding me that what I had just climbed was but a little peak from among the many I had yet to climb.</p>
<p>Finally, my family and friends offered help and support, and whenever I felt defeated, they kept me focused and reminded me why I was on my journey and what the destination was. In the end, because I persisted, I had become hirable, and now it was time to become an actual programmer.</p>
<p>I hope you enjoyed reading these series. My goal is to get a book out of this, telling more stories, like how ended up living in China for three years, or how I started my career as an international speaker, or how I got my first book contract to write about RabbitMQ.</p>
<p>If you want to follow along and stay up to date, don’t forget to <a target="_blank" href="https://tinyletter.com/videlalvaro">subscribe</a> to my newsletter.</p>
<p><strong>Credits</strong>: The illustration on top was made by my friend <strong><em>Sebastián Navas</em></strong>. If you want to see more of his art go to his Deviantart profile: <a target="_blank" href="https://polacostyle.deviantart.com">https://polacostyle.deviantart.com</a> or get in touch with him via Facebook: <a target="_blank" href="https://www.facebook.com/sebastian.navas.16">https://www.facebook.com/sebastian.navas.16</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How you can build a strong coding community in your city — and how I did it ]]>
                </title>
                <description>
                    <![CDATA[ By Billy Le Communities are important. They are the bedrock that glues together shared beliefs, a common passion, and a sense of belonging. This helps everyone work together towards their personal or communal goals. I’ve been the organizer of freeCod... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/https-medium-com-xgee-whiz-tips-for-building-an-amazing-coding-community-7606c81c3822/</link>
                <guid isPermaLink="false">66c35718dae03919d93dc050</guid>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 28 Sep 2017 22:01:43 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*tJetdMFlvYp7UpaqL7qq-w.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Billy Le</p>
<p>Communities are important. They are the bedrock that glues together shared beliefs, a common passion, and a sense of belonging. This helps everyone work together towards their personal or communal goals.</p>
<p>I’ve been the organizer of <a target="_blank" href="http://www.freecodecampsacramento.org">freeCodeCamp Sacramento</a> for over a year now, and I’ve learned a great deal about how to run a community. I’ve met people from other study groups, and we often exchange tips for how to run a community. The topic often comes up because I think people genuinely want to organize their own communities.</p>
<p>In this article, I’ll share some tips for running a community. I’ll elaborate on some of the values, techniques, leadership, and organization skills I’ve learned along the way. I’ve organized these into 10 tips that I think you’ll find actionable and memorable.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/u8j1vh0C7301p8WP6JlL3d8asbHRJc5bvHF2" alt="Image" width="800" height="600" loading="lazy">
<em>A group photo of campers during our first annual community BBQ</em></p>
<h3 id="heading-tip-1-enforce-time-dedicated-to-productivity-and-social-coding">Tip #1: Enforce time dedicated to productivity and social coding</h3>
<p>I encourage people to bring headphones or earphones to the events. This is because I want people to get some work done in the first hour of the event. Because the community is together, it’s really easy to get distracted by the conversations happening around them.</p>
<p>To help people progress in their coding goals, I try to enforce a policy where people are encouraged to work on their code for one hour during the event.</p>
<p>This is not limited to freeCodeCamp material. People can work on Java, help someone with their code, watch video tutorials, or whatever.</p>
<p>Encouraging people to be productive helps them build their existing skill set so that they can become better developers. I want everyone to have a chance to work toward their goals.</p>
<p>The second part about these events is that they allow time for social coding or networking. Many developers will tell you that knowing how to program will land you a job, but soft skills are equally important.</p>
<p>For the quiet types, I often try to engage them in conversations. Sometimes in the middle of a conversation with another person, I will find an opportunity to ask the the quiet person, “What is your opinion on this [insert subject]?” I know the person is paying attention, but doesn’t necessarily want to speak up. I may be putting people on the spot, but I want to let them know that their opinions are valued in my community.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/zXn-h-ZWIZmwnT9dcavvmi422xRwYDo8CSmX" alt="Image" width="800" height="600" loading="lazy">
<em>We hold talks at least once a month on introductory topics. The topic for this meeting was Professional Web Design Tips.</em></p>
<h3 id="heading-tip-2-try-to-remember-the-names-of-your-members"><strong>Tip #2: Try to remember the names of your members</strong></h3>
<p>If there is one important lesson to learn from this, it is to try to remember the name of the individuals who attend your study group. This will make them feel valued because you’ve taken the time to learn their name and commit it to memory.</p>
<p>Making people feel important by remembering their name is a key concept from Dale Carnegie’s book “<em>How to Win Friends and Influence People.</em>” This is how I conduct myself in front of others.</p>
<p>If you’re not good at remembering names, try to employ techniques like repeating people’s name back to them slowly or repeating their name in your head. Or find facial features that defines them and associate them with their name. If you need more suggestions, here is a great article that provides <a target="_blank" href="https://www.cnbc.com/2016/09/21/11-memory-hacks-to-remember-the-names-of-everyone-you-meet.html">tips on how to remember people’s name</a>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/VmAdKYREjbz3Shruf0eNdK3G5z4Hcc0DnHws" alt="Image" width="800" height="1066" loading="lazy">
<em>This family came together for one of my freeCodeCamp events.</em></p>
<h3 id="heading-tip-3-greet-everyone-with-a-warm-smile"><strong>Tip #3: Greet everyone with a warm smile</strong></h3>
<p>First impressions are important and create a lasting affect. To set the tone for my community, I usually stand near the front door when people enter and greet them as they come in.</p>
<p>This is my golden opportunity to get to know the individuals, learn why they are attending the event and the goals they want to achieve, and what they are working on.</p>
<p>By being receptive to newcomers, I let them know that we are a friendly community and that we are here for their needs.</p>
<p>By learning a few facts about them, I can do one of the following things: direct them to another camper who can pair up with them to do some pair programming, introduce them to someone who can help them complete a specific challenge with which they are having trouble, or even just show them to an available seat in the venue.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/ELApjOWEkWvkWoM--z9CFE62oEBqTrmo5aXr" alt="Image" width="800" height="600" loading="lazy">
<em>This is our normal coffee shop. We take up about half of the seats in the venue.</em></p>
<h3 id="heading-tip-4-try-to-keep-everyone-together"><strong>Tip #4: Try to keep everyone together</strong></h3>
<p>A community is not a community if people feel like they don’t belong. Another important aspect of a community is togetherness. When arranging an event, look for a venue with big tables or sections that can seat everyone together.</p>
<p>By having everyone near each other, everyone feels like they belong to a community. Campers can work alongside each other, engage in conversations about technology, and help each other pass challenges or tackle them together.</p>
<p>I like coffee shops over venues that have classroom-like settings. Coffee shops are informal and make people feel more comfortable about joining conversations. People are seated close to one another, so they may peek at someone else’s screen and ask, “Hey, what are you working on?”</p>
<p>The environment is organic and gives members an opportunity to develop friendships.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/bVyEiAoWEf8zXX79vZgSy4LqTQqMtHytBOE0" alt="Image" width="800" height="600" loading="lazy">
<em>Campers are helpful. You can see their level of concentration while they work.</em></p>
<h3 id="heading-tip-5-schedule-events-at-least-two-weeks-in-advance"><strong>Tip #5: Schedule events at least two weeks in advance</strong></h3>
<p>I’ve seen too often organizers wait until the last minute to announce an event. And they usually get only a few attendees.</p>
<p>You want to aim for maximum participation, and you won’t get that if you give people less than a week’s notice.</p>
<p>If you can’t schedule events two weeks in advance, then try to schedule an event as far in advance as possible.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/lGwJMgQhHdPrkyB53agMN-CSDAmmabBmuvhG" alt="Image" width="800" height="600" loading="lazy">
<em>This is my normal freeCodeCamp sign that I put up to let people know where to find me.</em></p>
<h3 id="heading-tip-6-use-a-sign-to-let-people-know-who-you-are-and-where-you-are"><strong>Tip #6: Use a sign to let people know who you are and where you are</strong></h3>
<p>When I first started organizing events, I didn’t use any visual displays to let newcomers know who and where we were in the venue. People would walk through the door, look around like a lost child, and have to play the guessing game by asking strangers, “Is this [insert event name]?”</p>
<p>You don’t want to put people in that situation because you would violate tip #2 on my list. And you would make people feel unwelcome if they can’t find you the first time.</p>
<p>When you put up a sign, you’re openly advertising as well. There have been times where I had people from outside the group come and ask me what the group is about. Strangers will be curious and it might be an opportunity to get new members. You never know who you’ll meet.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/vqL2veYxzYbWNYF4zdieqK5bku-kz8WXDRKm" alt="Image" width="800" height="600" loading="lazy">
<em>Everyone is happily hacking away and enjoying each other’s company.</em></p>
<h3 id="heading-tip-7-be-consistent-with-organizing-events"><strong>Tip #7: Be consistent with organizing events</strong></h3>
<p>Try to organize at least one event each month. This will show your members that they are participating in an active community.</p>
<p>Scheduling the right number of events is something you have to think about.</p>
<p>Do you want to do one every Tuesday? The first Friday of the month? Every Saturday morning? These are things you have to consider.</p>
<p>I want to be flexible, so I schedule events that are convenient for me.</p>
<p>Early in my organizing days, one time I scheduled a event every week for two months straight, and I felt burnt out. That was the exact opposite of how I wanted to feel, so I dialed it back.</p>
<p>Now I schedule three events a month, but they all differ from one another. Two are “coffee and coding” events, and one is either a “talk, workshop, or hack night”.</p>
<p>One of the two “coffee and coding” events is on a Friday night for people who can make it out on a week night. But for those who have families and have only the weekends free, I schedule an event on Saturday mornings.</p>
<p>I’m trying to target two different audiences by employing this strategy.</p>
<p>And for my “talks, workshops, or hack nights”, I often schedule it on Saturdays. They last anywhere from three hours to seven hours, depending on the topic.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/EZN-ZdrUk2GufoWZchKQmFyvJW9aSh8lsAFT" alt="Image" width="800" height="600" loading="lazy">
<em>freeCodeCamp Sacramento sometimes take field trips to San Francisco together to attend awesome meetups like SFHTML5.</em></p>
<h3 id="heading-tip-8-be-creative-and-be-a-niche-in-your-area"><strong>Tip #8: Be creative and be a niche in your area</strong></h3>
<p>There are meetups in my area that cover intermediate to advanced topics. I felt lost the few times I visited them when I was the new guy learning how to code. Nothing made sense at the time.</p>
<p>So when I finally started thinking like a community leader, I asked myself, “What is this market lacking?”</p>
<p>And that’s how I started to envision what freeCodeCamp Sacramento could be like — a friendly and fun community for all ages who want to learn how to code. As well, it helps those who don’t know how to code to become self-sufficient so that they can learn on their own.</p>
<p>Be the niche that no one else is doing.</p>
<p>Most of my talking events are tailored to introductory topics like “<a target="_blank" href="https://docs.google.com/presentation/d/1KeazHW4A9ep2WTjE5w2fEpXmkVh7bJ325YE4IDw_UA8/edit?usp=sharing">Intro to Sass</a>,” “<a target="_blank" href="https://docs.google.com/presentation/d/1WcLMHttsnTMP25kwpETQ9PkqvPsaGNKfn27p6wJQPHE/edit?usp=sharing">Web Accessibility</a>,” “<a target="_blank" href="https://docs.google.com/presentation/d/1xfIVBZetquwTdlu-cRg9zPmdc7BNYL3HFIFwYwfbeng/edit?usp=sharing">Graduating from Codepen.io</a>,” and in other areas that I think new developers could use help.</p>
<p>You want to think outside of the box. This year I ran my first <a target="_blank" href="https://www.facebook.com/media/set/?set=oa.1466245983433030&amp;type=3">Annual freeCodeCamp Sacramento BBQ</a>. We got away from coding and ate some amazing homemade BBQ instead.</p>
<p>New events breathe life into your community and keeps things fun and refreshing. Think of new ways to approach your audience and make them excited about upcoming events.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/V9wTWxzar-ZaiCLkclk1zrfHLOsIBqh8KDxA" alt="Image" width="800" height="600" loading="lazy">
<em>Plenty of Campers stay till the very end of an event to hang out and talk.</em></p>
<h3 id="heading-tip-9-always-be-early-and-stay-late-if-possible"><strong>Tip #9: Always be early and stay late, if possible</strong></h3>
<p>This is something I learned in the military, but it may not be feasible for everyone. I make it a habit to arrive as early as possible to prepare for events.</p>
<p>I usually call the venue in advance to let them know that I’m coming and the number of people attending. Sometimes the venue reserves an area for us, but often times they will not, such as it goes with coffee shops.</p>
<p>Arrive an hour early, scout the place, and start sectioning off an area for your members by using signs or settling into the area with your belongings.</p>
<p>When people start to show up, direct them to where you want them to sit and then take your position by the front door to greet people.</p>
<p>Be early and be consistent about being early to give the impression that you take these events seriously. People will perceive you as the go-to person if anyone has questions.</p>
<p>If you’re not there, you might create confusion among the new people in your group. I’ve been to a meetup where the organizer was consistently late and people spoke poorly about the organizer.</p>
<p>You don’t want to give anyone an excuse to criticize you for something that is preventable, because it can affect everyone in your community.</p>
<p>As for staying late, often I try to stay as long as I can. Even though I schedule the events to be about two hours long, there have been many times when attendees will stay longer than that.</p>
<p>As the event organizer, if I have time, I may hang out for a few extra hours if I can, but other members can leave at the scheduled time because that is expected of them.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/99Ze4HNT-k37Yd3-e0Wk5TVPJzQ1KNeqWbSC" alt="Image" width="800" height="600" loading="lazy">
<em>Here is a group of campers who were participating in an AngelHack Hackathon.</em></p>
<h3 id="heading-tip-10-engage-your-audience-online"><strong>Tip #10: Engage your audience online</strong></h3>
<p>It is especially important to engage your online members. <a target="_blank" href="https://www.freecodecamp.org">freeCodeCamp</a> does a great job of driving new members to your online community.</p>
<p>I try to greet new members in our <a target="_blank" href="https://www.facebook.com/groups/free.code.camp.sacramento/">Facebook group</a> with a personal message within a week of them joining. Making them feel welcomed when they join is a great way to open communication with them. This way they can provide a quick introduction about themselves. You can also answer their questions and invite them out to your events.</p>
<p>I also post every local event that is happening in our area for the week. This might include other meetups like Ruby coding, Bitcoin and blockchain, entrepreneurship, WordPress, and many more relatable technology topics. I usually break it down by day and provide a link to the meetup page of each group.</p>
<p>At the end of the day, I am advocating for technology. I try not to restrict my support to just my group. I am biased about my community, but I want to serve beyond my community in different ways.</p>
<p>Also, I frequently post articles, tutorials, and other good resources for the community to consume. Sharing is caring.</p>
<p>Lastly, I ask people what they want to see from the community. I run a poll to gather suggestions from our members about the topics they want to hear. I even ask members what they accomplished during that week.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/SWlmHNw3uEnyO-ETJl-TDlAl8EQqr0FIXeMg" alt="Image" width="800" height="600" loading="lazy">
<em>There are some nights after an event where we would all go out for a drink.</em></p>
<p>These are just some of the strategies I use to engage my online community so that it doesn’t feel stale. Remember to be creative.</p>
<p>I have many more ways I want to engage and grow my community. I have a bigger vision for my community, and I would love to see it materialize in the future. But for now, this is as much as I can do because we are run by volunteers. Some days I spend about 25% of my day thinking about what I can do to improve my community. Sometimes it feels like a part-time job.</p>
<p>So if you’re willing to build your community and see it grow, be prepared to put in your best effort!</p>
<h3 id="heading-enjoy-some-more-pictures-of-our-community">Enjoy some more pictures of our community!</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Au2XJq0EVsI8B0WLMPLNgTL4CW68isOTqhh8" alt="Image" width="800" height="1066" loading="lazy">
<em>The 25-pound slow-cooked pulled pork we ate. ??</em></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/E6aA1Gec2tl15Vfjq6DI50yTNjVdz2k6zKUU" alt="Image" width="800" height="1066" loading="lazy">
<em>On top of the roof of Google San Francisco with the beautiful Oakland Bay Bridge in the background.</em></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/SvqJCFojsyDwvcTSEg1-EGMCHu1VgfIbjJ8A" alt="Image" width="800" height="600" loading="lazy">
<em>Enjoying a refreshing cup of Philz coffee on another field trip to SFHTML5.</em></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/c9pz2xOgES9rOnBr1CJnx3U0AkgdPn-s1aD8" alt="Image" width="800" height="600" loading="lazy">
<em>Sending off one of our members to graduate school with some parting gifts!</em></p>
<p>If you like this article, please share with your peers.</p>
<p>I would love to hear from community organizers and how they improve their community.</p>
<p>If you want to find out more about me and my involvement in the community, you can <a target="_blank" href="https://www.twitter.com/xgee_whiz">follow me on twitter</a>. :)</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/djQdsbR-a84bCnKyRkGvLMyFgpyhsDTlMfoI" alt="Image" width="800" height="600" loading="lazy">
<em>Some of the freeCodeCamp Sacramento members who won the Govtech challenge at an AngelHack Hackathon.</em></p>
<h3 id="heading-thats-all-folks">That’s all folks!</h3>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Xiki: one developer’s quest to turbocharge the command line interface ]]>
                </title>
                <description>
                    <![CDATA[ By Craig Muth I was sitting with my friend Charles in a trendy cafe next to Golden Gate Park in San Francisco. We were surrounded by young-ish people working on expensive MacBooks, and a smattering of drifters who had wandered in from the park. “I wo... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/xiki-one-developers-quest-to-turbocharge-the-command-line-interface-b68e5345788d/</link>
                <guid isPermaLink="false">66c367af0cede4e9b1329d74</guid>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 25 Sep 2017 04:36:43 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*FugVQlg4gqFj83NAIkRC-g.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Craig Muth</p>
<p>I was sitting with my friend Charles in a trendy cafe next to Golden Gate Park in San Francisco. We were surrounded by young-ish people working on expensive MacBooks, and a smattering of drifters who had wandered in from the park.</p>
<p>“I would still never use this,” he told me, and my heart sank into my stomach.</p>
<p>It had been 5 years since I’d decided to move to San Francisco from Ohio and burn through my life’s savings to make my tech dreams a reality. He’d watched a draft of a <a target="_blank" href="https://www.kickstarter.com/projects/xiki/xikihub-the-social-command-line">KickStarter video</a> that had taken me 6 months and a chunk of money to make.</p>
<p>And he wasn’t the only one with that reaction. That the video included me Riverdancing with a horse and a banana only increased the awkwardness. How had I gone so wrong?</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*loa1ZcBUg6fQ5u4J0yGKGQ.png" alt="Image" width="800" height="363" loading="lazy"></p>
<p>Rewind to RubyConf 2012. I was staring out from the stage with a racing heart and sweaty hands. There were hundreds of eyes staring back at me. My presentation had just ended and arms were being raised for questions.</p>
<p>The room was bright, with coffee-smelling air. But I didn’t care. Things were going well.</p>
<p>There had been several gasps from the crowd at the right times, that sounded like “gaaaw!” The first person I called on said, “I don’t have a question. I just wanted to say that was awesome.” It was pure adrenaline for someone like me. If I’d died right then, life would have been worthwhile.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*UKza5MnkatCvtMNSaWVSDA.jpeg" alt="Image" width="800" height="533" loading="lazy"></p>
<p>Rewind again. Back in college in Ohio, it was the era when phones were things on walls, and years started with “19” instead of “20”. I found myself alone in a computer lab on the 4th floor of a cavernous concrete building. There were no windows. The soothing hum of fans came from all directions. We were supposed to figure out how to program in these little black command line windows, using only the keyboard. I hated it. Really hated it.</p>
<p>The command line is like learning to speak Russian. It seems impossible from the outside.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*J9RUuXBiZz-r-MMB5CqxVw.jpeg" alt="Image" width="800" height="533" loading="lazy"></p>
<p>I don’t know when my attitude switched. But to the extent that a nerdy kid can fall in love with a piece of technology, I did. Here was a world that could be utterly controlled, in a way that the unforgiving real world could not be. I loved this control. Needed it. I spent hours customizing everything I could.</p>
<p>What I was doing on the stage at RubyConf was showing the result of 10 years of an almost manic quest for control. “Why not let people type <strong>anything</strong> in the command line, rather than just commands?” I argued.</p>
<p>Like a search engine. I demoed browsing and editing a database by typing “database”, and controlling your web browser by typing “browser”.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*EzydOy_Dpk7FNrxDBxjxGQ.png" alt="Image" width="800" height="391" loading="lazy"></p>
<p>I discovered that if you let people edit and interact with everything, commands could act more like apps. Without giving up what’s great about the command line. You could create commands in minutes. You could even let people use their mouse</p>
<p>After college I found myself in loftier, narrower concrete buildings. At a bank in Cincinnati, a tall executive named Rahul once stood behind my boss and I as we tried out a new feature I’d designed. Mistakes could mean you blocked 10,000 people from getting to their bank accounts for an hour.</p>
<p>“This better work,” was all he said.</p>
<p>It worked, and he sulked silently back to his office.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*iFPHd1KWw2HS51QSFOgoHQ.jpeg" alt="Image" width="800" height="533" loading="lazy"></p>
<p>I bought a house and two cats.</p>
<p>I put my real creative energy into developing Xiki. I used it as my main development environment for most of my career, and to store all my notes. I would show off my newest features to whomever would listen.</p>
<p>After 10 years of driving to work and driving home, it was 2011. I was sitting on the deck behind my mom’s house telling her “my friend Keith thinks I should move to San Francisco.” It was one of those warm-wind-rustling-in-the-trees Ohio summer days that make you forget about icy Ohio winters. I told myself that not caring about sports, religion, or TV impedes your chances of making friends in Ohio. Nor does having a sardonic personality , was more to the point.</p>
<p>I half suspected she would cry and beg me to stay. “Go,” she said. And I went.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*Da73dKB7WbW4ELVKf1G8DQ.jpeg" alt="Image" width="800" height="533" loading="lazy"></p>
<p>I’d stayed in San Francisco for two weeks to try the city out. Keith had told me programmers were considered cool there. Even to the point to where girls would run after them. I didn’t believe him. I’d been sitting in Ohio oblivious that coders had been given cars as hiring bonuses 10 years earlier.</p>
<p>Keith took me to Coffee Bar. It was full of people programming and hacking. They weren’t embarrassed Dungeons and Dragons types. They rode skateboards. They would look at your screen and say “that looks cool, what are you working on?” For the first time since elementary school I didn’t feel like I should apologize for being somewhere. On the flight back, I had the weird sensation that I was leaving my home.</p>
<p>Over the next five years I’d spend most of my time in cafes and hack spots around San Francisco. Working on Xiki and trying to convince people to use it. I liked the mix of work and social life. Like I imagined basketball players and some politicians have. If you love and believe in what you’re doing enough, is it still work?</p>
<p>There would be days of sitting in coffee shops with friends and chatting and hacking alongside them, then grabbing dinner and drinks. I would head somewhere and email people, telling them to show up if they wanted. Usually at least one or two would, sometimes more. I was in geek heaven. I started sending out tweets to connect with new people.</p>
<p>I applied to do a presentation at one conference, and was invited to speak at two more. I was guests on a couple podcasts.</p>
<p>I’d convinced a few people I’d worked closely with to adopt Xiki, and thought it would be downhill from there. It turned out to be otherwise.</p>
<p>In one aborted persuasion session, a guy stood up in frustration and went back to his own laptop. He’d tried hitting the escape key to cancel when something went wrong. In that old version of Xiki, you had to open the Emacs text editor and use Xiki from within it. In Emacs, escape gets you into more trouble instead of getting you out of it. That would need to be fixed.</p>
<p>People wanted a slick installer. But that would take a lot of work, and was an unexciting thing to spend my time on.</p>
<p>There would be many ups and downs along the way. I ran an initial successful KickStarter in 2014. It passed, but barely. I had to give up half the money to cover T-shirts, stickers, fees, taxes, and creating the video.</p>
<p>It was easy to get people excited initially. But their expectations went way up when you asked them to adopt something.</p>
<p>People wanted Xiki to work right from the terminal, right at their normal prompt.</p>
<p>It sucked, but I realized I would have to forgo the fun stuff for a while, and rewrite pretty much the whole thing.</p>
<p>I would dedicate many months to this, as my savings continued to prove themselves highly flammable. But I still loved it more than anything I’d ever done with myself.</p>
<p>One foggy day found me at a favorite hack spot — a table in the back of a cafe that was half bookstore. A girl who seemed European had come along with some friends who’d joined. I was in a chatty mood and was (tactfully, I thought) ignoring her saying she wanted to focus on her work. She was studying for some test or other. She told me in an adorable accent that I was “crossing the line”. I wasn’t sure if she was joking or not, but I teasingly interrupting her a few times more. She would become my girlfriend and later my wife.</p>
<p>People wanted to contribute the cool stuff they’d made with Xiki. Some of the contributions were good but not great, so I resisted accepting them. I realized I would need to make a repository that would let people submit new commands, without being a bottleneck. Making a tool that gave people control would mean I’d have to give up control.</p>
<p>One day I had an idea. Could I make the command line act like a full on search engine? Where the search results came from the internet, and anyone could contribute to them.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*vgsxxgG7QDb5xZ2TS7CDTw.png" alt="Image" width="800" height="428" loading="lazy"></p>
<p>It would take three tedious years to hunker down and do all the hard stuff that people wanted. I had to take a break from the pie-in-the-sky features that were the most fun to work on.</p>
<p>Now, here I was with my <a target="_blank" href="https://www.kickstarter.com/projects/xiki/xikihub-the-social-command-line">new KickStarter campaign video</a> highlighting the new social search version. And listening to Charles politely telling me it sucked.</p>
<p>Argh.</p>
<p>I believed down to my core that I had something worthwhile. Fixing the command line. It could only be that I wasn’t adequately getting the message across.</p>
<p>I spent six more excruciating months redoing the video over and over. I listened while people told me “pick one thing and focus on it.” Then “I don’t get the one thing.” Then “I get the thing but I don’t care,” and finally “ah, okay, <em>that</em> I get.” One long-time adviser even told me it was the best KickStarter video he’d seen. Which is good, because all my hopes are now centered on it.</p>
<p><a target="_blank" href="https://www.kickstarter.com/projects/xiki/xikihub-the-social-command-line">Me Riverdancing with the banana is still in there</a>. I wasn’t going to completely sell out :)</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I escaped the student debt trap, and why other Americans aren’t so lucky ]]>
                </title>
                <description>
                    <![CDATA[ By Emily Christine Fay This week, I paid off my last student loan. It’s a big deal for me, and something that I’ve been looking forward to for many years. Now I want to do something that I generally avoid doing online: talk politics. Because if there... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-real-life-secret-to-paying-off-student-loans-early-2728b8815f1d/</link>
                <guid isPermaLink="false">66c362375c8b3e001e067e76</guid>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ politics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 23 Sep 2017 20:24:23 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*x8YU3hzOSD4wZIQRUmj7ww.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Emily Christine Fay</p>
<p>This week, I paid off my last student loan. It’s a big deal for me, and something that I’ve been looking forward to for many years. Now I want to do something that I generally avoid doing online: talk politics. Because if there’s one lesson that my student loans purchased, it’s that college should be free and accessible to all.</p>
<p>I spent six years accruing many tens of thousands of dollars in debt to get my two degrees from Purdue, a public land-grant university. I graduated in 2011 and spent the next six years paying back all that money and much more in interest. I began signing the dotted line for my mountain of debt when I was 18. I was a first-generation college student without a damn clue.</p>
<p>But Emily, you might say, you paid it all off super fast! <em>Only</em> 6 years, <em>only</em> your entire 20s, paying for a world-class education! Sounds like everything worked out just great!</p>
<p>And here’s the thing…you’re right. In my specific case, in my life, I was able to pay off the debt with unusual speed. Why is that, do you think? Well, I got a job right out of school and I’ve worked hard to earn promotions. Sometimes I run a tutoring side hustle for extra funds. I pay my bills on time. I avoid splurging on big trips or fancy things so that I can put more money towards paying off my debt. All that good, straight-laced, responsible middle class stuff you’re supposed to do.</p>
<p>But if you and I were friends on Facebook, then you’s already know my real secret for paying off student loans. I married a software engineer.</p>
<p>I married him because I love him. Some of the things I love about him contribute to financial health — a level head, long-term thinking, integrity, responsibility, intelligence, etc. But it doesn’t hurt that his intellectual gifts lend themselves to a career that he loves <em>and</em> that pays well. I followed my intellectual gifts as well, straight to a debt-plagued but enriching degree in English literature and an unexpectedly satisfying but unsurprisingly low-paying career in university student services. Let me be perfectly clear: my hard work is not what pays the student loan bills on time and ahead-of-schedule. My loans were paid off several years early by the mind-boggling good fortune of being in the right place at the right time to fall in love with a future software engineer. As a woman with an unrepentant penchant for liberal arts, I would have had to chase an entirely different career to pay off my debt at this pace on my own.</p>
<p>Not only did I marry an engineer, I married a lucky engineer, and it turns out that I’m pretty lucky too. We have never suffered chronic physical or mental illness. I had a perfectly smooth and planned pregnancy, a perfectly healthy baby, and the insurance to cover both. Our car has never broken down unexpectedly, we have never lost our jobs due to “reorganizing,” we have never had our identities or our possessions stolen except that one time somebody used our credit card number to buy a $400 Uber ride in New York, which took all of 1 phone call to resolve. We have large, extremely supportive families who gave us financial help when we were just starting out. Not to mention that we are white, cisgender, heterosexual, able-bodied, US-born, Christian-raised folks. If even one of the things in the list above was different, it would impact our financial lives, possibly drastically.</p>
<p>My point here is that I am LUCKY. If the universe had tilted at a slightly different angle at any point in my life, I might still be paying off loans for another 5 or 10 or 40 years. I am deeply, deeply grateful for my good fortune, and I am painfully cognizant that I could not have pulled myself up from this debt if the universe hadn’t handed me custom-tailored hydraulic bootstraps.</p>
<p>Okay, fine, but this is all me talking about me, me, me. Why do I think college should be free for EVERYONE? Because college is still by far the most reliable path upwards in social mobility. Education, especially higher education (university, community college, trade school, etc) is still the best tool we have for pulling people out of poverty and into economic productivity and security. Individual mileage may vary, of course, but it doesn’t take a degree in library science to track down dozens of reliable social science research sources that back this view. (<a target="_blank" href="http://www.pewtrusts.org/…/01/01/pursuing-the-american-dream">Here, let me Google one for you</a>.)</p>
<p>Education is a crucial tool for improving individual lives and the overall socio-economic health of our country, but that tool becomes dulled when you match it with crushing debt. I know so many brilliant, hard-working people who are struggling to pay the bills, let alone buy a house, because they lose a huge portion of their paycheck to their student loans. (Do you really think it’s the avocado toast that’s keeping millennials from buying cars and homes? Please.) Many of these folks are doing utterly important social work, like teaching and counseling and caregiving — work that is traditionally feminine, work that is chronically underpaid. I know other brilliant, hard-working people who found out halfway through that college wasn’t for them, at least not in their late adolescence, and now they are struggling to hustle up a living while carrying around thousands in debt sans degree. And it’s not like you can get rid of this debt. Whether you are a student or a parent who signed a loan, whether you finished school or not, there is no bankruptcy big enough to catch those loans. There are only two ways out: pay up or die.</p>
<p>I fundamentally believe that students should have the chance to go to college without being saddled with life-limiting debt. I believe that schools should be able to provide educations with the rigor to produce critical thinkers, creative leaders, and engaged citizens without worrying about whether or not the students get a high enough starting salary to make the degree attractive to a new batch of 18-year-old customers. I believe that graduates from non-rich backgrounds should be able to begin their working lives at the same pace as their peers with rich parents. Because, oh yeah, rich kids don’t have to worry about this stuff.</p>
<p>But Emily, you might say, even if the broke students and their parents shouldn’t have to pay for college, why does that mean that <em>I</em>, the noble Taxpayer, should have to shell out the funds? Well, first of all, I think public university and community college education tuition costs should be funded by taxes on the very wealthiest Americans, not the middle class. I mean, seriously, college is a staggering cost for most middle-class American families — this isn’t just an issue for the poor. Taxing the very rich to support education for the children of poor, working-class, and middle-class Americans is a one-two punch in the fight against income inequality.</p>
<p>I think making college affordable is worth our tax dollars and our civic energy. I want public schools to be truly public and free to all students from that state. We could <em>at least</em> be fully subsidizing the interest so that students only actually pay the cost of their education, rather than double or triple that cost over several decades. I think that’s a half-assed compromise, but saving a generation of students multiple tens of thousands of dollars each is a half-assed compromise I could start with. In any case, we have to do SOMETHING, because this is a crisis that non-rich kids with middle-class ambitions can only avoid with some rabbit’s foot, four-leaf-clover, shooting star, sparkly kind of luck.</p>
<p>And now that my own amazing luck has led me to this moment of freedom, I feel like I can finally speak my mind without asking for a personal hand out, which soothes my Midwestern soul. My loans are paid, and I never expect to see that money again. I don’t regret taking the loans and I don’t regret the excellent literary education they purchased. Speaking as one of “the good ones,” speaking as a loan-taker who did everything just right and ponied up every penny, I will be the first to say that the student loan industry is a blight on our country’s values of equal opportunity. Since when did we have to purchase the pursuit of happiness?</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I went from selling food in the street to working for top firms in tech — Part 2: getting the… ]]>
                </title>
                <description>
                    <![CDATA[ By Alvaro Videla This is the second installment in this series of articles where I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. If you like the series and want ]]>
                </description>
                <link>https://www.freecodecamp.org/news/become-ii-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-5da51d788ea9/</link>
                <guid isPermaLink="false">66c3455e42d4db64acf4cbe4</guid>
                
                    <category>
                        <![CDATA[ learning to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Tue, 19 Sep 2017 21:00:47 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*FcabhcW05_q5R9_jC0U1aw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Alvaro Videla</p>
<p>This is the second installment in this series of articles where I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. If you like the series and want to see a book out of this, please leave a comment below. Here’s the <a target="_blank" href="https://medium.com/@old_sound/become-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-6aa61a2d0629">first part</a> in case you haven’t seen it yet.</p>
<h3 id="heading-getting-the-job">Getting the Job</h3>
<p>During December 2006 and January 2007, I worked hard to get my maps application up and running. While building it, I wanted to learn as many programming notions as possible, trying to cram all the knowledge that would get me ready for the job interview into my head.</p>
<p>Out of all the concepts I could learn, I identified the main ones that I thought would be relevant for getting the job. This narrowing of focus is a very important step toward achieving goals, since we don’t want to be all over the place, trying to grasp a bit of every subject but then failing to reach deepness on any of them.</p>
<p>For my situation, I understood that I had to learn about object-oriented programming, since that was one of the most important programming techniques in use. On the technological side, I had identified PHP as the key programming language that would land me a job, while learning Flash programming would be the skill that would differentiate me from other candidates.</p>
<p>How did I know that? It was a bit of hunch informed by what I was seeing mentioned on the web, along with what the computer magazines were writing about.</p>
<p>Even back then, before I had the job, I knew it was very important to learn to understand and analyze the market I wanted to break into, and finding the right websites and publications is a very important step toward this. This is because these resources often have information that points to the ideas, trends, and technologies that we should focus on.</p>
<p>Once my app was done and I felt I was ready for the interview, it was time to build my resume. However, I had no idea what should go on a tech resume and what should be left out. I listed things like MS Word and MS Excel as some of my skills, together with Adobe Illustrator and some InDesign. Why not, right?</p>
<p>Wrong. Just thinking about that first resume makes me blush. If nothing else, what was clear about it was the message it was signaling: this person is a complete noob.</p>
<p>The problem is that as someone trying to break into a new field and start a career, it was difficult to have something to write down on my resume that made me look competent. I had no idea what to include, so I listed everything.</p>
<p>Today, if someone presented themselves for a backend developer position listing MS Word as a skill, I’m quite sure that person would be rejected straight away. Even worse, I think I would be the one rejecting a resume like that. But of course, hindsight is 20/20.</p>
<p>Once my resume was complete and I got a cell phone number I could be reached at, I applied for the position of PHP programmer at Live Interactive. You’d better believe I read and reread every input box on that online form as I went over a mental checklist. “Did I spell my name correctly? Did I type the right phone number? Let’s double check the email. I don’t want to miss this opportunity because I wrote the wrong address.” I was all nerves, but at some point, I had to hit that send button. Click. Done. Exhalation. “I’ve done it. I’ve applied for my first job.”</p>
<blockquote>
<p>Once my app was done and I felt I was ready for the interview, it was time to build my resume. However, I had no idea what should go on a tech resume and what should be left out.</p>
</blockquote>
<p>After I submitted my application, I lingered at the internet cafe, browsing the web for random stuff. To my surprise, about half an hour later, my cellphone started to ring.</p>
<p>“I don’t know this number,” I thought. The area code told me it was from Montevideo, but it was so quick, it couldn’t be them. Or could it?</p>
<p>It took me a couple of seconds to understand that, yes, in fact, they were calling me! Can you imagine that? I honestly didn’t know what to do. “Should I take the call?” I wondered. “I’m probably not ready for this!” I quickly tried to get ahold of myself and walked outside to answer.</p>
<p>“Hi, we’re calling from Live Interactive about your job application. Is this Alvaro Videla?” said the voice on the other end.</p>
<p>Do you see what happened right there? I couldn’t believe it! I was being contacted by the company where I had just applied for a job.</p>
<p>“Yes, it’s me,” I replied.</p>
<p>The caller turned out to be the HR manager getting in touch, trying to set up an interview with me. She asked me when would it be a good time for me, so I told her that I needed a week, since “I have to arrange things here.” This wasn’t necessarily the case, as I could’ve just boarded the next bus and traveled there straightaway, but I wanted to prepare — to be 100 percent ready for it and not botch my only opportunity.</p>
<p>I hung up at the end of that phone call having secured a job interview. Now it was time to get myself together and prepare for that interview. I had no doubt this was my once-in-a-lifetime opportunity and I couldn’t waste it. But first, I had to share my excitement with my mother and my wife: I needed to talk about what had happened with someone to help process my emotions.</p>
<p>On one hand, all my hard work was starting to pay off, which felt great. But on the other hand, life had allowed me to see a tiny glimpse of a better future. Making that future a reality now rested entirely on my shoulders, but it was too much of a responsibility for me to handle alone.</p>
<p>I spent the entire next week preparing for the interview, from reading and rereading the books I had, to trying to guess what kind of clothes I should wear for the interview. I had never worked as a programmer, and as such, I had no idea how the programmer culture worked and what kind of behavior would be expected from me. I didn’t have anyone to ask about this either, so at some point I decided to stop worrying too much about the appearance side and tried to focus on the technical aspect of the process, hoping my skills would speak for themselves.</p>
<blockquote>
<p>I had no doubt this was my once-in-a-lifetime opportunity and I couldn’t waste it, but first, I had to share my excitement with my mother and my wife: I needed to talk about what had happened with someone to help process my emotions.</p>
</blockquote>
<h3 id="heading-unexpected-obstacles">Unexpected obstacles</h3>
<p>The time passed quickly, and before I knew it, I was sitting on a two-hour-long bus trip, heading to Montevideo. I had the <em>PHP Bible</em> in my backpack and enough money to buy a burger and pay for the ticket from the bus terminal to the company’s offices in downtown Montevideo. I didn’t want to arrive late, so I was around the area an hour in advance, trying my best to fight off a nervous breakdown.</p>
<p>I had to find something to kill time and occupy my worried mind, so I walked to a nearby square, found a bench, and sat down to keep studying. I couldn’t believe that all my struggles over the previous months would be decided in about an hour. “Did I prepare the best I could? That time I didn’t want to study that part of the book so I could go outside, was it worth it?” I wondered. Then I came to my senses. “Stop it,” I told myself. “It’s time to focus on the book in front of me right now, since there’s no reason for worrying about <em>could haves</em>.”</p>
<p>Soon, it was time to head up for the interview. If this was a Tarantino film, my character would probably be called Mr. Blue: dark blue jeans, blue shirt, and dark blue hoodie.</p>
<p>I got to the reception area and was welcomed by the HR manager, who I’d spoken to on the phone the week before. She asked me to sit and wait and offered me a glass of water. I took the offer and immediately started doubting myself. “Is this the right thing to do?” I wondered. “Am I being polite or impolite?” Anxiety was taking over.</p>
<p>Meanwhile, people were walking around, going from one office to another. “Are any of them my interviewer?” I asked myself, studying each person who walked by. One man walked up to the HR manager and started talking. “Ah, it must be him,” I thought. But it wasn’t.</p>
<p>After more of this wondering, the HR manager called my name and took me into a big conference room. She handed me a pile of paper and told me this was the first part of the interview: a psychological test with more than 100 behavioral and situational questions. What. Is. This? Nowhere in the <em>PHP Bible</em> did it mention that people needed to pass psychological tests to become a programmer! But I tried the best I could, second guessing the intention of every question. Of course, I had no idea if the answers I was choosing were correct, but I hoped they would bring me one step closer to getting the job I wanted.</p>
<p>Once I was done, I returned the papers with my answers and then was asked to take a seat again and wait for the next stage. Soon the HR manager introduced me to someone who was going to conduct the programming interview. “Now or never,” I thought. “Now or never.” At that moment, I felt that all the pressure was on me, that I couldn’t let down my wife, my mom, my family. “If I don’t get this job, let it be known that it wasn’t because I got blocked mid interview, and didn’t know what to do,” I thought. “If I don’t pass the next stage, it’d better be because they didn’t want me, and not because I lacked the knowledge or preparation.”</p>
<h4 id="heading-i-hope-you-liked-this-second-part-on-the-next-articlehttpsmediumcomoldsoundhow-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-part-3-first-week-on-9b4486eb02ee-ill-tell-you-how-i-got-the-job-and-what-happened-on-that-first-week-at-work">I hope you liked this second part. On the <a target="_blank" href="https://medium.com/@old_sound/how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-part-3-first-week-on-9b4486eb02ee">next article</a> I’ll tell you how I got the job, and what happened on that first week at work.</h4>
<p>Credits: The illustration on top was made by my friend <a target="_blank" href="https://twitter.com/SebastianNavasF"><strong><em>Sebastián Navas</em></strong></a>. If you want to have his amazing illustrations for your articles or presentations, don’t hesitate to get in touch with him. Here’s his Deviantart profile: <a target="_blank" href="https://polacostyle.deviantart.com">https://polacostyle.deviantart.com</a> or his Facebook: <a target="_blank" href="https://www.facebook.com/sebastian.navas.16">https://www.facebook.com/sebastian.navas.16</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I went from selling food in the street to working for top firms in tech ]]>
                </title>
                <description>
                    <![CDATA[ By Alvaro Videla In this series of articles I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. If you like the series and want to see a book out of ]]>
                </description>
                <link>https://www.freecodecamp.org/news/become-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-6aa61a2d0629/</link>
                <guid isPermaLink="false">66c3455ca7aea9fc97bdfae5</guid>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ startup ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 13 Sep 2017 19:24:34 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*gQ4StAYHw5j5sVAGSNbIKw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Alvaro Videla</p>
<p>In this series of articles I want to share with you how I got into the world of programming. I never went to university to study IT, but I found a way around it. If you like the series and want to see a book out of this, please leave a comment below.</p>
<p>At the end of 2006, I arrived at a crossroads in my life. My hopes of becoming a secondary school linguistics teacher had vanished in an instant, as several factors had come together and made it impossible for me to continue with my studies.</p>
<p>Back in my hometown of Durazno, Uruguay, my wife was working long hours for a meager $160 (USD) a month. Yes, that’s $1,920 a year. We had sacrificed our time together so I could become a teacher and get a better job because we were dreaming of a better future.</p>
<p>The problem with dreams is they tend to vanish when you wake up, and life’s alarm clock had just gone off.</p>
<p>Because my career trajectory had suddenly strayed off course, I moved back to my hometown to figure out my next steps. Needless to say, I was depressed at the way things were, and our living situation only made things worse. It was good to be back with my wife, but the reasons for it were stressful.</p>
<p>Additionally, we were sharing a house with my wife’s aunt, so our privacy was restricted to our bedroom, and we always felt like we were overstaying our welcome.</p>
<p>As a way to bring in extra income, we tried to sell homemade pasta on the streets. I would go door-to-door collecting orders for the weekend. “Hello, do you want to order ravioli to eat this Sunday?” I’d ask person after person. “Yes, they’re homemade. Just give us a time and we’ll deliver them.”</p>
<p>Then, after people ordered them, we spent our entire weekends making 2,000 ravioli only to end up with 500 pesos in our pockets, which comes about $20, not counting expenses.</p>
<p>The whole situation was disheartening, and it made us feel hopeless. My wife would work hard all week, then come home only to spend her weekends helping me prepare the ravioli. She couldn’t even have one day of the weekend for herself. She begged me to stop selling ravioli, even if that meant we would end up with less money to pay our bills. Eventually I agreed, but it meant I had to try to find a job — and finding a job wasn’t so easy in our rural hometown. Anxiety and desperation were starting to set in.</p>
<p>One night, I was talking with a friend who was studying computer engineering at the university in Montevideo. He told me about the various job opportunities one could find in the capital city, with salaries that were the stuff of dreams for someone living in the countryside. “There’s this big company in Montevideo, Live Interactive,” he told me. “They’re always looking for programmers; maybe you could try to get a job there. They pay really well.”</p>
<p>The salary he mentioned was around three times what we were making at the time, and I couldn’t help but imagine all the things we could do with that much money. We wouldn’t need to worry anymore about putting food on the table. We could finally pay for our own internet connection, get proper clothes and shoes, and even have our own washing machine!</p>
<p>Not only that, but I already had experience with computers. I always liked working with them, mostly because they appealed to my knack for problem solving. Programming reminded me of having to crack a code or find the solution to a difficult puzzle — but in addition to being challenging, it was fun. What’s more is that I saw programming as a career with a lot of potential for growth.</p>
<p>But there was one small problem: to work as a computer programmer, one usually needs to know how to program computers. Me? I could install Linux on my own, but that was probably the extent of it.</p>
<p>How do you land a job as a computer programmer when you have almost no programming experience and you lack a university degree to prove your knowledge? How do you learn to program without internet access at home, without mentors to connect with, and without access to programming books? That was my problem back in 2006, and this is the story of how I tackled it.</p>
<h3 id="heading-the-early-days">The Early Days</h3>
<p>I’ve been dabbling with computers since I was a teenager — most of the time when visiting a friend who had a PC. While we often used the computer to play games, I wasn’t interested in playing that much. Why? Back when I started secondary school, a friend’s father let us use his ZX Spectrum computer. He had good stack of cassettes with plenty of games for it, and of course, we could play all we wanted, but one day he showed me something that blew my mind: people could make their own games by programming the computer!</p>
<p>He showed me some tricks in BASIC, like how you could generate random numbers using the RAND function. I was amazed. At that point, I realized computers were more than a glorified Nintendo with a keyboard: you could actually tell them to do things for you — cool things, like drawing lines using trigonometric functions and then painting them by applying random colors! You could even make music with them by passing different frequencies to BEEP. In fact, once I brought the Spectrum to my house and spent an entire afternoon playing different kinds of <em>beep</em> sounds on my TV — I’m sure my mom loved it.</p>
<blockquote>
<p>How do you land a job as a computer programmer when you have almost no programming experience and you lack a university degree to prove your knowledge?</p>
</blockquote>
<p>Later on, during my teenage years, I continued spending time with friends who had their own computers, and naturally we played games on them. Meanwhile, with my more tech-savvy friends, I learned a few operating system tricks — mostly MS-DOS.</p>
<p>Every once in awhile, we would try some BASIC programming by copying, character by character, the code snippets that appeared in old computer magazines. To us, they seemed like magic spells or technological incantations. One thing we really liked was trying to edit the text messages a game would show for different situations. We thought we were such hackers!</p>
<p>By the early 2000s, I managed to convince my grandfather to buy me a computer: a Pentium MMX with 32MB of RAM! What a machine! I installed Linux on it for the first time, using a SUSE CD that came for free with an Argentinean computer magazine. I spent quite a lot of time on that computer: trying different Linux distributions, getting familiarized with the command line, and so on, but never really doing any programming.</p>
<p>When I look back to those days, I can’t understand why I wasn’t learning C programming — or any kind of programming for that matter. A friend even offered me the bible of C programming by Kernighan and Ritchie, so not having access to a manual wasn’t an excuse. But for some reason, after reading a few examples, it didn’t spark any interest in me, as I didn’t understand how what it covered would be useful for me. In any case, playing with Linux was the only thing I was doing with computers back then.</p>
<p>From that point on, I had several minor jobs, played in a rock ’n’ roll band, and tried to become a linguistics teacher, all while getting married and moving all over the country together with my wife.</p>
<p>Fast forward to November 2006 and I found myself in need of somehow becoming hirable by a software company. I had to become a credible computer programmer.</p>
<h3 id="heading-time-for-some-goals">Time for Some Goals</h3>
<p>If I wanted to get hired, the first thing to do was evaluate my skillset as a programmer. I had to be honest with myself so I could know where to focus my efforts.</p>
<p>At the time, I knew a bit of ActionScript for Flash MX and the very basics of PHP programming. Earlier that year, I had started learning those technologies as a hobby. I’d also started a pet project to learn programming, thinking maybe it could become a secondary source of income.</p>
<p>I came up with the idea of making a digital map of my hometown where you could drop pins that would point the user to the location of businesses, shops, and interesting locations. I would then charge those businesses money in exchange for appearing in my online map application.</p>
<p>Of course I know what you’re thinking. “That’s just Google Maps,” you say. Yes, but back in 2006, the only thing Google Maps knew about my hometown was that it was crossed by a big national highway. Given that, my map seemed like a good idea. Also, I figured this project would be the perfect way to showcase my skills to a prospective employer. I had a clear goal of what I wanted to build; I just had to get down to work and make it happen.</p>
<p>So at the end of 2006, I set myself a deadline: come February 2007, I had to have a working concept of the map application. This had to include a Flash frontend, served by a PHP backend, using MySQL for data persistence. The technologies I’ve just mentioned might not seem too relevant today, but the point here is that I had to nail down every detail of my plan so I would know which problems to tackle first, since time was ticking: every day that went by was another day where my wife was overloaded, working overtime to get food on our table.</p>
<p>Additionally, to even have a shot at getting a programming job, I had to show potential employers that I could program in those particular technologies, because that was part of the job description. Naturally, I had nothing related to these skills on my resume, so I had to build up my knowledge from scratch, and my app would serve as the showcase of my programming expertise.</p>
<p>The plan was to land an interview at the company my friend had mentioned before, and hopefully, with the combination of my skills and my app, I would end up getting a job there. Even then, I knew the importance of setting clear goals for yourself in order to achieve what you want.</p>
<h3 id="heading-learning-project-a-map-application">Learning project: a Map Application</h3>
<p>The map application I created was called Aleph Maps — a reference to Jorge Luis Borges’ 1949 story, “El Aleph,” about a place in the universe where everything — past, present, and future — is contained. Not ambitious at all, right? And to bring the idea into existence, I would have to learn how to program web apps.</p>
<p>Having no internet at home is a real challenge for a future web developer. When I started, ADSL broadband adoption was almost nonexistent, limited only to businesses and maybe wealthy households. For the average family, connecting to the internet meant dialing in on a modem connection and paying high prices for a slow internet experience. I couldn’t afford that, which meant I had to go and bother friends every time I needed to access some online tutorial that explained how to program in PHP.</p>
<p>So even though I had a computer and the will to learn, I still didn’t have easy or regular access to the information on how to do it. But I was determined to get that job, and I knew that even these setbacks wouldn’t deter me from learning PHP. When you don’t have time to waste, you don’t have time to feel desperate; instead, you have to focus on finding solutions.</p>
<p>Meanwhile, due to the lack of internet access around town, cyber cafes started popping up in the city, charging around half a dollar for one hour of surfing. This struck me as a better solution than constantly bothering my friends. But this also meant finding an extra 50 cents and a couple of floppy disks in order to get to a cyber cafe, find the information I wanted, copy it onto one of those diskettes, and get it home onto my computer. More often than not, data got corrupted in the process of extracting it from the floppy disks.</p>
<p>Imagine how angry and frustrated I was: I had made a trip to a cyber cafe and wasted 50 cents for nothing. Half a dollar! This might not sound like much, but at that time where we lived, you could buy a burger or a bottle of beer for a dollar. For us, it was a lot of money: it meant our daily bottle of milk or a loaf of bread.</p>
<p>During those days, my routine consisted of trying to solve problem A to get to point B. Sometimes the tasks were rather easy and I felt like I was making quick progress. Other days, it felt like I was going nowhere. For example, say I had to implement a feature like “insert new data into the database.” This meant writing down all the obstacles I had to solve to achieve that — from how to write an SQL INSERT statement to how to execute it using PHP — and then integrating everything into the app.</p>
<p>Each of these tasks was an item on my daily “shopping list” for when I went to the internet cafe. I would take a couple of floppy disks with me, and then I would google for blog posts, tutorials, and guides that would help me solve the items on my list. Once that was complete, it was time to save them on my diskettes and head home, all the while hoping the data had successfully saved and would be easily accessed on my computer.</p>
<p>Because of the uncertainty involved, the bicycle trip back would be fueled by the worst anxiety ever. “What if the data isn’t there at all?” I wondered. “What if the bike shakes too much and the data gets corrupted? I really don’t have another dollar to spare until tomorrow, so this better work when I get home.”</p>
<blockquote>
<p>I was determined to get that job, and I knew that even these setbacks wouldn’t deter me from learning PHP. When you don’t have time to waste, you don’t have time to feel desperate; instead, you have to focus on finding solutions.</p>
</blockquote>
<p>Suffice to say, this wasn’t practical at all. Once I was back home, I’d use the information I’d brought back to help me accomplish the task in progress, but once it was complete, I lacked the knowledge to perform the next step. This means I was left sitting at home, thinking about a problem, and waiting until the next day, when I could squeeze another 50 cents out of our budget to go to the cafe and repeat this routine. Though at the time it seemed like my only option, eventually I had to admit to myself that it was time for a new strategy. I needed something that contained most of the information on how to write a web application with PHP and Flash MX, with guides explaining how to perform the most trivial of tasks, all in one single place. Not the internet, but books!</p>
<p>It seems like such a no-brainer, but for someone in my situation, the kinds of books I needed weren’t necessarily in reach. The problem is that when you’re part of a marginalized sector of society, accessing books isn’t so easy. The closest thing to a programming book you could find at the public library would be some outdated manual on how to repair a computer — maybe some dusty MS-DOS guide, or perhaps a BASIC or Delphi book if you got lucky — but not much more.</p>
<p>Well, at least one could buy books, right? Not really.</p>
<p>In most towns in Uruguay’s countryside, technical books are usually absent from the bookstore shelves, and my town was no exception. Add to the problem the fact that most of the tech books — particularly those talking about cutting-edge technology — are written in English, and you can just forget about the local bookstore. In the end, this left me with only one option: Amazon.</p>
<p>But it wasn’t that easy either. To buy books on Amazon, you need a little piece of plastic called a credit card, but to get access to a credit card, you need a good credit history — which for most people is not a problem. In my case, though, I was living in a completely different world: everything we bought was paid for in cash. We didn’t have the money or the economical certainty to enter into a credit plan.</p>
<p>For us, it worked like this: if we wanted to buy something more expensive than our monthly income, we either saved month after month until we got enough money to buy what we wanted, or we asked some family member to buy the product for us and worked to pay them back later.</p>
<p>And even if we’d had the option of buying books on Amazon, we hadn’t factored in the fact that shipping alone from the United States to Uruguay was nearly the cost of the book, not to mention it would take a month for it to arrive.</p>
<blockquote>
<p>In my case, though, I was living in a completely different world: everything we bought was paid for in cash. We didn’t have the money or the economical certainty to enter into a credit plan</p>
</blockquote>
<p>Sometimes the solution to these kinds of problems is closer to home than we think. Eventually, we ended up resorting to asking for help from family. My wife has an aunt who had been living in the US for quite a while, so we figured it was worth a shot to ask and see if she would buy me a couple of programming books. So on one of my internet excursions, I wrote an email to her explaining my situation, hit send, and basically crossed my fingers and prayed to every deity out there that she would help us. After a couple of days, I had a new email in my inbox. It was her answer, straight to the point: “Tell me which books you need and I’ll order them from Amazon.” After doing some research, I ended up asking for the <em>Flash MX Bible</em> and the <em>PHP 5 and MySQL Bible</em>.</p>
<p>Those two books proved incredibly helpful in the weeks to come. They were both so thorough that I was able to make steady progress without needing to constantly visit the internet cafe in search of missing information. I could finally make headway on understanding what I needed to know to build my maps application. And finally, with access to the information I needed, it was time to sit down in front of my computer and get to work.</p>
<h4 id="heading-i-hope-you-liked-this-first-part-on-the-next-articlehttpsmediumcomoldsoundbecome-ii-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-5da51d788ea9-ill-discuss-how-i-prepared-myself-for-applying-to-the-job-position-and-tell-you-how-the-interview-process-went">I hope you liked this first part. On the <a target="_blank" href="https://medium.com/@old_sound/become-ii-how-i-went-from-selling-food-in-the-street-to-working-for-top-firms-in-tech-5da51d788ea9">next article</a> I’ll discuss how I prepared myself for applying to the job position and tell you how the interview process went.</h4>
<p>Credits: The illustration on top was made by my friend <strong><em>Sebastián Navas</em></strong>. If you want to see more of his art go to his Deviantart profile: <a target="_blank" href="https://polacostyle.deviantart.com">https://polacostyle.deviantart.com</a> or get in touch with him via Facebook: <a target="_blank" href="https://www.facebook.com/sebastian.navas.16">https://www.facebook.com/sebastian.navas.16</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Want to learn something? Research it and present your work. ]]>
                </title>
                <description>
                    <![CDATA[ By Josh Bowen When I’m learning about something, I eventually hit a plateau. It’s hard to fight past this feeling. I’ve found that researching and then presenting that research helps me get unstuck. You don’t have to be a student or professor to do t... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/want-to-learn-something-research-it-and-present-your-work-d4151e929d06/</link>
                <guid isPermaLink="false">66c364bb0cede4e9b1329d37</guid>
                
                    <category>
                        <![CDATA[ learning ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Life lessons ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 24 Aug 2017 02:14:45 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*37cCD5B_EJ7247jSVy_mzA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Josh Bowen</p>
<p>When I’m learning about something, I eventually hit a plateau. It’s hard to fight past this feeling. I’ve found that researching and then presenting that research helps me get unstuck.</p>
<p>You don’t have to be a student or professor to do this. I encourage everyone to try it. Just as posting your code on GitHub adds to open source, presenting (and publishing) your research adds to the body of scientific knowledge.</p>
<h3 id="heading-creating-a-project">Creating a project</h3>
<p>I started this project in January 2017 to learn more about machine learning and cyber security. Both are topics I’ve read about but have never applied. Since I didn’t know the current state of research in either area, I decided to tackle a problem in cyber security.</p>
<p>After a bit of sifting I found <a target="_blank" href="https://www.dhs.gov/sites/default/files/publications/CSD-DHS-Cybersecurity-Roadmap.pdf">a government report from 2009</a>. It described current problems and areas that need more research. I was drawn to the section on Insider Threats, so I decided to apply machine learning to insider threats.</p>
<p>I thought to myself — How hard can it be?</p>
<p>I was excited about the project, but hadn’t yet read any papers in the area. I started thinking of ways to evaluate how the average person uses a computer versus an insider with malicious intent. Because my laptop runs Ubuntu and I’m often in the terminal, the idea of looking at commands came to mind.</p>
<p>I decided I would capture commands as they happen, make evaluations, and try to stop malicious and mistake commands in their tracks. I didn’t know what I was getting myself into. I wrote an abstract (available <a target="_blank" href="https://gist.github.com/Skraelingjar/39092ccb8eca4c9df3c56b1e392cb5d6">here</a>) and got to work.</p>
<h3 id="heading-the-research">The Research</h3>
<p>A month later, I had done some (minimal) preliminary research. I then submitted my abstract to the AZ/NV Academy of Science. Since they accepted it, I seemed to be on the right path.</p>
<p>I had been in no rush to get anything done. I had months to go before presenting! This was a bad mindset. By the time my poster was accepted I had only five weeks to prepare. I raced to gather a reasonable body of research to build upon.</p>
<p>To my surprise, I found quite a few papers that have taken a stab at this problem. In fact, someone tried the same approach I chose back in 1999 and their research was proven ineffective a few years later! How could I go on?</p>
<p>I continued to read from the <a target="_blank" href="https://github.com/Skraelingjar/cyberml/blob/master/bibliography.txt">stack of papers</a> I built up. Then it dawned on me that nobody was actually applying this stuff to a real-life situation. There was my differentiator: a practical application.</p>
<h3 id="heading-the-data">The Data</h3>
<p>Before I could start writing code, I needed data for my machine learning model. I had about 60,000 commands in my own .zsh_history file but that was not enough. It also didn’t contain many mistakes and there as no malicious behavior.</p>
<p>I decided to solicit businesses for their logs — maybe I could get enough. Then it occurred to me to check whether anyone had already collected any databases of commands.</p>
<p>It turns out, Purdue University collected a large <a target="_blank" href="https://archive.ics.uci.edu/ml/datasets/UNIX+User+Data">dataset of UNIX commands</a> over a few years. And the University of California, Irvine saved it. I was in business.</p>
<p>Both my history file and the UNIX data had unnecessary bits I needed to get rid of. So I wrote some Python to deal with it because I didn’t want to go through 100,000+ lines by hand. First up was my history file. Not too difficult.</p>
<pre><code># Examples <span class="hljs-keyword">of</span> what I<span class="hljs-string">'m dealing with: 1474850643:0;ls: 1474851038:0;cd# Examine each line and write to outputfor line in file:    before, sep, after = line.rpartition(";")    output.write(after.rstrip())</span>
</code></pre><p>The difficult part was handling the Purdue data. It was full of things like EOF, SOF, representations of arguments, flags, and pipes that were all on separate lines.</p>
<p>I had to figure out how those went together so I wasn’t feeding my model gibberish. I came up with a messy jumble of nested <code>if</code> statements nearly 50 lines long.</p>
<p>I’ve never been more excited and disappointed about code I’ve written. It is difficult to be proud of such a mess. But I spent so many hours on it that I was relieved to have something that worked.</p>
<p>Both programs saved everything in a CSV format for easy upload to Amazon’s S3 service. From there it is imported to the machine learning model and evaluated.</p>
<h3 id="heading-the-software">The Software</h3>
<p>Now that I’d handled the data, I could finally start writing the demo program. How hard could it be?</p>
<p>I had less than three weeks to go. It was easy enough to send and receive from Amazon’s machine learning API. Making evaluations based on those responses was not too difficult either. I even knew how I would handle malicious and mistake commands.</p>
<p>But I knew nothing about capturing what the user was typing before the command was executed. I read the Python docs and tried the examples. I scoured the internet, and even looked in the Linux e-books I got in a Humble Bundle. Nothing. I spent almost half my time going down a road to <a target="_blank" href="https://github.com/Skraelingjar/cyberml/blob/master/demo/readr.py">nowhere</a>.</p>
<p>I finally gave up and <a target="_blank" href="https://stackoverflow.com/questions/42916636/how-do-i-read-user-commands-in-bash-on-the-fly-with-python/42916902#42916902">posted on Stack Overflow</a> seeking a guru to guide me in the right direction. I am thankful that Ian responded. Even though it wasn’t the answer I was looking for, it was the answer I needed:</p>
<blockquote>
<p>_Okay sounds like it would be really useful. So why have you decided not to just do something like while(input=raw<em>input(“user: “)): #ML code if itsAllGood: subprocess(input.split()) else: #shutItDown</em></p>
<p><em>Ian Harvey — Mar 21 at 4:30</em></p>
</blockquote>
<p>I had just over a week left. I ran with it, and wrote a simple program that creates a fake prompt, reads input, and evaluates the command. You can find the full program <a target="_blank" href="https://github.com/Skraelingjar/cyberml/blob/master/demo/demo.py">here</a>.</p>
<p>There was a big problem with this program. Even though I passed <code>KeyboardInterrupt</code> and <code>SystemExit</code>, <code>Ctrl + C</code> would allow anyone to bypass the program.</p>
<p>The other big issue was that many commands didn't work, like <code>cd</code>. It was laughably bad, but I set it up on a Raspberry Pi and invited some hackers to give it a try. Needless to say my program didn't last long.</p>
<h3 id="heading-the-poster">The Poster</h3>
<p>Did you know that the standard for designing academic posters is Power Point? I couldn’t believe it. Unfortunately there isn’t an alternative. Whoever builds <a target="_blank" href="https://prezi.com/">Prezi</a> for academic posters can have my money.</p>
<p>I ended up finding a <a target="_blank" href="http://blog.felixbreuer.net/2010/10/24/poster.html">beautiful SVG poster</a> used for math research and converted it for my project. At first this was brilliant. I’m used to Inkscape, and wouldn’t have to worry about scale when I sized things up. The downside was that I had to delete all the mathematical symbols one by one.</p>
<p>Writing content for the poster was a challenge. I had difficulty getting my thoughts into words. It came out all wrong in my first couple drafts. I also didn’t realize how big I needed to make the font so it would be readable from a few feet away.</p>
<p>I needed something to set my poster apart. I thought about explaining insider threats or machine learning as concepts. In the end, I settled for attempting to explain the demo software so that anyone could understand. I wrote simple titles and used some Font Awesome icons to demonstrate the point.</p>
<p>Afterward, I realized there was still too much empty space. I added snippets of code for each section. It was only later that I realized this might help demystify code for my audience. They were mostly science — but not computer science — students and professors.</p>
<h3 id="heading-the-presentation">The Presentation</h3>
<p>I was nervous about presenting my poster. I was worried that people would ask complex questions about machine learning. Or that they would judge me because it turned out that this project was “unsuccessful.”</p>
<p>I was wrong. Everyone I spoke with was interested and understood the project’s failures. Some even thought the design was nice. Nobody asked the complex technical questions I was worried about.</p>
<p>But I should’ve practiced first — I didn’t have a very concise, five minute presentation ready to go.</p>
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>So, what did I learn from this project? <strong>We need more open data.</strong> The machine learning model was skewed because the majority of data I had fell into the normal category. Businesses should release cleaned logs after a breach. Then that data could help develop models that could effectively stop similar attacks.</p>
<p>This approach won’t really work until I find a way to read commands as the user enters them while allowing the terminal to function normally. I will need to take into account custom commands, aliases, and what constitutes someone’s “normal” behavior. Adding variables such as typing speed and access data could help as well.</p>
<p>I plan to continue working on <a target="_blank" href="https://github.com/skraelingjar/cyberml">this project</a> because I believe it can be viable.</p>
<p><strong>I encourage all of you to pursue your ideas, take on projects to learn new things, and never give up.</strong></p>
<p>If you enjoyed this post, give me some claps so more people see it. I write about machine learning, cyber security, IoT, and learning to code. Find me on <a target="_blank" href="http://twitter.com/_josh">twitter</a> or my <a target="_blank" href="http://joshuabowen.info">website</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How I built a Smart Mirror, with a little help from my daughter and her grandpa ]]>
                </title>
                <description>
                    <![CDATA[ By Coding with Cookie This month I built a smart mirror with my dad and daughter. This project spanned across three generations. The idea started a few years ago with the novelty of a smart mirror. But before I was going invest the time and money to ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/crafting-a-smart-mirror-with-my-dad-and-daughter-c3bdd151fefd/</link>
                <guid isPermaLink="false">66c347ef12c88d894ffd1f62</guid>
                
                    <category>
                        <![CDATA[ Internet of Things ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Raspberry Pi ]]>
                    </category>
                
                    <category>
                        <![CDATA[ smart home ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 21 Aug 2017 04:31:11 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*0MC93WQzKqFGisGM2WisVQ.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Coding with Cookie</p>
<p>This month I built a smart mirror with my dad and daughter. This project spanned across three generations.</p>
<p>The idea started a few years ago with the novelty of a smart mirror. But before I was going invest the time and money to make one, I needed a practical reason to build one. Recently that reason presented itself.</p>
<p>In our kitchen we have a whiteboard where we list out our dinner plans for the week and I wanted to upgrade it. I submitted a presentation idea for the smart mirror at local tech conference. My smart mirror presentation was <a target="_blank" href="https://seattle.codecamp.us/Session/Details/217">selected</a>. This accelerated my timeline.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/DeTO06lHtTL-b0AmprtydowA3tWFIwc4dern" alt="Image" width="800" height="449" loading="lazy">
<em>Programming the Smart Mirror with my Daughter</em></p>
<p>I needed help with the design of the smart mirror frame</p>
<p>since I live in the digital world designing software that lives in the cloud. My dad is a Mechanical Engineer who lives in the physical world designing the planes we fly though the clouds everyday. While talking with my dad one evening, he suggested to create some initial sketches of the mirror.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/VYfIYuOgsKPTY5nsFkZmxPsY83hYF2SFfNkd" alt="Image" width="799" height="1066" loading="lazy">
<em>Initial Design of Smart Mirror</em></p>
<p>After a few more conversations with my dad and several design revisions, we settled on a simple box design for the frame. My dad knew more about woodworking than I did, and he had a few suggestions for me.</p>
<p>Like using cabinet draw sides for the sides of the frame as they already came with a groove to hold the glass. And using <a target="_blank" href="https://en.wikipedia.org/wiki/French_cleat">french cleats</a> to secure the mirror to the wall. This also allowed it to be easily removed for transport.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/eq70lB300bPWUI2zzdVaTePyHuCQWh0CaEDa" alt="Image" width="800" height="600" loading="lazy">
<em>Revised Design of the Smart Mirror</em></p>
<p>My wife was a huge support in this endeavor. She helped by sorting through dozens of televisions looking for the right price and features. The size had to be large enough for our kitchen, but not too large to make transporting a hassle. Finally she was able to get a television from Best Buy that had everything I was looking for. And the best part was that it was on sale.</p>
<p>The most noticeable part of the smart mirror is the reflective mirror. Most household mirrors are made from glass. But the biggest downside to using glass is that it’s fragile and doesn’t transport well. I chose plastic as it’s lighter, more transparent, and more durable.</p>
<p>It’s nice to talk to experts and I live in Seattle which has a great local <a target="_blank" href="https://www.tapplastics.com/">plastic supplier</a>. They were excellent and able to help me select the correct plastic. They suggested acrylic and we even tested the mirror film I had acquired on a sample they had. And this was not the first smart mirror they had supplied the plastic for so I knew I was on the right track.</p>
<p>The choice was simple when it came to deciding where to assemble the frame. My dad has a new workshop and all the tools we needed and I have a garage and a single toolbox. Once I had acquired the wood, acrylic, and mirror film, I went over to my dad’s workshop to assemble the frame.</p>
<p>I thought it would take 4–5 hours. But it took around 15 hours to assemble the mirror. That may be due to refining the design as we were making the mirror. It may also be due to me asking a lot of questions, like why glue this instead of screw that. Or it was due to having a good time with my dad. Looking back it was a combination of all the above.</p>
<p>Over three separate days we cut, glued, nailed, and screwed the frame together. It would hold the television, acrylic mirror, and Raspberry Pi.</p>
<p>Several power tools were used including a table saw, chop saw, and nail gun so my daughter didn’t help with that part. But she was able to help with the final assembly when the acrylic mirror was inserted. She was even able to use the power drill to screw in the top during the final assembly.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/image/not-found.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>My Daughter using a Power Drill to Screw in the Top of the Mirror</em></p>
<p>With all the woodworking completed, my daughter and I started wiring everything together. As pink is her favorite color, it was obvious that the only choice was to 3D print the Raspberry Pi case in pink.</p>
<p>We put the Raspberry Pi into the pink case and attached it to the back of the TV via adhesive Velcro.</p>
<p>By using Velcro, the Raspberry Pi can be disconnected. Thus I can show the size of the computer transforming the mirror into a smart mirror.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/Kv-0LGWfO0ueT1o-xHr6C-znSspCJIJMBuX8" alt="Image" width="800" height="600" loading="lazy">
<em>3D Printed Pink Raspberry Pi Case</em></p>
<p>Modern televisions usually include a USB port, and the one my wife found did indeed have one. I tested it out the USB Port on the TV and it was able to supply enough power to the Raspberry Pi. This meant that the TV Power cord was the only cable I needed to plug into the wall outlet.</p>
<p>Then we plugged the USB and HDMI cables into both the Raspberry Pi and TV and we were ready to go.</p>
<p>With the on board WiFi I connected the smart mirror to the internet without any other wires. And when the power is out it will still work as a traditional non-smart mirror.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/image/not-found.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>My Daughter and I Connecting all the Wires on the Back of the Smart Mirror</em></p>
<p>When you are 4, typing on a keyboard and coding are cool. We’ll see how she feels when she’s 14.</p>
<p>My daughter got to help a lot on the software part of the smart mirror. Since her spelling abilities end with her name, she was able to type that and was very excited when she saw it on the smart mirror.</p>
<p>To get her name to appear, we used HTML. To keep it simple a static HTML page with inline styling via Chrome, fullscreen <code>F11</code>, was all we had to do to get it working. The background needs to be as dark as possible to minimize the light coming though the mirror.</p>
<p>When the screen is off or completely black it appears as a common mirror. The text and graphics need to be as bright as possible to show through, transforming it into a smart mirror. On my mirror I was able to find a film with 5% transparency.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/a-EnHz7xBvtQyA7VmWtqAGQOnGUwSV3DTJNx" alt="Image" width="799" height="1066" loading="lazy">
<em>Installing the Acrylic Mirror into the Frame</em></p>
<p>In reviewing my mirror thus far, I would do a few things different next time. First, I would get a slimmer television. Right now the mirror frame is 4.5 inches deep, which is deep enough that you notice, but not so deep that it’s obtrusive.</p>
<p>Next, I would order acrylic with the mirror film already installed. My dad and I were able to install the film in 20 min, but this resulted in several small bubbles. Most likely due to a few small pieces of dust trapped between the film and acrylic.</p>
<p>Also, I would add a more stylized front. If you take a look at the corners of my smart mirror, you will see all the layers of plywood. This could be hidden with some nice wood to more resemble a picture frame.</p>
<p>Finally, I would add a small gap between the TV and acrylic. Currently, the acrylic is helping to support the TV. This is putting pressure on the acrylic causing it to bend slightly. This results in a slight distortion of the mirror.</p>
<p>Building the Smart Mirror has been a great experience and if you have any questions please <a target="_blank" href="https://codingwithcookie.com/contact/">reach out</a>.</p>
<p>The next project that my daughter and I are working on is wiring some sensors in the kitchen to track the temperature in the refrigerator and freezer. I’m hoping to get her more involved with this and future projects as she is excited to help and wire the sensors on a breadboard.</p>
<p>I look forward to sharing that story with you once she and I have completed it.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/8xBLYzrWXyZMltzMYYVKY5C2ARAcu9nHZlZ9" alt="Image" width="799" height="1066" loading="lazy"></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The t-distribution: a key statistical concept discovered by a beer brewery ]]>
                </title>
                <description>
                    <![CDATA[ By Kirill Dubovikov In this post we will look at two probability distributions you will encounter almost each time you do data science, statistics, or machine learning. Gaussian distribution Imagine that we are doing a research on the height of vario... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-t-distribution-a-key-statistical-concept-discovered-by-a-beer-brewery-dbfdc693184/</link>
                <guid isPermaLink="false">66c3628b5731bdf41f8c6451</guid>
                
                    <category>
                        <![CDATA[ Data Science ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learning ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Mathematics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 18 Aug 2017 20:42:20 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*ooxuSXzQoLp1CzVpcaP2Gw.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Kirill Dubovikov</p>
<p>In this post we will look at two probability distributions you will encounter almost each time you do data science, statistics, or machine learning.</p>
<h3 id="heading-gaussian-distribution">Gaussian distribution</h3>
<p>Imagine that we are doing a research on the height of various people in a city. We go down the street and measure a bunch of random people. (Some of them thought this was quite strange and wanted to call the police, but come on, this is for the science!)</p>
<p>Now we decide that some <a target="_blank" href="https://en.wikipedia.org/wiki/Exploratory_data_analysis">Exploratory Data Analysis</a> won’t hurt. But statistical software like R isn’t available at the moment, so we just make a histogram out of people.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*5gf9Vel8pV2kuwZgWpQHZg.jpeg" alt="Image" width="800" height="201" loading="lazy">
<em>When you have no statistical software at hand…</em></p>
<p>What do we see here? Ahh, the famous bell curve. This is likely to be the most important probability distribution you will ever encounter. Thanks to the <a target="_blank" href="https://en.wikipedia.org/wiki/Central_limit_theorem">Central Limit Theorem</a>, the Gaussian distribution is present in many real world phenomena. It’s so common that people just call it a <strong>normal distribution</strong>.</p>
<p>The Central Limit Theorem states that arithmetic mean of a sufficiently large number of independent random variables will be normally distributed. Those random variables can have any distribution initially. But when we measure something that is represented by their sum, we will eventually (as the number of samples tends to <em>∞</em>) end up with normally distributed process.</p>
<p>The probability density function of Gaussian distribution is written below:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*mZXFcXjoX-hGcIVq8Rjfag@2x.png" alt="Image" width="558" height="100" loading="lazy"></p>
<p>This formula may look a bit intimidating, but it’s convenient to work with mathematically. If you’re interested in how it can be derived, you can <a target="_blank" href="http://courses.ncssm.edu/math/Talks/PDFS/normal.pdf">read how here</a>. As you can see this distribution has two parameters:</p>
<ul>
<li>µ (mean)</li>
<li>σ(standard deviation).</li>
</ul>
<p>Mean µ controls the <a target="_blank" href="https://en.wikipedia.org/wiki/Expected_value">expected value</a> (where the most values will go) of a normally distributed random variable. Variance σ² controls the spread or variety of possible values under the distribution.</p>
<p>The concept of a normal distribution has immense value in machine learning. A great variety of machine learning algorithms use it extensively:</p>
<ul>
<li>Linear models assume that errors are normally distributed</li>
<li>Gaussian processes assume that all values of a function under the model are distributed normally</li>
<li>Gaussian mixtures let you model complex distributions and build classifiers on top of mixture models</li>
<li>Normal distribution comes up as one of the main components in Variational Autoencoders</li>
</ul>
<p>Here is an interactive demo of the Gaussian distribution.</p>
<h3 id="heading-a-students-t-distribution">A student’s t-distribution</h3>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*wqw17kqJXeunz7cBdk8sUQ.jpeg" alt="Image" width="445" height="500" loading="lazy"></p>
<p>What if we wanted to model our data with Gaussian distribution, but the variance σ² is was not known to us? This problem arises when the sample sizes are small and standard deviation (σ) can not be estimated accurately.</p>
<p>William Gosset tackled this problem while working at a Guinness brewery. He empirically found a formula for a <strong>t-distributed</strong> random variable.</p>
<p>First, suppose we have values <em>x, …, xn</em> which were sampled from some normal distribution <em>N(µ, σ²)</em>.</p>
<p>We do not know the true variance, but we can estimate it by calculating sample mean and variance:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*Fzr4BLa0YDiDI4kMIjZOkw@2x.png" alt="Image" width="225" height="121" loading="lazy"></p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*sACHMWdisU0nU2e2xPIZeg@2x.png" alt="Image" width="438" height="121" loading="lazy"></p>
<p>Then the random variable</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*frSLeAx5ObJWzD3L6a7Szw@2x.png" alt="Image" width="200" height="96" loading="lazy"></p>
<p>will have a t-distribution with <em>n-1</em> degrees of freedom, where <em>n</em> is the number of samples.</p>
<p>This formula may resemble transformation from Normal to Standard Normal (a shorthand for Normal distribution with zero mean and unit variance):</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*TE3StAIUL1TEoxhbKzAiqw@2x.png" alt="Image" width="129" height="96" loading="lazy"></p>
<p>We don’t know the true population variance, so we have to substitute sample standard deviation estimate for the real one.</p>
<p>This distribution lies at the foundation of the scientific method, called the <strong>t-test</strong>. This was used at Guinness to measure the quality of their beer.</p>
<p>William Gosset published this result under a pseudonym Student. Guinness was afraid that its competitors would discover that the t-test was used to control the quality of their product.</p>
<p>Gosset’s discoveries were later formalized by famous statistician Ronald Fisher. Fisher is considered to be the author of the frequentist approach to statistics.</p>
<p>Now goes the fun part! You can play with t-distribution below:</p>
<p>As you can see t-distribution approaches standard normal when degrees of freedom are large. This happens because sample mean approaches true mean as a number of samples approaches infinity. The “fat” tails of t-distribution compensate for uncertainty when we are working with small samples.</p>
<p>An interested reader might ask, “So, what is the probability density function of the t-distribution? How can we derive it?” This turns out to be not that easy in terms of mathematics, but the central idea is easy to grasp.</p>
<p>Let’s suppose we are interested in getting the probability density function of normal variable <em>X ~ N(0, σ).</em> But without direct dependence on standard deviation <em>σ.</em></p>
<p>Intuitively, to get rid of <em>σ</em> we must make some assumptions. Let’s treat <em>σ</em> as a random variable itself, and assume that it follows <a target="_blank" href="https://en.wikipedia.org/wiki/Gamma_distribution">Gamma distribution</a> (this is a very general distribution which has many uses in Bayesian statistics).</p>
<p>This way we may say that <em>X</em> is a mixture of two continuous probability distributions: Normal and Gamma. Then we integrate out <em>σ</em> and arrive at the probability density function formula for the t-distribution.</p>
<p>You can see more formal proofs <a target="_blank" href="https://probabilityandstats.wordpress.com/tag/students-t-distribution/">here</a> and <a target="_blank" href="https://www.statlect.com/probability-distributions/student-t-distribution">here</a>.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>Gaussian distributions and Student’s distributions are some of the most important continuous probability distributions in statistics and machine learning.</p>
<p>The t-distribution may be used as a placeholder for Gaussian when population variance is not known, or when the sample size is small. Both are closely related to each other in a strict and formal way.</p>
<p>Thanks for reading my article! I hope it helped you to learn something new or refresh existing knowledge.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How “Gravity Falls” can help you teach your kids basics of cryptography ]]>
                </title>
                <description>
                    <![CDATA[ By Kamil Tustanowski It’s Wednesday evening. My two sons and daughter are ready. I press play and we start a journey that takes us all farther than we ever anticipated. We watched the first episode of Gravity Falls. The visuals, characters, plot and ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-gravity-falls-can-help-you-teach-your-kids-basics-of-cryptography-18e1c6f9ac39/</link>
                <guid isPermaLink="false">66c34d2b5ced6d98e4bd331e</guid>
                
                    <category>
                        <![CDATA[ children ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Cryptography ]]>
                    </category>
                
                    <category>
                        <![CDATA[ life ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 06 Aug 2017 12:37:42 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*i1wUMam8Rgkq-XMwmu7YlA.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Kamil Tustanowski</p>
<p>It’s Wednesday evening. My two sons and daughter are ready. I press play and we start a journey that takes us all farther than we ever anticipated.</p>
<p>We watched the first episode of <a target="_blank" href="http://www.imdb.com/title/tt1865718/">Gravity Falls</a>. The visuals, characters, plot and humor are top notch and we definitely wanted more but… we spotted something at the end of credits. Something we didn’t expect. Something that made watching this series far more interesting and engaging.</p>
<p>An <code>encrypted message</code>.</p>
<p>Here’s how we deciphered the codes. And we had a great fun doing this on our own. Without checking any of this in the internet. If I’ve caught your interest, I recommend you to stop reading and try doing this yourself. Then you can come back and read my solutions and explanations below later.</p>
<h4 id="heading-zhofrph-wr-judylwb-idoov"><strong>ZHOFRPH WR JUDYLWB IDOOV</strong></h4>
<p>We were certain this was a message. By the looks of it I was guessing that it’s encrypted with some kind of substitution cipher.</p>
<blockquote>
<p>Encrypting using substitution cipher basically substitutes letters with other letters based on some general rule. Decrypting is done by applying this rule in reverse to encrypted text. This kinds of ciphers are not used anymore because they are easy to break i.e. with <a target="_blank" href="http://practicalcryptography.com/ciphers/simple-substitution-cipher/#cryptanalysis">cryptoanalysis</a>. You can find more details on this <a target="_blank" href="https://en.wikipedia.org/wiki/Substitution_cipher">wiki page</a>.</p>
</blockquote>
<p>At first we were too excited about the story to focus on the ciphers just yet. We just acknowledged that the ciphers exist and we didn’t know how to decrypt them. I thought we would just break them later but…</p>
<p>After one episode my son had an idea. He wanted to watch show intro. Backwards. I thought <code>why not</code> ? Guess what! When you watch it backwards at some point you can hear hidden message:</p>
<p><strong>Three letters back</strong></p>
<p>Hmm… <code>three letters back</code>. Normally this would’t make any sense. But we had ciphers which we didn’t know how to decode. For us this made perfect sense.</p>
<h4 id="heading-hello-mr-caesar">Hello Mr. Caesar</h4>
<blockquote>
<p>The Caesar cipher is one of the earliest known and simplest ciphers. It is a type of substitution cipher in which each letter in the plaintext is ‘shifted’ a certain number of places down the alphabet. For example, with a shift of 1, A would be replaced by B, B would become C, and so on. The method is named after Julius Caesar, who apparently used it to communicate with his generals. Read more <a target="_blank" href="http://practicalcryptography.com/ciphers/classical-era/caesar/">here</a>.</p>
</blockquote>
<p>I printed english alphabet for everyone from <a target="_blank" href="https://en.wikipedia.org/wiki/English_alphabet">here</a> and decrypting started:</p>
<p><code>Z</code> → <code>W</code> because if we move <code>3</code> letters back from <code>Z</code> we end up with <code>W</code><br><code>H</code> → <code>E</code><br>…<br><code>B</code>→ <code>Y</code> because if we move <code>1</code> letter back we end up on <code>A</code> and the next <code>2</code> we have to <code>count</code> from the end of alphabet so in the end it’s <code>Y</code></p>
<p>After a while we knew that <strong>ZHOFRPH WR JUDYLWB IDOOV</strong> is actually <strong>WELCOME TO GRAVITY FALLS.</strong></p>
<p>My kids loved it.</p>
<p>When they were <code>manually</code> decrypting next messages I thought that this is great opportunity to actually show them what I’m doing at work. In the way it’s easier for them to understand.</p>
<p>I started new <code>Swift Playground</code> because it’s offering awesome way for working with code. And started coding. I wrote this just for fun so please don’t judge ?:</p>
<p>When manual decoding was done I sit down with my children in front of a computer. I explained that my code is doing the same things they were doing when decrypting messages. But instead of doing this manually it’s automatic and can used many times. They didn’t understood the code, I would be surprised if they did, but I’m pretty sure they got <code>the idea</code>.</p>
<h4 id="heading-kzkvi-qzn-wrkkvi-hzbh-zfftsdcjtstzwhzwfs">KZKVI QZN WRKKVI HZBH: “ZFFTSDCJTSTZWHZWFS!”</h4>
<p>Everything was great until episode <code>7</code>. We started decoding first word and:<br><code>KZKVI</code> → <code>HWHSF</code><br>Oh-oh, our luck just run out. It was clear that cipher has changed. Luckily there was a <code>clue</code> in message we did decrypt for episode <code>6</code> :</p>
<p>MR. <strong>CEASAR</strong>IAN WILL BE OUT NEXT WEEK MR. <strong>ATBASH</strong> WILL SUBSTITUTE</p>
<p><code>Ceasar cipher</code> → <code>Atbash cipher</code></p>
<h4 id="heading-hello-mr-atbash">Hello Mr. Atbash</h4>
<blockquote>
<p>The Atbash cipher is a substitution cipher with a specific key where the letters of the alphabet are reversed. I.e. all ‘A’s are replaced with ‘Z’s, all ‘B’s are replaced with ‘Y’s, and so on. It was originally used for the Hebrew alphabet, but can be used for any alphabet. Read more <a target="_blank" href="http://practicalcryptography.com/ciphers/classical-era/atbash-cipher/">here</a>. Atbash encrypted strings can be found even in a Bible. You can read a bit more about this in <a target="_blank" href="https://www.gotquestions.org/Atbash-code.html">here</a>.</p>
</blockquote>
<p>This time it was a bit more time consuming because we had to check character index from beginning and then find letter with this index counted from the end of alphabet. Again my kids were decrypting this manually:<br><code>K</code> → <code>P</code> because index of <code>K</code> is <code>11</code> and when we count <code>11</code> from the end of alphabet we get <code>P</code><br><code>Z</code> → <code>A</code><br><code>K</code> → <code>P</code><br><code>V</code> → <code>E</code><br><code>I</code> → <code>R</code><br><code>KZKVI</code> → <code>PAPER</code> This made sense again.</p>
<p>After a few minutes my daughter approached me and asked whether she decrypted the message properly. She did. But this wasn’t most interesting. I noticed that she wrote something on the printed alphabet page. Above the alphabet indexes <code>1, 2, 3, …, 26</code> she added reversed index numbers <code>26, 25, 24, …, 1</code>.</p>
<p>Thanks to this she didn’t have to count from the end of alphabet anymore. We, programmers, call this <code>optimization</code>. I was amazed that she already started to improve her toolset to make job easier.<br>Again I prepared small piece of code that was able to decode the messages:</p>
<h4 id="heading-1452420-2116-615152021520-202315-71821141112519-71852251475">14–5–24–20 21–16: “6–15–15–20–2–15–20 20–23–15: 7–18–21–14–11–12–5'19 7–18–5–22–5–14–7–5”</h4>
<p>All was good until episode <code>14.</code> Then out of the blue cipher changed again. We didn’t get any clue this time. Or maybe just missed it?</p>
<p>Well… maybe not exactly without any <code>clue</code>. The greatest number in ciphered text was <code>24</code> smallest was <code>2</code>. Alphabet letters has indexes from <code>1</code> to <code>26</code>. Based on this we made educated guess that:<br><code>1</code> → <code>A</code><br><code>2</code> → <code>B</code><br>…<br><code>26</code> → <code>Z</code></p>
<p>When <code>14–5–24–20</code> decoded to <code>NEXT</code> we knew that our assumption was correct.</p>
<p>It was a bit more annoying because I didn’t want to strip the message from any characters when decoded. If it doesn’t work for you — please remove unsupported <code>non-aplhanumeric-characters</code> or add currently unsupported characters to <code>.replacingOccurrences</code>. Like I said. Don’t judge ?</p>
<h4 id="heading-5192362116-1896-41619-2212151020192519">5–19–23–6–21–16 18–9–6 4–16–19 22–12–15–10–20–19–25–19</h4>
<p>We failed again when we tried to decrypt first word from message from episode <code>20</code>.<br><code>5–19–23–6–21–16</code> → <code>ESWFUP</code></p>
<p>Cipher changed. But we didn’t give up easily. <code>Hint</code> there is an , encrypted<code>clue</code>, that says how to decode this message. But I’m leaving this to you. It’s just too much fun to work on this stuff.</p>
<p>Please note that this series has <code>two seasons</code> filled with <code>mysteries and encrypted messages</code>. You won’t get bored.</p>
<h4 id="heading-the-end">The end?</h4>
<p>Now when I know that my children like to play with cryptography I have a few ideas on the<code>next step</code>. Definitely it’s not the last time they were working with ciphers and encrypted messages.</p>
<p>Thanks for reading! I hope that I was able to interest you a bit with this. If you actually try this with your kids please add a comment about it. I’m very curious whether it was as fun to you as it was for us.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
