<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aliya Lewis</title>
    <description>The latest articles on DEV Community by Aliya Lewis (@aliyalewis).</description>
    <link>https://dev.to/aliyalewis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F173836%2F7a31dbc8-eea9-4b56-8e92-dac0bff654d5.jpg</url>
      <title>DEV Community: Aliya Lewis</title>
      <link>https://dev.to/aliyalewis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aliyalewis"/>
    <language>en</language>
    <item>
      <title>What Do You Do When You're Stuck?</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Sun, 15 Dec 2019 07:52:26 +0000</pubDate>
      <link>https://dev.to/aliyalewis/what-do-you-do-when-you-re-stuck-2ap5</link>
      <guid>https://dev.to/aliyalewis/what-do-you-do-when-you-re-stuck-2ap5</guid>
      <description>&lt;p&gt;Lately, I've been feeling like I'm not sure which direction to move in. Should I learn this new framework? Or a new language? Or maybe I need to brush up on something I haven't touched in a while? freeCodeCamp or pay for a class?&lt;/p&gt;

&lt;p&gt;As someone new to tech, it is pretty intimidating knowing where to start and/or when to stop. If you have any advice, please leave it in the comments! If I try out any of your suggestions, I'll make sure to let you know if it worked for me!&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
    <item>
      <title>Trouble with Git Commits on Github? Me too.</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Sun, 08 Dec 2019 04:04:32 +0000</pubDate>
      <link>https://dev.to/aliyalewis/trouble-with-git-commits-on-github-me-too-1900</link>
      <guid>https://dev.to/aliyalewis/trouble-with-git-commits-on-github-me-too-1900</guid>
      <description>&lt;p&gt;Lately, I've been having some issues getting all my commits to show on my GitHub profile. I've worked on several projects over the past couple of weeks but for some reason, my profile looks like I haven't really done anything. Here's my chart:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oZLIgazB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6gvobin7ymyzp0rcv730.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oZLIgazB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6gvobin7ymyzp0rcv730.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From mid-September on, you can see that it's pretty light on the green squares. There are at least 50 commits missing but I'm not sure why that is.&lt;/p&gt;

&lt;p&gt;I've tried checking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;that my terminal is connected to the right GitHub account&lt;/li&gt;
&lt;li&gt;my GitHub contribution settings&lt;/li&gt;
&lt;li&gt;that the commits are showing up in my repos (they are)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't have GitHub Desktop so it's not an issue with that. Recently, I used the internet at a radio station and ran into some issues pushing to my repo because of the radio station's internet security. Could that be a factor?&lt;/p&gt;

&lt;p&gt;Do any of you have any ideas as to what might be causing this?&lt;/p&gt;

&lt;p&gt;Here are the places I've looked for already but haven't found anything that has helped me (but it might help you, depending on your issue):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.bradymower.com/why-arent-my-commits-showing-up-on-my-github-contributions-graph/"&gt;Why aren’t my commits showing up on my GitHub contributions graph?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://help.github.com/en/github/setting-up-and-managing-your-github-profile/why-are-my-contributions-not-showing-up-on-my-profile"&gt;Why are my contributions not showing up on my profile?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
    </item>
    <item>
      <title>Git it? Got it? Good.</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Sun, 01 Dec 2019 05:25:23 +0000</pubDate>
      <link>https://dev.to/aliyalewis/git-it-got-it-good-2di7</link>
      <guid>https://dev.to/aliyalewis/git-it-got-it-good-2di7</guid>
      <description>&lt;p&gt;Hey everyone! This will be a short and sweet blog on git commands. Let's &lt;em&gt;git&lt;/em&gt; started (that was cringy for me too but I couldn't resist!).&lt;/p&gt;

&lt;h2&gt;
  
  
  Git init
&lt;/h2&gt;

&lt;p&gt;This might be the simplest command. It creates a new repo and all you have to do is type this:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  git init [repository name]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
  
  
  Git clone
&lt;/h2&gt;

&lt;p&gt;This will to create a copy or "clone" of an existing repo. Just type:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  git clone [url to the repo]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A handy shortcut that can be created is &lt;em&gt;gcl&lt;/em&gt;, if you're into saving keystrokes check I'd suggest using it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git diff
&lt;/h2&gt;

&lt;p&gt;Git diff shows the differences in files that have not yet been staged. To see them, all you have to type is "git diff".&lt;/p&gt;

&lt;h3&gt;
  
  
  Git diff --staged
&lt;/h3&gt;

&lt;p&gt;This will show you the differences in the files that have been staged.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git diff [branch1] [branch2]
&lt;/h3&gt;

&lt;p&gt;Shows the differences between the specified branches.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git reset
&lt;/h2&gt;

&lt;p&gt;This will unstage a file but keep the contents the same.&lt;/p&gt;

&lt;p&gt;git reset [file name]&lt;/p&gt;

&lt;h3&gt;
  
  
  Git reset [commit]
&lt;/h3&gt;

&lt;p&gt;This command undoes all commits after the specified commit but changes are only saved locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git reset -hard [commit]
&lt;/h3&gt;

&lt;p&gt;Returns content back to the specified commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Git rm
&lt;/h2&gt;

&lt;p&gt;Will delete the file from your working directory and stages it.&lt;/p&gt;

&lt;p&gt;git rm [file]&lt;/p&gt;

&lt;h2&gt;
  
  
  Git remote
&lt;/h2&gt;

&lt;p&gt;This command will connect your local repo to the remote server:&lt;/p&gt;

&lt;p&gt;git remote add [variable name] [remote server link]&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;git remote add origin &lt;a href="https://github.com/youracccount/repo.git"&gt;https://github.com/youracccount/repo.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it for this time. Let me know what git commands you use often or think are important to know in the comments!!!&lt;/p&gt;

&lt;p&gt;Resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dzone.com/articles/top-20-git-commands-with-examples"&gt;Git Commands and Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>git</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Testing the Waters with RSpec (Part 2)</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Sat, 23 Nov 2019 18:05:12 +0000</pubDate>
      <link>https://dev.to/aliyalewis/testing-the-waters-with-rspec-part-2-30po</link>
      <guid>https://dev.to/aliyalewis/testing-the-waters-with-rspec-part-2-30po</guid>
      <description>&lt;p&gt;So the past couple of weeks I've been in the interview process for a company that I'm really interested in. For their technical assessment, I had to create a CLI app in Ruby using the Google Books API and of course, write some tests. In this blog, I'll go over one of the tests that I found to be the most fun, but I want to note that the application I wrote did not use Rails, it is purely Ruby.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing User Input
&lt;/h2&gt;

&lt;p&gt;Here I have a method that takes in user input, checks if it's valid and returns that input:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jMRW2SC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/rvfgac55gfjge0fvnjaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jMRW2SC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/rvfgac55gfjge0fvnjaz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And here I have a test for that method:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---yMRJa_E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/orkh1gic5c3qzdyc6jc7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---yMRJa_E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/orkh1gic5c3qzdyc6jc7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;'rl = ReadingList.new' is creating a copy of the application to run inside the test. &lt;/p&gt;

&lt;p&gt;'number = rl.save_book' runs #save_book and saves the result of that (@book_number) to the variable 'number'.&lt;/p&gt;

&lt;p&gt;'allow($stdin).to receive(:gets).and_return(3)&lt;br&gt;
expect(number).to eq(3)' takes in user input with the expectation that the user types the number 3. If the number 3 is not typed, the test will fail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run The Test
&lt;/h2&gt;

&lt;p&gt;To run the test in the terminal, you type &lt;code&gt;rspec&lt;/code&gt; with a space after followed by the file path. For me that looked like:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rspec spec/testing/ReadingListCLI_spec.rb&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Thoughts
&lt;/h2&gt;

&lt;p&gt;I found this test to be the most interesting because it requires that the tester actually type exactly what the test is expecting in order to pass. The first time I ran the test I thought it was broken because it presented me with what I would see running the application - "If you would like to save any of these books to your reading list please select the number of the book."&lt;/p&gt;

&lt;p&gt;That's it for this post but stay tuned for more! If you know of a better way or a different way to test user input let me know in the comments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/questions/37329190/using-rspec-to-test-user-input-with-gets"&gt;RSpec User Input Testing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>testing</category>
      <category>ruby</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Are you "mocking" me?</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Sun, 17 Nov 2019 01:06:23 +0000</pubDate>
      <link>https://dev.to/aliyalewis/are-you-mocking-me-1p2g</link>
      <guid>https://dev.to/aliyalewis/are-you-mocking-me-1p2g</guid>
      <description>&lt;p&gt;Hi, everyone! I was hoping this blog would be about how to make a mock call to an API but unfortunately, I didn't have enough time to get to that. So today's short blog will be about what mocking is in RSpec. Let's begin!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is mocking?
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;"Mocking is a technique in test-driven development (TDD) that involves using fake dependent objects or methods in order to write a test."&lt;/em&gt; (1)&lt;/p&gt;

&lt;p&gt;One handy thing to note about mocking, if you have the &lt;em&gt;rspec&lt;/em&gt; gem as a dependency in your Gemfile then you already have the &lt;em&gt;rspec-mocks&lt;/em&gt; gem available to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things I've Heard in Relation to Mocking
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Test Doubles&lt;/li&gt;
&lt;li&gt;Stubs&lt;/li&gt;
&lt;li&gt;Message Expectations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Over the next week I'll &lt;em&gt;hopefully&lt;/em&gt; be able to give you all examples of successfully mocked API test for a project I'm working on, but in the meantime, please share with me anything that you think might be helpful!&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;1) &lt;a href="https://semaphoreci.com/community/tutorials/mocking-with-rspec-doubles-and-expectations"&gt;Mocking with RSpec: Doubles and Expectations&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) &lt;a href="https://relishapp.com/rspec/rspec-mocks/docs"&gt;Project: RSpec Mocks 3-9&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>testing</category>
    </item>
    <item>
      <title>Testing the Waters with RSpec (Part 1)</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Sat, 09 Nov 2019 16:07:46 +0000</pubDate>
      <link>https://dev.to/aliyalewis/testing-the-waters-with-rspec-23ga</link>
      <guid>https://dev.to/aliyalewis/testing-the-waters-with-rspec-23ga</guid>
      <description>&lt;p&gt;If you've read my last blog post, &lt;a href="https://dev.to/aliyalewis/test-driven-development-3086"&gt;Test-Driven Development&lt;/a&gt;, then you know that lately, I've been digging deeper into how to write tests. This past week I was working on a technical assessment for a job I applied for and I had to make a CLI application using the Google Books API. That sounded simple enough since I had done a couple of CLI apps in my boot camp in Ruby. &lt;/p&gt;

&lt;p&gt;When I decided to do this technical assessment in Ruby, I was feeling pretty confident about it, until I actually sat down and tried to do it! I realized I hadn't touched anything in Ruby-land for months and suddenly became very anxious about how this project was going to go. After a shaky start, I found some great resources (that I'll share at the end of this post) that helped me become more at ease.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set-Up
&lt;/h2&gt;

&lt;p&gt;So the first thing you'll need to do is make sure that you install &lt;em&gt;'rspec'&lt;/em&gt; and &lt;em&gt;'rspec-expectations'&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5zB3eow0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/l9u8gzxeo7morecj7hk1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5zB3eow0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/l9u8gzxeo7morecj7hk1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, run &lt;em&gt;'rspec --init'&lt;/em&gt; to create the spec folders/files for your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Test
&lt;/h2&gt;

&lt;p&gt;There's some basic syntax that comes with RSpec which is really easy and a great way to start learning about testing. Take a look at the screenshot below and I'll go into more detail about it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6gZ3cNL4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/uf0dvczpo4pczo7y3syb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6gZ3cNL4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/uf0dvczpo4pczo7y3syb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, I created a file called &lt;em&gt;'mytest_spec.rb'&lt;/em&gt; where I've required &lt;em&gt;json&lt;/em&gt; and &lt;em&gt;rest-client&lt;/em&gt; at the top of the file. This is so that when I make a request to the specified endpoint, my app will be able read and parse the information it receives. Line 4 defines the which type of test is going to run, is it for a controller? Model?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;'context'&lt;/em&gt; is optional for test writing but I find it to be a nice way to group tests together. The next part, &lt;em&gt;'it'&lt;/em&gt; is what will show up in the terminal when you run the tests, so whatever you are expecting, write a sentence about it there. I didn't use &lt;em&gt;'context'&lt;/em&gt; for this project but if you're interested in seeing it used, I'll provide an example towards the end of this blog.&lt;/p&gt;

&lt;p&gt;I'm testing if the response I get from the Google Books API is good and doesn't send back an error so on line 11, I define what I'm expecting to happen once a call is made to the API.&lt;/p&gt;

&lt;p&gt;Since I'm testing my user model validations, I wrote some tests specifying the behavior of what I expect to see in certain cases. The first test checks if there is a name, the second test checks if there is an email and the third test checks that both are present. These are simple tests and I'm working towards learning to write more complex things.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run the Test
&lt;/h2&gt;

&lt;p&gt;To run a test, type &lt;em&gt;'rspec spec/testing/mytest_spec.rb'&lt;/em&gt; or whatever your file path is into your terminal. You should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wCyTcT8C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/rup071phki069uplg82w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wCyTcT8C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/rup071phki069uplg82w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yay! The first test passed! I'm still figuring out some things will RSpec (and for this app, how to use it without Rails) so I hope that in the next blog I'll be able to show you more complex tests.&lt;/p&gt;

&lt;p&gt;I have written some tests in RSpec for a Rails app, here's an example if you're interested in checking it out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Eua0D2LU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0stpsyzjoge1cjlu6nl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Eua0D2LU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0stpsyzjoge1cjlu6nl4.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all I have for now, but I'll be back next week!&lt;/p&gt;

&lt;p&gt;If you have any tips/tricks or know of any good resources for test writing, please let me know in the comments. :)&lt;/p&gt;

&lt;p&gt;Resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://gist.github.com/maxivak/720fc38769c94a59893f"&gt;RSpec without Rails&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=K6RPMhcRICE&amp;amp;t=63s"&gt;Test Driven RSpec&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=71eKcNxwxVY&amp;amp;t=178s"&gt;Testing with RSpec&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/swlh/rspec-tests-for-beginners-a798c8bf6bac"&gt;RSpec Test for Beginners&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>testing</category>
      <category>ruby</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Test-Driven Development</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Fri, 01 Nov 2019 18:15:56 +0000</pubDate>
      <link>https://dev.to/aliyalewis/test-driven-development-3086</link>
      <guid>https://dev.to/aliyalewis/test-driven-development-3086</guid>
      <description>&lt;p&gt;For that past couple of weeks, I've been trying to figure out the "what?", "why?" and "how?" of test-driven development (TDD). After watching countless Youtube videos and reading some pretty dry documentation, I've been able to find the answer to the first two questions, and have made minimal progress on the last. For clarity, this post will not teach you how to write tests (as I'm still learning myself) but will hopefully guide someone in a helpful direction to learning to write them. So let's get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is TDD?
&lt;/h2&gt;

&lt;p&gt;According to Wikipedia, TDD is:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved so that the tests pass.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Okay, what I got from that is that tests are written for small chunks of code and then those are tested to make sure they run as intended. That makes sense because I find myself "testing" small parts of my own code (often if-else statements) to make sure that each is responding as it should. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why Test Code?
&lt;/h2&gt;

&lt;p&gt;I'm a visual learner so the first place I look when I have a question is Youtube. My favorite place on Youtube to go for coding questions is Mattias Petter Johansson's (MPJ) account Fun Fun Function. If you haven't watched any of his videos, I recommend you do as they are funny, informational and relevant. MPJ has a 7 part video playlist about unit testing that I found to be particularly helpful in understanding the "why?" of TDD. Early in the video series MPJ equates writing tests to writing down a recipe. You can write tests after you already write the code but it would be like writing down a new recipe after you added all the ingredients - you might not remember the amounts of each ingredient and be unable to replicate it, for code you might have built out a large chunk and are unsure how to test the small segments.&lt;/p&gt;

&lt;p&gt;As you may or may not know, I attended a boot camp and most of the labs/assignments we were given had tests pre-written for us. I learned about TDD but never learned how to write tests, which as I soon found out while job hunting, is incredibly important to know. As of now, my understanding of tests is that you write them before you write code, the tests start off red because they're failing, you write code until the tests turn green (passing), and at the end of it all, you refactor. With that, I thought I was ready to jump into test writing...&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Write Tests?
&lt;/h2&gt;

&lt;p&gt;This is something that I'm still struggling to learn. I asked my peers and at first, all I got was "Testing is so easy. You just write it and see if it fails." or "All tests are the same. They have a "describe" section and an "it" section and then you write the test. Simple."&lt;/p&gt;

&lt;p&gt;Umm...yeah, not helpful at all. So I asked my LinkedIn network if any of them had any good resources for testing that they could share with me. So far what I've seen is that Jest, Enzyme, Cypress.io are some testing frameworks that I should look into. I've successfully written very small React component tests using Mocha and Chai but am excited to see what I can learn about the above-mentioned frameworks. &lt;/p&gt;

&lt;p&gt;I mainly program in JavaScript, React, Ruby, so if anybody reading this has any testing resources related to those, please share them in the comments!!!&lt;/p&gt;

&lt;p&gt;Resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/playlist?list=PL0zVEGEvSaeF_zoW9o66wa_UCNE3a7BEr"&gt;Unit Testing with Fun Fun Function&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=MLTRHc5dk6s&amp;amp;t=75s"&gt;Intro to JavaScript Unit Testing with Mocha JS and Chai&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/mawrkus/js-unit-testing-guide"&gt;JS Unit Testing Guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.robinwieruch.de/react-testing-jest"&gt;How to Test React with Jest&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.robinwieruch.de/react-testing-jest-enzyme"&gt;How to Test React with Jest &amp;amp; Enzyme&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tdd</category>
      <category>testing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Intro to Hooks</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Thu, 29 Aug 2019 17:29:37 +0000</pubDate>
      <link>https://dev.to/aliyalewis/intro-to-hooks-516b</link>
      <guid>https://dev.to/aliyalewis/intro-to-hooks-516b</guid>
      <description>&lt;p&gt;This past Monday I started working on my first solo project! The main feature I'm incorporating into my React app is an interactive map, something I've never done before. I knew the map would be challenging but I had enough confidence in myself that I could make the map and really prove to myself that just because something seems complicated, it doesn't make it impossible. As expected, I ran into some roadblocks but they weren't anything I couldn't figure out without some good ole fashion Googling, that is until Google stopped giving me the help I was looking for. &lt;/p&gt;

&lt;p&gt;After scouring the internet to no avail, I went to get some and help and asked one of my coaches to help debug my code. They took one look and said "You're doing hooks?!" to which I replied "Maybe?" and while my coach seemed super excited about it, I was very confused. What's a hook? How did I not know I was using hooks? So, let's dive into React Hooks!&lt;/p&gt;

&lt;h1&gt;
  
  
  What is a Hook?
&lt;/h1&gt;

&lt;p&gt;React documentation is amazing and naturally is the first place I looked to learn more about hooks. The first thing I saw was this:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hooks are a new addition in React 16.8. They let you use state and other React features without writing a class.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Okay, great! But what does it look like and how is it used? This is where things get fun! Hooks let us use state in functional components and they're pretty easy to read and use. Below is an example of a functional component using a hook, which I'll breakdown and explain in smaller segments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3L1_Stq4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sy88pegqoba6gvdcysav.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3L1_Stq4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/sy88pegqoba6gvdcysav.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Above you'll see there are two &lt;em&gt;const&lt;/em&gt; variables with an interesting looking array and something called &lt;strong&gt;useState&lt;/strong&gt;. Whenever there are attributes (like username and age) for a component that will or can change, you'll have to define them using &lt;em&gt;const&lt;/em&gt; and put it inside an array. Inside the arrays, you'll see &lt;em&gt;setUsername&lt;/em&gt; and &lt;em&gt;setAge&lt;/em&gt; which are functions that are similar to &lt;em&gt;setState&lt;/em&gt;. The last part is &lt;strong&gt;useState&lt;/strong&gt;, which is a React hook we imported on line one:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--D9B6BdFa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0quurs0sp917ikrqix6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--D9B6BdFa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/0quurs0sp917ikrqix6w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;useState&lt;/strong&gt; is what allows us to change the state of username and age within a functional component without causing anything to error out. I'm still a little fuzzy on how it works exactly but since this is just an into, I won't be diving deep into how everything works under the hood.&lt;/p&gt;

&lt;p&gt;Now, if we look at lines 7 through 17, we can see how these deconstructed "states" work when being rendered and changed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n4G3vHg2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cfc58p1arzwryx0ot2q5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n4G3vHg2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cfc58p1arzwryx0ot2q5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This reads easily but there are two things to point out:&lt;/p&gt;

&lt;h3&gt;
  
  
  1.
&lt;/h3&gt;

&lt;p&gt;Since we're inside a functional component and nothing is being passed to it from a parent component, we don't have to call the state by {props.username} or {props.age}, we simply say {username} or {age} as seen on lines 10, 12, and 14.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YqxFqNGg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/s3w3ochy1svox5zoxwt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YqxFqNGg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/s3w3ochy1svox5zoxwt9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.
&lt;/h3&gt;

&lt;p&gt;On lines 10 and 13 we see the second arguments of our destructured arrays &lt;em&gt;setUsername&lt;/em&gt; and  &lt;em&gt;setAge&lt;/em&gt;. &lt;em&gt;setUsername&lt;/em&gt; is called in onChange and acts as &lt;em&gt;this.setState({})&lt;/em&gt;, so whenever the user types in the input box, username will update from "newUser" (which is the default value defined on line 4) and the new state will be set.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZLA84kTh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/oigkud634oyxoz3ia3ff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZLA84kTh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/oigkud634oyxoz3ia3ff.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Something similar happens on line 13. &lt;em&gt;setAge&lt;/em&gt; is called inside an onClick and will take the first state of age (which is 0, because we defined a default age of 0 in &lt;em&gt;useState&lt;/em&gt; on line 5) and add 1 every time the button is clicked.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lAOsDMI3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/uojtquit299mbcqsi1kc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lAOsDMI3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/uojtquit299mbcqsi1kc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a lot to learn about hooks and I've barely scratched this surface on them here. If you're interested in learning more about hooks, check out these videos I used to help me understand them and were inspiration for this blog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Why React Hooks? &lt;a href="https://www.youtube.com/watch?v=eX_L39UvZes"&gt;https://www.youtube.com/watch?v=eX_L39UvZes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React.js Hooks Crash Course &lt;a href="https://www.youtube.com/watch?v=-MlNBTSg_Ww"&gt;https://www.youtube.com/watch?v=-MlNBTSg_Ww&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What's 'this'?</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Thu, 15 Aug 2019 15:30:06 +0000</pubDate>
      <link>https://dev.to/aliyalewis/what-s-this-3ban</link>
      <guid>https://dev.to/aliyalewis/what-s-this-3ban</guid>
      <description>&lt;p&gt;Over the past few weeks, I've been learning tons about JavaScript and React. Between the two of them, I find myself confused and also very clear about what the keyword &lt;strong&gt;this&lt;/strong&gt; is. In React, I feel pretty good about using it and understanding what it's doing but in JavaScript? Ehhh, not so much. To try and make sense of it, I decided to do some research on &lt;strong&gt;this&lt;/strong&gt; in JS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5a14t0cp8u0lqi62o44v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5a14t0cp8u0lqi62o44v.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first place I looked was the MDN documentation which has this to say:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"In most cases, the value of this is determined by how a function is called. It can't be set by assignment during execution, and it may be different each time a function is called."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That was a little vague so I kept looking. This is what W3Schools says:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4e4kb4wu7iu4y37qugwe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4e4kb4wu7iu4y37qugwe.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hmm...okay, that makes sense but I'm more of an auditory/visual learner so my next step was to watch videos on YouTube. I came across a couple of videos that I found very helpful and below are a list of things that I found to be the most informative.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implicit Binding
&lt;/h2&gt;

&lt;p&gt;Implicit binding tells the function to look to the left of the dot to the object it was called on and have &lt;strong&gt;this&lt;/strong&gt; reference that object. Here's an example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Faz65sjys2wsik0wvjbft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Faz65sjys2wsik0wvjbft.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above example, we look to the left of the speak function to identify the object that &lt;strong&gt;this&lt;/strong&gt; will reference. We see that the object  Jak has a name property that &lt;strong&gt;this&lt;/strong&gt; is attaching itself to, it's implicitly bound because the function that it's created in is inside of the object it's attaching to. Pretty simple right? Great, so now let's dig a little deeper.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explicit Binding
&lt;/h2&gt;

&lt;p&gt;There are three ways to explicitly bind &lt;strong&gt;this&lt;/strong&gt; in JS, with &lt;strong&gt;call()&lt;/strong&gt;, &lt;strong&gt;apply()&lt;/strong&gt;, or &lt;strong&gt;bind()&lt;/strong&gt;. &lt;strong&gt;call()&lt;/strong&gt; tells the function which object to attach to and can accept additional arguments, like elements in an array. &lt;strong&gt;apply()&lt;/strong&gt; is similar to &lt;strong&gt;call()&lt;/strong&gt; in that it takes in an argument of an object to attach to but instead of passing elements in an array, you can pass the whole array in as an argument. Last but not least is &lt;strong&gt;bind()&lt;/strong&gt;. &lt;strong&gt;bind()&lt;/strong&gt; is also similar to call except that it returns a new function instead of invoking the original function. Below are some examples of each.&lt;/p&gt;

&lt;h3&gt;
  
  
  call()
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxopa112fh729mb9y5vr2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxopa112fh729mb9y5vr2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  apply()
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsoesd3xp1779zc6k6u93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsoesd3xp1779zc6k6u93.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  bind()
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwiw0hutoyqo9efr5xlm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fwiw0hutoyqo9efr5xlm0.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that this helps someone out as much as it's helped me! For more in-depth explanations, I highly recommend watching the YouTube videos I've linked below. Do you have some good ways to explain what &lt;em&gt;this&lt;/em&gt; is? Let me know in the comments!&lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.w3schools.com/js/js_this.asp" rel="noopener noreferrer"&gt;https://www.w3schools.com/js/js_this.asp&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codeburst.io/all-about-this-and-new-keywords-in-javascript-38039f71780c" rel="noopener noreferrer"&gt;https://codeburst.io/all-about-this-and-new-keywords-in-javascript-38039f71780c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=zE9iro4r918" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=zE9iro4r918&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=gvicrj31JOM" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=gvicrj31JOM&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=NV9sHLX-jZU" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=NV9sHLX-jZU&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Raspberry Pi?</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Tue, 30 Jul 2019 15:50:54 +0000</pubDate>
      <link>https://dev.to/aliyalewis/raspberry-pi-124d</link>
      <guid>https://dev.to/aliyalewis/raspberry-pi-124d</guid>
      <description>&lt;p&gt;What even is a Raspberry Pi? Are there Blueberry and Apple Pis too? &lt;/p&gt;

&lt;p&gt;I've heard it talked about at school, referenced and played a key role in a TV show (Mr. Robot to be specific and yes, you should definitely watch it!), watched Youtube videos and live demos of it but I still wasn't sure what it was. So, what is a Raspberry Pi? According to the Raspberry Pi Foundation:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;" It's a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It's capable of doing everything you'd expect a desktop computer to do, from browsing the Internet to making spreadsheets or playing games."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wFobXQuV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/da080bne7z2qluz029fn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wFobXQuV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/da080bne7z2qluz029fn.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay, now that I have a better understanding of what it is, why would I want one? Well, turns out you can do an almost endless amount of things with a Raspberry Pi, but I'll just name a few:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Make a digital photo frame.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make a robotic coffee maker.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build an old school arcade game.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stream Netflix and Amazon Video (where you can watch Mr. Robot btw).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Practice/improve your coding skills.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That "build an old school arcade game" sounds like fun, but where do I start? I typed "How to build an arcade game with a Raspberry Pi?" in the Google search bar and almost too much information popped up! There are countless Youtube videos/tutorials, blog posts, websites, etc. that will point me in the right direction. I also saw that Raspberry Pi kits can cost anywhere from $27 - $90+ (with accessories that can be purchased at an additional cost). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rurxi2Zf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zvmcdtt3vpep24gdyki7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rurxi2Zf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zvmcdtt3vpep24gdyki7.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the coming weeks, I'll be working on a project with a partner from school, building something out with a Raspberry Pi! Have any of you built something with one? How did it go? Any tips/tricks/comments? Let me know below!&lt;/p&gt;

&lt;p&gt;Resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.raspberrypi.org/about/"&gt;https://www.raspberrypi.org/about/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.makeuseof.com/tag/different-uses-raspberry-pi/"&gt;https://www.makeuseof.com/tag/different-uses-raspberry-pi/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.makeuseof.com/tag/netflix-amazon-video-plex-raspberry-pi/"&gt;https://www.makeuseof.com/tag/netflix-amazon-video-plex-raspberry-pi/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
    </item>
    <item>
      <title>What Happened When I Entered My First Hackathon</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Mon, 15 Jul 2019 18:29:52 +0000</pubDate>
      <link>https://dev.to/aliyalewis/what-happened-when-i-entered-my-first-hackathon-54ge</link>
      <guid>https://dev.to/aliyalewis/what-happened-when-i-entered-my-first-hackathon-54ge</guid>
      <description>&lt;p&gt;This past weekend I entered "Hack-The-Freeze: Hackathon", my first hackathon ever! I had known about the hackathon for a while but didn't commit until Friday morning, 10 hours before the informational night for the event. After attending the informational and getting to know my fellow team members, I was really excited to see how our project would turn out but also pretty nervous about how much I would be able to contribute to the team having only weeks of experience in coding.&lt;/p&gt;

&lt;p&gt;Saturday morning rolls around and that excitement I felt the day before was taken over by anxiousness for what the day would be like. On my way to the hackathon, I kept telling myself: &lt;/p&gt;

&lt;p&gt;"You might be able to contribute even if it's just one thing."&lt;/p&gt;

&lt;p&gt;"Even if you can't contribute, you'll still learn something."&lt;/p&gt;

&lt;p&gt;"However this turns out, this will be a good experience." &lt;/p&gt;

&lt;p&gt;I walk in and mingle a little, meet up with my teammates, switch my brain into "code mode", and try and tune out that feeling that I'm going to be the weakest link on the team. Once the team agreed on the concept for our web app, we quickly ran into our first issue - two of us only know Ruby and the other three know JavaScript. One thing I loved about our group was how well we communicated and tried to play into each other's skillsets. We ended up splitting the work by front-end and back-end, with myself and another Flatiron student building the back-end in Ruby, one person designing our logo, and the other two would work on the front-end. &lt;/p&gt;

&lt;p&gt;Working on the back-end was a valuable experience for me as I just completed a weeklong project focused on Ruby on Rails. I took everything I learned in the past three weeks and used that knowledge to help my team build our application. It felt really good to be using the skills I've learned in a setting outside of school, with people I just met, for an event I've never been to before. I struggle with confidence in coding when building projects from scratch, but this hackathon showed me that I have enough basic skills to contribute in a significant way and that I should be going into future hackathons with more confidence. &lt;/p&gt;

&lt;p&gt;I'm grateful for my team (shoutout Team Friends!) for communicating clearly and effectively, supporting each other, willingness to work with/learn to do things previously unknown before that day, and for having such great attitudes. They really made my first hackathon experience one to remember and because of them, I'm looking forward to the next one!&lt;/p&gt;

&lt;p&gt;Tell me about your hackathon experiences below!&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
    <item>
      <title>3 Things I Wish I  Knew Before Learning to Code</title>
      <dc:creator>Aliya Lewis</dc:creator>
      <pubDate>Mon, 24 Jun 2019 15:47:56 +0000</pubDate>
      <link>https://dev.to/aliyalewis/3-things-i-wish-i-knew-before-learning-to-code-3kk4</link>
      <guid>https://dev.to/aliyalewis/3-things-i-wish-i-knew-before-learning-to-code-3kk4</guid>
      <description>&lt;p&gt;Let me start by saying that prior to applying and becoming a student at Flatiron School, I had absolutely no experience with coding. All I knew was that it involved computers and making them do...things. Once I was accepted into the program and started on the pre-work, it became very clear that the tablet with an attached keyboard I had been using wouldn't cut it once classes started. Flatiron rented out a Mac to me, which was amazing and I'm super grateful for that but led me directly into the first thing I wish I knew before starting this program:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) How to Use a Mac&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F78l93om3zbvu47kkc0si.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F78l93om3zbvu47kkc0si.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My first day on campus I was handed a MacBook Air to use for the course of the program. When it came time for laptop set-up I realized how little I knew about Macs. Everything from how much pressure to apply to the touchpad to where downloaded/installed programs and applications go was not as intuitive as Apple fanatics have espoused over the years. It's been 6 weeks and I've become more comfortable with this Mac and, while I'm not convinced of its OS superiority, as long as I can get my work done I'll deal with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) How to use Pry&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjvbex8vz7v86oa7vnvhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjvbex8vz7v86oa7vnvhp.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pry is a magical clarity bringing Ruby gem that I now use excessively and without shame. When going through the pre-work assignments, I'd hear from online coaches to "use Pry" but I had no idea what it was or how to use it. Placing &lt;code&gt;binding.pry&lt;/code&gt; allows you to run your code, pause on the line the pry was placed, and see exactly what's happening inside the code. My whole life changed when I used it successfully the first time and highly recommend using it if you're feeling unsure about what your code is doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Imposter Syndrome is Real&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F84vp5aihsvyevig57ukk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F84vp5aihsvyevig57ukk.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Everyone will tell you about Imposter Syndrome and to not let it get the best of you but, like most things in life, it's easier said than done. I've found that reminding myself that people around me are feeling the same way and flipping any negative thoughts into positive ones helps take the edge off that impending feeling of failure. One of the most common thoughts I have is "I'll never understand how to do this." and I'll (try to) reframe it as "What steps do I need to take in order to understand this? What are some resources available to me?". There are so many ways to deal with Imposter Syndrome and if you're experiencing it I highly recommend doing some research and finding something that works for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;I'd love to hear from anyone about any of the things I mentioned here or what you wish you knew before learning to code!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
    </item>
  </channel>
</rss>
