<?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: kcarrel</title>
    <description>The latest articles on DEV Community by kcarrel (@kcarrel).</description>
    <link>https://dev.to/kcarrel</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%2F140566%2Fe6b0849f-ca95-40ba-bcef-21c34ae4075c.jpeg</url>
      <title>DEV Community: kcarrel</title>
      <link>https://dev.to/kcarrel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kcarrel"/>
    <language>en</language>
    <item>
      <title>Updating my Portfolio Website</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Sun, 01 Sep 2019 19:10:05 +0000</pubDate>
      <link>https://dev.to/kcarrel/updating-my-portfolio-website-3gk1</link>
      <guid>https://dev.to/kcarrel/updating-my-portfolio-website-3gk1</guid>
      <description>&lt;p&gt;As I have been in the middle of my job hunt for the elusive first software engineer role I have been soliciting feedback from friends and mentors on my projects, resume and portfolio. With the gathered input on &lt;a href="https://kcarrel.github.io/"&gt;my portfolio site&lt;/a&gt; I set aside some time to refactor my portfolio website from this:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YhFYs_so--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/t46pktjyfwco304hd7sd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YhFYs_so--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/t46pktjyfwco304hd7sd.png" alt="Screenshot of first attempt at portfolio website"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;to this:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RM6ha86c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/az4ch4z0478rdmri6ju1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RM6ha86c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/az4ch4z0478rdmri6ju1.png" alt="Screenshot of updated portfolio website"&gt;&lt;/a&gt;&lt;br&gt;
This blog post will be going over the main problems identified with my original website and the resources I used to update it.&lt;/p&gt;

&lt;h1&gt;
  
  
  Problem 1: Color scheme
&lt;/h1&gt;

&lt;p&gt;The original color story I had utilized originally didn't provide enough contrast to be visually pleasing or in the case that a user was visually impaired it could prove more challenging to read. Utilizing the below resources I landed on a color scheme that I loved and accomplished the contrast I was looking for!&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://color.adobe.com/explore/?filter=most-popular&amp;amp;time=month"&gt;Adobe Color Picker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://chrome.google.com/webstore/detail/visbug/cdockenadnadldjbbgcallicgledbeoc?hl=en"&gt;VisBug: Visualize the changes in the browser before changing them in your code!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Problem 2: Original background image
&lt;/h1&gt;

&lt;p&gt;The original image that I used for my landing page is from the wonderful open source illustration site &lt;a href="https://undraw.co/illustrations"&gt;UnDrawn&lt;/a&gt;. While I love UnDrawn's illustration it didn't fit what I envisioned for providing contrast to highlight the various links I wanted displayed. Thus I looked around for a vector image that suited the color scheme I was looking for and was eye-catching. &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.vecteezy.com/"&gt;Vecteezy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.justinmind.com/blog/17-places-to-get-free-vector-images-for-your-designs/"&gt;17 Free Vector Image Sites&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Problem 3: Portfolio, About Me and Resume hidden in menu
&lt;/h1&gt;

&lt;p&gt;In my first iteration of my portfolio I only had links to these pages living in my hamburger menu rather than making it simple for the user by providing those links on the homepage. &lt;/p&gt;

&lt;h1&gt;
  
  
  Next update: Accessibility score
&lt;/h1&gt;

&lt;p&gt;This first refactor left me with a portfolio site that had around 87% total compliance rating for accessibility standards and definite room for improvement. Using the below resources I got scores and suggestions for ways to improve the accessibility of my website that I am working through now. You may be asking - What is accessibility and why is it important? In that case I suggest you check out this &lt;a href="https://dev.to/maxwell_dev/the-web-accessibility-introduction-i-wish-i-had-4ope"&gt;friendly introduction&lt;/a&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://webaccessibility.com"&gt;Check your website's accessibility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.w3.org/WAI/"&gt;W3: Make the Web Accessible&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this is helpful for anyone looking to update their portfolio website!&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>resources</category>
    </item>
    <item>
      <title>Job Search Resources and Tips</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Sun, 25 Aug 2019 16:46:53 +0000</pubDate>
      <link>https://dev.to/kcarrel/job-search-resources-and-tips-50od</link>
      <guid>https://dev.to/kcarrel/job-search-resources-and-tips-50od</guid>
      <description>&lt;p&gt;As a former bootcamp graduate I have been attempting to cast a wide net in my job search. In doing so I have compiled a list of resources and tips that I have been utilizing which I hope is helpful for others in a similar position.&lt;/p&gt;

&lt;h1&gt;
  
  
  Job Boards/Networks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://angel.co/" rel="noopener noreferrer"&gt;Angel.co&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hiretechladies.com/jobs" rel="noopener noreferrer"&gt;Hire Tech Ladies&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://elpha.com/top" rel="noopener noreferrer"&gt;Elpha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.glassdoor.com/index.htm" rel="noopener noreferrer"&gt;Glassdoor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/jobs/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unicornboard.com/" rel="noopener noreferrer"&gt;Unicornboard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Skills-Based Recruiting
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://triplebyte.com/" rel="noopener noreferrer"&gt;Triplebyte&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hatchways.io/#/" rel="noopener noreferrer"&gt;Hatchways&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Interview Prep
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/problemset/all/" rel="noopener noreferrer"&gt;LeetCode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hackerrank.com/" rel="noopener noreferrer"&gt;HackerRank&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;CodeWars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://yangshun.github.io/tech-interview-handbook/" rel="noopener noreferrer"&gt;Tech Interview Handbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/kcarrel/an-approach-to-technical-interviews-3l66"&gt;Check out my approach to technical interview post&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tips
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://kcarrel.github.io/" rel="noopener noreferrer"&gt;Make a portfolio!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Write clear ReadMe's for projects you want to highlight
&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%2Fe4p9zusw9vrtazu7bliv.png" alt="ReadMe example for DatePlanet"&gt;
&lt;/li&gt;
&lt;li&gt;Host your projects for recruiters/hiring managers to view easily! I love using Heroku personally. &lt;/li&gt;
&lt;li&gt;Write a technical blog&lt;/li&gt;
&lt;li&gt;Utilize the Tech Twitter network&lt;/li&gt;
&lt;li&gt;Join/attend local Tech Meetup groups and their slack channels&lt;/li&gt;
&lt;li&gt;Continue to code whether that is in the form of interview prep, personal projects or learning new skills&lt;/li&gt;
&lt;li&gt;Remember to take breaks. Finding a job is a full time job in itself but even then TAKE BREAKS!&lt;/li&gt;
&lt;li&gt;Ask developers you know if they would be willing to do a mock interview or informational interview&lt;/li&gt;
&lt;li&gt;Use your network! Often times you will find people happy to help in any way they can.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you have any tips or resources you would like to share?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
    </item>
    <item>
      <title>Two Approaches: Sorting an Array by Parity</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Fri, 09 Aug 2019 19:36:01 +0000</pubDate>
      <link>https://dev.to/kcarrel/two-approaches-sorting-an-array-by-parity-47ab</link>
      <guid>https://dev.to/kcarrel/two-approaches-sorting-an-array-by-parity-47ab</guid>
      <description>&lt;p&gt;In my interviewing adventures I have ran into a handful of questions that have provided great frameworks for solutions to reference in future problems. One such question is the &lt;a href="https://leetcode.com/problems/sort-array-by-parity/"&gt;Sort Array By Parity&lt;/a&gt; problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.&lt;br&gt;
You may return any answer array that satisfies this condition.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Brute Force:
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def sort_array_by_parity(a)
    i = 0
    j =  a.length - 1
    while i &amp;lt; j
        if a[i] % 2 &amp;gt; a[j] % 2
            temp = a[i]
            a[i] = a[j]
            a[j] = temp
        end 
        if a[i] % 2 == 0
            i += 1
        end
        if a[j] % 2 == 1
            j -= 1
        end
    end
  return a
end
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;In my first attempt at this problem I decided to try a two pointer approach and iterate towards the middle of the array. This solution passed the tests but had a runtime of 56ms placing it solidly slower than the majority of ruby submissions on LeetCode. So let's do better!&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Solution:
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def sort_array_by_parity(a)
  # create an index to store the next even number you run into
  index = 0
  i = 0
  #iterate through
  while  i &amp;lt; a.length 
     # if you encounter an even number move it to a[index]
    if a[i] % 2 == 0
      temp = a[index]
      a[index] = a[i]
      index += 1
      a[i] = temp
    end
    i += 1
  end
  return a
end
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This solution earned me a runtime of 40ms and beat 98.98% of all other ruby solution submissions. &lt;/p&gt;

&lt;h1&gt;
  
  
  My Takeaways
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Using an index variable can be useful for tracking where you want to place the next instance of something&lt;/li&gt;
&lt;li&gt;temporary variables can help you switch variables an array&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy problem solving!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>interviewing</category>
      <category>ruby</category>
      <category>leetcode</category>
    </item>
    <item>
      <title>Major Key Alert: Hide your API Keys </title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Sun, 04 Aug 2019 18:35:43 +0000</pubDate>
      <link>https://dev.to/kcarrel/major-key-alert-hide-your-api-keys-l4c</link>
      <guid>https://dev.to/kcarrel/major-key-alert-hide-your-api-keys-l4c</guid>
      <description>&lt;p&gt;I love integrating public APIs (Application Programming Interface) into my side projects in order to add in more functionality. However, this raises the issue of dealing with hiding API keys! This post will walk you through what an API key is used for, why you need to hide them and provide a guide of how to accomplish this in a Ruby project.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is an API key?
&lt;/h1&gt;

&lt;p&gt;An API key is a unique identifier used to control access to an API service provider. The API key links to the user who has been assigned the key and can be keeping track of amount of calls to the API being made by a user or which areas of the API the user is allowed to access. &lt;/p&gt;

&lt;h1&gt;
  
  
  Why do I need to hide my API keys?
&lt;/h1&gt;

&lt;p&gt;Hiding your API keys is necessary because it is an identifier for your access to a resource. If you make that identifier publicly available someone else can use to it to represent themselves as you and abuse your access to the resource which could lead to your access being shutdown. Protect your access and your project by hiding those keys in a file that has been .gitignore(d) so that when you push your project up to it's github repository those API keys are not public and vulnerable. &lt;/p&gt;

&lt;h1&gt;
  
  
  Hide those keys! (Ruby)
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Add gem 'dotenv-rails' to your Gemfile and bundle install&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While in the root of your project's directory use the command '$ touch .env' &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In that .env file create an variable (uppercase only) and assign it to your API key&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Inside the .env file

YELP_API_KEY=your_developer_api_key_from_yelp
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Add your .env file to the .gitignore file
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Inside the .gitignore file

.env
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;You can access your API key throughout your ruby project like the example below
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def yelp
   yelp = ENV["YELP_API_KEY"]
   yelp_url = "https://cors-anywhere.herokuapp.com/https://api.yelp.com/v3/businesses/search?term=#{category}&amp;amp;location=#{location}"
   res = HTTParty.get(yelp_url, :headers =&amp;gt; {"Authorization" =&amp;gt; "Bearer #{yelp}", "x-requested-with" =&amp;gt; "XMLHttpRequest"})
    render plain: res.body.squish
end

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Happy API Key Hiding!&lt;/p&gt;

&lt;h1&gt;
  
  
  Common Troubleshooting
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Can't find your newly created .env file after .gitignoring it? 
Check the settings on your text editor to see if it makes hidden files visible in the project tree.&lt;/li&gt;
&lt;li&gt;Have you already pushed your API keys up to github? Check this out: &lt;a href="https://help.github.com/en/articles/removing-sensitive-data-from-a-repository"&gt;https://help.github.com/en/articles/removing-sensitive-data-from-a-repository&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ruby</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Once Upon a Time in a Tutorial Loop</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Mon, 29 Jul 2019 00:24:59 +0000</pubDate>
      <link>https://dev.to/kcarrel/once-upon-a-time-in-a-tutorial-loop-3jg3</link>
      <guid>https://dev.to/kcarrel/once-upon-a-time-in-a-tutorial-loop-3jg3</guid>
      <description>&lt;p&gt;A common pitfall for self-taught and new developers is to spend their time learning solely through tutorial after tutorial without applying those new skills. I am a huge fan of online tutorials but I would highly suggest that new developers break up tutorials by setting aside time to Build A Thing. &lt;/p&gt;

&lt;h1&gt;
  
  
  Why?
&lt;/h1&gt;

&lt;p&gt;Tutorials are great but taking the time to apply your new skills by making something (big or small) is a great way to test the extent of your knowledge, run into errors you would not be exposed to in tutorials and get a project out there for feedback! Projects can also be an excellent confidence booster because as you progress through your coding journey you have reference points that showcase how far you've come. For me, projects are also a great way to combat &lt;a href="https://dev.to/kathryngrayson/share-your-experiences-with-impostor-syndrome"&gt;imposter syndrome&lt;/a&gt; and provides me with evidence to build myself up when I am feeling less than confident about my recent career change. &lt;/p&gt;

&lt;h1&gt;
  
  
  How?
&lt;/h1&gt;

&lt;p&gt;There are free testing environments (commonly referred to as coding sandboxes or playgrounds) which can be used to build out mini-projects that you can link out for others to view!&lt;br&gt;&lt;br&gt;
&lt;strong&gt;In Brower&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codepen.io/"&gt;CodePen: A Frontend environment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jsfiddle.net/"&gt;JSFiddle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codesandbox.io/explore"&gt;CodeSandbox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alternatively, you could could build a project using your preferred text editor, create a github repository (storage your a digital copy of your project) and host for viewing on a platform service.&lt;br&gt;
&lt;strong&gt;Host your project:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.heroku.com/platform"&gt;Heroku&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://firebase.google.com/docs/hosting"&gt;Firebase&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  What should I make?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Make the scale of your project reasonable for your skill level. Admittedly this sounds like obvious advice but I have seen fellow newbies get swept up with creativity only to get crushed by too large of a scope.&lt;/li&gt;
&lt;li&gt;It can be something that is just fun and makes you smile! I made a weird plot tweet generator for &lt;a href="https://alt-atla.herokuapp.com/"&gt;Avatar The Last Airbender&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/florinpop17/app-ideas"&gt;App Ideas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codementor.io/npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef"&gt;Side Project Ideas&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy project building!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>codenewbie</category>
      <category>resources</category>
    </item>
    <item>
      <title>Resources for a New Programmer</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Mon, 22 Jul 2019 01:59:52 +0000</pubDate>
      <link>https://dev.to/kcarrel/resources-for-a-new-programmer-2lpf</link>
      <guid>https://dev.to/kcarrel/resources-for-a-new-programmer-2lpf</guid>
      <description>&lt;p&gt;Are you looking to dip into programming but you aren't sure where to start? While that opening line reads like the beginning to a bad infomercial the only thing I am trying to sell you on is checking out the resources below! I began my coding journey squeezing tutorials into my free time then attending a full-time software engineering intensive program for 15 weeks. Throughout my journey the below resources helped me navigate unfamiliar tech territory and I hope it will do the same for you.&lt;/p&gt;

&lt;p&gt;If you are completely new to programming I would suggest reading &lt;a href="https://dev.to/aspittel/a-complete-beginner-s-guide-to-programming-2ni4"&gt;Ali Spittel's Beginner's Guide&lt;/a&gt; as a primer. &lt;/p&gt;

&lt;h1&gt;
  
  
  Tutorials
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.theodinproject.com/courses"&gt;TheOdinProject&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://freecodecamp.com/"&gt;FreeCodeCamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/catalog/subject/all#_=_"&gt;CodeAcademy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codepip.com/"&gt;Codepip: Coding Games&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: Be wary of &lt;a href="https://dev.to/tonymastrorio/escaping-tutorial-purgatory-as-a-new-developer-1kf3"&gt;tutorial purgatory&lt;/a&gt;. Taking your new skills to tackle a personal project (Build an api! Make a clone of a website!) is one of my favorite ways to learn. Failure/trial and error can be a great teacher!&lt;/p&gt;

&lt;h1&gt;
  
  
  Write Code
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://repl.it/repls"&gt;Program in your browser: Repl.it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.pluralsight.com/guides/text-editors-for-beginners-15-ways-to-rule-the-world"&gt;Get started with Text Editors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://atom.io/"&gt;Desktop Text Editor: Atom&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://code.visualstudio.com/"&gt;Desktop Text Editor: VS Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Github
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control"&gt;Git started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://try.github.io/"&gt;Git learning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.git-tower.com/blog/content/posts/54-git-cheat-sheet/git-cheat-sheet-large01.png"&gt;Git Cheatsheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Code Snippets
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://snippet-generator.app/"&gt;Snippet Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/snippets/"&gt;CSS Snippets&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Hosting Platforms for Personal Projects
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.heroku.com/platform"&gt;Heroku&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://firebase.google.com/docs/hosting"&gt;Firebase&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Women in Tech Networks
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://shescoding.org/about"&gt;She's Coding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://elpha.com/top"&gt;Elpha&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.womenwhocode.com/"&gt;Women Who Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hiretechladies.com/"&gt;Tech Ladies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Podcasts
&lt;/h1&gt;

&lt;p&gt;The below podcasts have helped me immensely with building confidence as a new programmer, learning about a variety of backgrounds/paths in tech and more! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://webelongpodcast.com/"&gt;We Belong Here: Lessons from Unconventional Paths to Tech&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codenewbie.org/basecs"&gt;Base.cs Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ladybug.dev/"&gt;Ladybug Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codenewbie.org/podcast"&gt;CodeNewbie&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://herstemstory.com/"&gt;Her Stem Story&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Miscellaneous
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/basecs"&gt;Base.Cs Blog - Computer Science basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/"&gt;StackOverflow - Ask code questions!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackshare.io/"&gt;StackShare - See reviews of different tech stacks &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codenewbie.org/"&gt;CodeNewbie&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.meetup.com/"&gt;Meetups - Connect with a programming community!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://news.ycombinator.com/news"&gt;HackerNews&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this list of resources is helpful for any CodeNewbies out there. Have you come across any other resources that you would suggest for fellow new programmers?&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>resources</category>
    </item>
    <item>
      <title>Twitter API, Yip Yip!</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Sat, 13 Jul 2019 18:07:57 +0000</pubDate>
      <link>https://dev.to/kcarrel/twitter-api-yip-yip-3g83</link>
      <guid>https://dev.to/kcarrel/twitter-api-yip-yip-3g83</guid>
      <description>&lt;p&gt;I had been wanting to dip into the Twitter API for reasons that are definitely not related to building my own Twitter Bot Army and found myself inspired by a recent conversation about how adding in superfluous "world building" detail can sometimes have questionable results. &lt;/p&gt;

&lt;p&gt;Of course this is the cursed tweet of which I speak.&lt;br&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%2F7nql1pttpgi51hedvzln.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%2F7nql1pttpgi51hedvzln.png" alt="This cursed image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What did this add? Why was this ever allowed to be tweeted? Should this be the source of inspiration for my next personal project? I don't know the answer to the first two but the latter will received a resounding "sure, why not"! &lt;/p&gt;

&lt;p&gt;I decided that this project would essentially aim to mimic the twitter of a creator that was constantly retconning or adding to their series' canon. For my Twitter project's source material I chose Avatar: The Last Airbender (ATLA) for two main reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ATLA is a perfect animated show 
(Editor's Note: Originally I had a whole passionate explanation here but really I think I can stop at those six words)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/paigeegorry/last-airbender-api" rel="noopener noreferrer"&gt;There was a nice ATLA API - Thanks Paige Gorry!&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Despite my red herring of an opening sentence to this blog - This personal project is not a twitter bot for my fictitious bot army but rather more akin to a random(ish) tweet generator. For the intention of this project (make wacky tweets that add/retcon plot points) I thought it would be fun to make a front end that the "audience" could interact with which is how I ended up with this. &lt;/p&gt;

&lt;h2&gt;
  
  
  Tweet Generator on Heroku
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://alt-atla.herokuapp.com/" rel="noopener noreferrer"&gt;ALT ALTA Tweet Generator&lt;/a&gt;&lt;br&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%2Ftr2p5si5ghn1qbdui79j.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%2Ftr2p5si5ghn1qbdui79j.png" alt="Tweet Generator hosted on Heroku"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Generate Tweets on Twitter
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ALTALTA7" rel="noopener noreferrer"&gt;ALT ATLA Twitter&lt;/a&gt;&lt;br&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%2Fwly6v0leump8agkggufl.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%2Fwly6v0leump8agkggufl.png" alt="Generated Tweet on Twitter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it Works
&lt;/h2&gt;

&lt;p&gt;The Tweet Generator front end is built with React and the Twitter handling back end is Ruby on Rails. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At a high level it works like this:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clicking the generate button will Math.rand(omly) call one of 19 possible tweet template functions &lt;/li&gt;
&lt;li&gt;Depending on which tweet template function is hit a fetch request will be made to the &lt;a href="https://github.com/paigeegorry/last-airbender-api" rel="noopener noreferrer"&gt;ATLA API&lt;/a&gt; for a random character name or two and/or state will be set with the corresponding template message&lt;/li&gt;
&lt;li&gt;A POST request with our state's message will be sent to our Ruby on Rails back end for handling&lt;/li&gt;
&lt;li&gt;Receiving the message on the back end will trigger a function that posts our message via the Twitter API&lt;/li&gt;
&lt;li&gt;The tweet is now live! &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can check out the code for both here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/kcarrel/JK-ATLA" rel="noopener noreferrer"&gt;Front end github repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kcarrel/JK-ATLA-BE" rel="noopener noreferrer"&gt;Back end github repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Some of my favorite resulting tweets
&lt;/h1&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%2Fx8kyii5wuxmuc3s5iawx.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%2Fx8kyii5wuxmuc3s5iawx.png" alt="Secret Aang Family"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://avatar.fandom.com/wiki/Pik_and_Pak" rel="noopener noreferrer"&gt;There is just a lot of things off about this family tree&lt;/a&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%2F0wtf7gtmet58qedk8top.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%2F0wtf7gtmet58qedk8top.png" alt="Hama's revenge against the cabbage merchant"&gt;&lt;/a&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%2F126s3wd84ubd4qridtc8.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%2F126s3wd84ubd4qridtc8.png" alt="Bosco the bear"&gt;&lt;/a&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%2Fld942lo50dksi81uqvho.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%2Fld942lo50dksi81uqvho.png" alt="The Boulder crumbles"&gt;&lt;/a&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%2Fixlynwquxqrg7xnrs3vl.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%2Fixlynwquxqrg7xnrs3vl.png" alt="Steely Bois"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.mattmorgante.com/technology/505" rel="noopener noreferrer"&gt;Twitter API setup in Ruby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://last-airbender-api.herokuapp.com/" rel="noopener noreferrer"&gt;ATLA API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>twitterapi</category>
      <category>ruby</category>
      <category>react</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Interview your Interviewer</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Sun, 07 Jul 2019 21:03:56 +0000</pubDate>
      <link>https://dev.to/kcarrel/interview-your-interviewer-2jc1</link>
      <guid>https://dev.to/kcarrel/interview-your-interviewer-2jc1</guid>
      <description>&lt;p&gt;As a continuation of my last post regarding &lt;a href="https://dev.to/kcarrel/an-approach-to-technical-interviews-3l66"&gt;an approach to technical interviews&lt;/a&gt; I thought I would also share a few of my favorite go-to company/culture questions and potential follow-ups that I like to ask my interviewers. Remember that an interview is a two way street - you are also interviewing the company to see if it is a good fit for you. Will this company support your goals and growth? &lt;/p&gt;

&lt;h2&gt;
  
  
  Pre-Interview Research
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Read up on the company - do they have an about us, culture page or company blog? Don't bring in any questions that are not easily answered by a quick search.&lt;/li&gt;
&lt;li&gt;Re-read the job description of what you are applying for - being able to anticipate questions specific of the role can help you feel confident in your responses.&lt;/li&gt;
&lt;li&gt;If you have the name of your interviewer - check them out on LinkedIn! This can give you talking points to relate to or context for their role within the organization and what might be an appropriate question to ask based on tenure. &lt;/li&gt;
&lt;li&gt;Check out Glassdoor/employee reviews - while I would always suggest that you take everything with a grain of salt this can also inform your questions for your interviewer. &lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Go-To Questions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What is the tech stack that the team is working with?

&lt;ul&gt;
&lt;li&gt;Has this stack been historically used or is there flexibility to try new languages/frameworks? &lt;/li&gt;
&lt;li&gt;What was the decision making process behind the current tech stack?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;How large is the team that this role would be a part of? 

&lt;ul&gt;
&lt;li&gt;How diverse is the team?&lt;/li&gt;
&lt;li&gt;What is the spread of seniority within the team?&lt;/li&gt;
&lt;li&gt;What would you pinpoint as the largest challenge that the team is currently facing?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Does the company/team support formal growth as a developer (example: certificates, trainings or attending conferences)?&lt;/li&gt;
&lt;li&gt;Is there a formalized process for developers to receive feedback (example: code reviews, role reviews or regular one on ones with manager)?

&lt;ul&gt;
&lt;li&gt;What are the 3 month goals for this role? 6 month?&lt;/li&gt;
&lt;li&gt;What are markers of success for this role? &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;What development approach does this team use? (example: Agile/Kanban/etc)

&lt;ul&gt;
&lt;li&gt;Is paired programming utilized? &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;What does a typical day look like for this position?&lt;/li&gt;
&lt;li&gt;What is the approach for onboarding an employee in this position?

&lt;ul&gt;
&lt;li&gt;Will their be an opportunity to pair up with a senior employee?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;What does culture mean for you at [Company X]?&lt;/li&gt;
&lt;li&gt;Can employees transfer between teams if they want to get involved with a different aspect of the business?&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://blog.wesleyac.com/posts/two-interview-questions#fnref3"&gt;What's your goal when interviewing a candidate?&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;How do you evaluate how well you're meeting your goal?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;What are the schedule expectations for this role? 

&lt;ul&gt;
&lt;li&gt;Does this role have any on-call responsibilities? &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;What is the most common reason for developers leaving this company?&lt;/li&gt;
&lt;li&gt;How does the company/team participate in the developer community?

&lt;ul&gt;
&lt;li&gt;Do they host local meetup groups?&lt;/li&gt;
&lt;li&gt;Attend/participate at conferences?&lt;/li&gt;
&lt;li&gt;Attend hackathons?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep in mind that these are just a few of my favorites to ask that are specific to me and my values. I would love to hear any of the typical questions you use during interviews! &lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://www.keyvalues.com/culture-queries"&gt;Key Values - Interview questions based on your values&lt;/a&gt;&lt;br&gt;
&lt;a href="https://blog.wesleyac.com/posts/two-interview-questions#fnref3"&gt;Two Questions for every Interview&lt;/a&gt;&lt;/p&gt;

</description>
      <category>interview</category>
      <category>beginners</category>
    </item>
    <item>
      <title>An Approach to Technical Interviews </title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Wed, 26 Jun 2019 17:13:48 +0000</pubDate>
      <link>https://dev.to/kcarrel/an-approach-to-technical-interviews-3l66</link>
      <guid>https://dev.to/kcarrel/an-approach-to-technical-interviews-3l66</guid>
      <description>&lt;p&gt;The technical interview process can feel like a daunting challenge for a new developer just beginning to dip her toes into the industry. Luckily for me, I recently had the good fortune of connecting with a wonderful developer, &lt;a href="https://www.linkedin.com/in/abbytiffany"&gt;Abby Tiffany&lt;/a&gt;, who talked me through a great framework to reference in future technical interviews.&lt;/p&gt;

&lt;p&gt;Side Note: I connected with Abby after hearing her awesome episode as a guest on &lt;a href="https://twitter.com/LoLoCoding"&gt;Lauren Lee's&lt;/a&gt; podcast &lt;a href="https://podcasts.apple.com/us/podcast/we-belong-here-lessons-from-unconventional-paths-to-tech/id1455784370"&gt;We Belong Here: Lessons from Unconventional Paths to Tech&lt;/a&gt;. I would highly suggest giving it a listen!&lt;/p&gt;

&lt;p&gt;For this blog post I will be walking you through an example technical interview problem and talking you through the steps Abby outlined.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our example problem:&lt;/strong&gt; Given an array, remove any duplicate values and return an array that contains unique values.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1: Reiterate the Question
&lt;/h1&gt;

&lt;p&gt;Before diving into the problem being presented before you take a few minutes to think about what is being asked and repeat it back to your interviewer. You may have heard the interviewer ask one thing but the intent of their question might be entirely different.&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 2: Clarify your Assumptions
&lt;/h1&gt;

&lt;p&gt;This is your time to ask clarifying questions! Don't assume that you have correctly interpreted the interviewer's question and expectations. &lt;/p&gt;

&lt;p&gt;Example questions can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you say to remove duplicate values do you mean such that each element only appears once? Or should any value that has appeared more than once be completely removed from the array?&lt;/li&gt;
&lt;li&gt;Will my input always be an array?&lt;/li&gt;
&lt;li&gt;Will I ever be given an empty input?&lt;/li&gt;
&lt;li&gt;What should my code return if the target is not found?&lt;/li&gt;
&lt;li&gt;Should I treat a -1 equal to a 1?&lt;/li&gt;
&lt;li&gt;How should my code treat input with a single item?&lt;/li&gt;
&lt;li&gt;Is the input sorted? If so - descending or ascending order?&lt;/li&gt;
&lt;li&gt;Should the array be updated in place?&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Step 3: Create Test Cases
&lt;/h1&gt;

&lt;p&gt;Now that you have an understanding of the problem itself and the input/output that you should be expecting take the time to write down a few tests cases that you can utilize to proof check against. Ideally, your test cases will cover a variety of different inputs (ex: expected input, empty array, negative numbers/etc).&lt;/p&gt;

&lt;p&gt;Example test cases could include:&lt;br&gt;
Test case 1: [0,1,1,4,9]&lt;br&gt;
Test case 2: []&lt;br&gt;
Test case 3: [-1,0,1,2,2,2,3,10]&lt;br&gt;
Test case 4: [1]&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4/5: Discuss/Execute a Brute Force and/or Optimized Solution
&lt;/h1&gt;

&lt;p&gt;In an ideal world you should be able to speak to a brute force solution and execute your optimized solution on the whiteboard. However, there are going to be problems you run into that are just hard. Maybe you can only think of the brute force solution - in that case execute the brute force solution and talk through how you would think of approaching it differently or optimizing it on a next iteration. Keep it mind that you should only be writing down either a brute force &lt;strong&gt;or&lt;/strong&gt; optimized solution. You will not have time or whiteboard space to do both. &lt;/p&gt;

&lt;p&gt;Now you may ask - but why would you discuss the brute force approach if maybe you know an optimized solution off the bat? Interviewers want to know what you know and they can't know it unless you speak to it. Being able to speak to both approaches shows how much you know and that you did not just memorize the answer to a problem. &lt;/p&gt;

&lt;h2&gt;
  
  
  Brute Force
&lt;/h2&gt;

&lt;p&gt;A way to approach our provided example problem could be to iterate through each item in the array, compare it against every other item in the array and delete any duplicates. &lt;/p&gt;

&lt;p&gt;This approach would definitely meet the requirements of the problem however it is not the most efficient way for us to approach this. Comparing every item against every other item would result in a time/space complexity of o(n^2) as the worst case scenario would be asking the computer to compare every permutation within the array. We can definitely do better!&lt;/p&gt;

&lt;h2&gt;
  
  
  Optimized Approach
&lt;/h2&gt;

&lt;p&gt;A better way of approaching our provided problem might look like the below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a  Hashtable (or Dictionary) with a default value of 0&lt;/li&gt;
&lt;li&gt;Iterate through the values in the array&lt;/li&gt;
&lt;li&gt;Check to see if the item you currently are looking at is already a key in the Hashtable&lt;/li&gt;
&lt;li&gt;If yes, set it equal to nil (or any other value to reference for future deletion)&lt;/li&gt;
&lt;li&gt;If no, add it as a key with a value of 1 to the Hashtable and move on!&lt;/li&gt;
&lt;li&gt;Return your adjusted array at the end of the program
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def remove_duplicates(arr)
    return if arr.length &amp;lt;= 1
    count = Hash.new(0)
    arr.each_with_index do |number, index|
        if count[number] != 0
           arr[index] = nil
        else
           count[number] += 1
        end 
    end 
    arr.delete(nil)
end 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This is a more efficient approach to this problem because it only requires you to look through each value to check for duplicates in one loop then look for deletion in a separate loop (.delete) giving you a time/space complexity of O(n).&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 6: Test your Test Cases
&lt;/h1&gt;

&lt;p&gt;Now that you have spoken to the brute force approach and executed an optimized version it's time to reference those test cases that you took the time to brainstorm earlier. Take each test case and walk it through your optimized solution as a way of potentially uncovering any bugs in your code or proving it!&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 7: Discuss Time/Space complexity
&lt;/h1&gt;

&lt;p&gt;This can be the form of a further discussion with your interviewer on the time/space complexity of your optimized solution and if there are any opportunities for improvement. Your interviewer might even have questions on how your could adjust your code to fit a different time/space requirement.&lt;/p&gt;

&lt;p&gt;This might sound daunting but Big-O doesn't have to be a Big-Oh No! I won't apologize for that terrible joke but I will provide you with some resources at the end of this post to supplement your understanding of Big O notation if you are a technical interview newbie like myself.&lt;/p&gt;

&lt;h1&gt;
  
  
  YMMV
&lt;/h1&gt;

&lt;p&gt;This is only one approach and it might not fit the way you noodle out problems but that is ok! Finding what works best for you is essential and having a process for how you tackle problems in the way that works for you is a great way to help you feel confident in the technical interview.&lt;/p&gt;

&lt;p&gt;Do you have any other tips or tricks that you like to utilize for the technical interview process? I would love to hear them!&lt;/p&gt;

&lt;h1&gt;
  
  
  Interview Preparation Resources
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850"&gt;Cracking the Coding Interview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/basecs/tagged/data-structures"&gt;Base.cs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://leetcode.com/"&gt;LeetCode&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;Tip from Abby: Don't spend more than 45 minutes at a time on practice problems. Give your brain a break.&lt;/li&gt;
&lt;li&gt;Note from Author: I can attest that this is good advice and that spending 5-6 hours on practice problems per day will turn your brain into mush.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.interviewcake.com/data-structures-and-algorithms-guide"&gt;Intuitive Guide to Data Structures and Algorithms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/basecs/looking-for-the-logic-behind-logarithms-9e79d7666dda"&gt;Looking for the Logic Behind Logarithms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://bigocheatsheet.com/"&gt;Big O cheatsheet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.geeksforgeeks.org/"&gt;GeeksforGeeks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Meetups! There are great coding interview prep meetups available and pairing with a real person is always a plus.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>interview</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Coding Bootcamp Retrospective</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Sun, 23 Jun 2019 19:23:54 +0000</pubDate>
      <link>https://dev.to/kcarrel/coding-bootcamp-retrospective-1mod</link>
      <guid>https://dev.to/kcarrel/coding-bootcamp-retrospective-1mod</guid>
      <description>&lt;p&gt;As a recent coding bootcamp graduate in the midst of her job hunt I have fielded quite a few questions regarding my experiences at Flatiron's Immersive Software Engineering program from prospective students. As such, here is a blog post detailing my experiences as well as suggestions I have for future students!&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;I had a largely positive coding bootcamp experience! For context, I was lucky to be in the first Seattle campus cohort (all of whom received a $5,000 scholarship) and was able to experience some of the "gold standard" instructors that are sent out to open new campuses. &lt;/p&gt;

&lt;p&gt;That being said - it was exhausting and emotionally draining. 15 weeks initially did not seem like a long period of time but it quickly felt like a never ending sprint that I was deeply out of shape for. The commonly used phrase "drinking from the firehose" was accurate and never felt more true than when life events happens simultaneously as you are also trying to cram new information into your brain. The below are some school/life balance resources that I heavily leaned on throughout the program.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mindfulness and Meditation Apps (&lt;a href="https://www.calm.com/"&gt;Calm&lt;/a&gt; and &lt;a href="https://www.headspace.com/"&gt;Headspace&lt;/a&gt; are personal recommendations)&lt;/li&gt;
&lt;li&gt;The Youtube Yoga community is wonderful to combat all the sitting and coding you are going to do. My cohort started a weekly yoga group, .to_s(tretch), and followed Yoga with Adriene's &lt;a href="https://www.youtube.com/playlist?list=PLui6Eyny-UzywNCo0zRu9dduvlNXzfDyk"&gt;Yoga for Back Pain series&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I found that maintaining my normal social life while being in this learning environment was unsustainable. I had countless pre-planned events that had to be skipped because of exhaustion or to prepare for the next phase of the program. I don't know too many people in my cohort that could say otherwise either. For me, finding balance (or as close of an approximation as I could find) did not afford much outside of sleep and occasional exercise. &lt;/p&gt;

&lt;p&gt;Overall, the program was a great fit for me and I am confident in my decision to have attended. The structure of being on campus learning, making great connections/friends in my cohort, walking away with projects for my portfolio and the career services post-graduation were worth the risk of quitting my job to pursue. I would do it again but what would I do differently or suggest for future students?&lt;/p&gt;

&lt;h1&gt;
  
  
  Future Student Suggestions
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Project Weeks
&lt;/h2&gt;

&lt;p&gt;Project weeks during the Flatiron School programs were consistently looked forward to by my cohort and myself. It is a time where you really solidify what you had learned in the previous two weeks and could build something tangible. With that in mind - as a graduate I would highly suggest that you approach the paired and solo project weeks with the mindset that this is something you would like to put in your portfolio (eventually). Being in the middle of the interview and networking process of post-grad it has been endlessly helpful to have projects hosted on Heroku or demo ready that I could speak to. &lt;/p&gt;

&lt;p&gt;Do you struggle with coming up with project ideas? Walk yourself through the below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is there a problem that exists that I could solve or approach in a new way with my current skill set?&lt;/li&gt;
&lt;li&gt;What is something I am passionate about? (Example: I love makeup! I have made a &lt;a href="https://fentybeautyapi.herokuapp.com/"&gt;makeup API&lt;/a&gt; and &lt;a href="https://pan-it.herokuapp.com/"&gt;makeup collection/inspiration app&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Is there a public API existing that I could incorporate into my project to add functionality? (My Mod3 partner project utilized the &lt;a href="https://www.brewerydb.com/"&gt;BreweryDB API&lt;/a&gt; and &lt;a href="https://developers.google.com/maps/documentation/"&gt;Google Maps API&lt;/a&gt; to generate brewery crawl routes))&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Portfolio
&lt;/h2&gt;

&lt;p&gt;Start thinking of creating a portfolio website early! My &lt;a href="https://kcarrel.github.io/"&gt;first portfolio website&lt;/a&gt; wasn't live until a week after I had graduated from Flatiron School but has helped me immensely when networking or getting initial interest from jobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Structures and Interview Prep
&lt;/h2&gt;

&lt;p&gt;If I could have done my Flatiron experience over the one thing I would have changed is beginning my solo studies for Data Structures and Interview Prep at least a month out from graduation. Technical interviews are tough and require a decent amount of preparation. Familiarizing yourself with common concepts (Big O notation, dynamic programming, etc) and problem approaches (sliding window, pseudocoding and testing) is helpful for the transition post-program.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prep resources
&lt;/h3&gt;

&lt;p&gt;-&lt;a href="https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=asc_df_0984782850/?tag=hyprod-20&amp;amp;linkCode=df0&amp;amp;hvadid=312125971120&amp;amp;hvpos=1o1&amp;amp;hvnetw=g&amp;amp;hvrand=3577921273183653525&amp;amp;hvpone=&amp;amp;hvptwo=&amp;amp;hvqmt=&amp;amp;hvdev=c&amp;amp;hvdvcmdl=&amp;amp;hvlocint=&amp;amp;hvlocphy=9033320&amp;amp;hvtargid=pla-388890317700&amp;amp;psc=1&amp;amp;tag=&amp;amp;ref=&amp;amp;adgrpid=61316180839&amp;amp;hvpone=&amp;amp;hvptwo=&amp;amp;hvadid=312125971120&amp;amp;hvpos=1o1&amp;amp;hvnetw=g&amp;amp;hvrand=3577921273183653525&amp;amp;hvqmt=&amp;amp;hvdev=c&amp;amp;hvdvcmdl=&amp;amp;hvlocint=&amp;amp;hvlocphy=9033320&amp;amp;hvtargid=pla-388890317700"&gt;Cracking the Coding Interview&lt;/a&gt;&lt;br&gt;
-&lt;a href="https://medium.com/basecs/tagged/data-structures"&gt;Base.cs&lt;/a&gt;&lt;br&gt;
-&lt;a href="https://leetcode.com/"&gt;Leetcode&lt;/a&gt; - Try out a new problem each day!&lt;br&gt;
-&lt;a href="https://www.hackerrank.com/dashboard"&gt;HackerRank&lt;/a&gt;&lt;br&gt;
-&lt;a href="https://www.interviewcake.com/data-structures-and-algorithms-guide"&gt;Intuitive Guide to Data Structures and Algorithms&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you have any questions? Feel free to reach out! I am happy to field any questions you might have as a prospective student. You can find me on &lt;a href="https://www.linkedin.com/in/katie-carrel/"&gt;LinkedIn&lt;/a&gt; or &lt;a href="https://twitter.com/ktcarrel18"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>bootcamp</category>
      <category>flatiron</category>
    </item>
    <item>
      <title>Where are all the public brand APIs?</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Thu, 13 Jun 2019 13:15:21 +0000</pubDate>
      <link>https://dev.to/kcarrel/where-are-all-the-public-brand-apis-158h</link>
      <guid>https://dev.to/kcarrel/where-are-all-the-public-brand-apis-158h</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://sproutsocial.com/insights/what-is-an-api/"&gt;"A business’ potential can be expanded when they offer an API. There are only so many resources a business can offer. Having an API available, with developers who are eager to build on them, can expand their offerings to more people."&lt;/a&gt; - Jenn Chen&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  APIs are awesome
&lt;/h1&gt;

&lt;p&gt;Starting this post off with possibly the most lukewarm take of my life - &lt;br&gt;
APIs (application programming interfaces) are awesome. Before I embarked on my journey to switch careers from Human Resources to Software Engineering I kept track of my project ideas for the time when my skillset could finally allow for me to tackle them. Every project (save for one) has involved working with at least one API. I love utilizing public APIs to add increased functionality or even to spark my creativity for my next project! That being said...&lt;/p&gt;

&lt;h1&gt;
  
  
  Where are all the brand APIs?
&lt;/h1&gt;

&lt;p&gt;As a longtime makeup enthusiast I was excited to combine my personal interests with my skillset. Unfortunately for some of my project ideas, I could not find makeup brands with their own public API which frankly stumped me. Expanding my search outside of the beauty realm I found a similar issue. Why are brands not making already publicly available data about their products easily accessible for developers to create with? Don't they know there are developers out there that want to make interesting projects and increased utility with their products?! This post is my attempt to call out to all brands - "If you build a public API, developers will come."&lt;/p&gt;

&lt;h1&gt;
  
  
  Why should a brand provide their own public API?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nordicapis.com/3-steps-to-increasing-brand-awareness-with-apis/"&gt;Easily expand the reach of a brand&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.zdnet.com/article/opening-up-apis-brings-in-benefits/"&gt;Opportunity for innovation without substantial investment on the brand's part&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces"&gt;Increased brand utility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Potential for easy and free market validation&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Building my own example public API
&lt;/h1&gt;

&lt;p&gt;It would seem to reason that allowing new ways for their products to be interacted with would be in a brand's best interest yet here we are. So I gathered publicly available information from my favorite makeup brand, Fenty Beauty by Rihanna, to create a public API that I can continue to work with, other developers can try out and serve as an example for how easy it would be for a brand to implement it themselves. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tGF73dfo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mtu2kejd0qyaatwm22gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tGF73dfo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mtu2kejd0qyaatwm22gj.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would estimate that completing this task using Ruby on Rails and Heroku took me less than a days worth of work for 295 items (imagine how quick it could be for a brand with their own data!) for the first 9 endpoints. &lt;br&gt;
&lt;a href="https://fentybeautyapi.herokuapp.com/"&gt;The static page outlining the endpoints for the Fenty Beauty API can be found here.&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Takeaways
&lt;/h1&gt;

&lt;p&gt;It would be easy and beneficial for brands to provide public APIs for developers to access. If brands created and maintained their own public APIs they have the potential to increase the endpoints for a customer to interact with their product and facilitate innovation with their own product.&lt;/p&gt;

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

&lt;p&gt;What is an API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/@TebbaVonMathenstien/what-is-an-api-and-why-should-i-use-one-863c3365726b"&gt;https://medium.com/@TebbaVonMathenstien/what-is-an-api-and-why-should-i-use-one-863c3365726b&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sproutsocial.com/insights/what-is-an-api/"&gt;https://sproutsocial.com/insights/what-is-an-api/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;API economy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://medium.com/ipg-media-lab/what-is-the-api-economy-and-how-brands-can-benefit-from-it-b46210d0434d"&gt;https://medium.com/ipg-media-lab/what-is-the-api-economy-and-how-brands-can-benefit-from-it-b46210d0434d&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mashable.com/2011/01/04/brand-open-api-developers/"&gt;https://mashable.com/2011/01/04/brand-open-api-developers/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces"&gt;https://www.redhat.com/en/topics/api/what-are-application-programming-interfaces&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Wonderful public APIs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.programmableweb.com/category/all/apis"&gt;https://www.programmableweb.com/category/all/apis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/n0shake/Public-APIs#product"&gt;https://github.com/n0shake/Public-APIs#product&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/public-apis/public-apis"&gt;https://github.com/public-apis/public-apis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://last-airbender-api.herokuapp.com/"&gt;https://last-airbender-api.herokuapp.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>api</category>
      <category>discuss</category>
      <category>beginners</category>
      <category>ruby</category>
    </item>
    <item>
      <title>A Beginners Introduction to React Native</title>
      <dc:creator>kcarrel</dc:creator>
      <pubDate>Tue, 16 Apr 2019 15:18:02 +0000</pubDate>
      <link>https://dev.to/kcarrel/a-beginners-introduction-to-react-native-4bbm</link>
      <guid>https://dev.to/kcarrel/a-beginners-introduction-to-react-native-4bbm</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VcR-Q4K0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2A2uu7i9stsJBY4Kvyd7n2xQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VcR-Q4K0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2A2uu7i9stsJBY4Kvyd7n2xQ.png" alt=""&gt;&lt;/a&gt;From point A to the point of Being on the app store&lt;/p&gt;

&lt;p&gt;A personal goal for me at the end of my time at the Flatiron School’s immersive software engineering program is to learn how to get a web application from hosted on a cloud platform like Heroku to available for download on the Android app store. With that goal in mind and the upcoming Module 5 Final project upcoming I decided to take some time to dive into React Native.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What is React Native?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Native:&lt;/strong&gt; Refers to a software program that is developed for use on a particular platform or device&lt;/p&gt;

&lt;p&gt;React Native is an open source mobile application JavaScript framework that allows developers to write mobile applications for iOS, Android and/or UWP. Similarly to vanilla React it is written with a combination of JSX and JavaScript. It augments vanilla React in creating a React Native “bridge” which invokes rendering APIs (Objective-C for iOS or Java for Android). React Native also accesses JavaScript interfaces for platform APIs which can allow the developer to incorporate features on the platform such as the camera, video, location and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6inyVk8X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AHeHX8-ikzn4-3IToP-mRYQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6inyVk8X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AHeHX8-ikzn4-3IToP-mRYQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Advantages of React Native&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;If you know React you can use React Native&lt;/li&gt;
&lt;li&gt;Flexible framework that can incorporate native code and integrate smoothly&lt;/li&gt;
&lt;li&gt;Faster development and delivery to market time&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://facebook.github.io/react-native/blog/2016/03/24/introducing-hot-reloading"&gt;Hot Reloading &lt;/a&gt;— allows developers to rewrite the application on the fly and reload to see the effect similarly to web development&lt;/li&gt;
&lt;li&gt;Allows developers to build one app that can be shared between platforms&lt;/li&gt;
&lt;li&gt;One app means bug tracing requires less effort between platforms — either the bug is in both or solved&lt;/li&gt;
&lt;li&gt;Can still utilize Chrome or Safari’s developer tools to debug&lt;/li&gt;
&lt;li&gt;Allows for lean development — less team members necessary when only one app is being produced rather than platform specific versions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e7Fs9G3b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AG9ll5WwhLnJ8XAefrpHEhQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e7Fs9G3b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AG9ll5WwhLnJ8XAefrpHEhQ.png" alt=""&gt;&lt;/a&gt;It’s still a work in progress&lt;/p&gt;

&lt;h3&gt;
  
  
  Disadvantages of React Native
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It’s new (released in March 2015) and relatively young&lt;/li&gt;
&lt;li&gt;Community still growing — only 500 questions on StackOverflow&lt;/li&gt;
&lt;li&gt;Google’s recently released alternative to React Native, &lt;strong&gt;Flutter&lt;/strong&gt; , is on the rise&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;For the purpose of this exploration I will be highlighting the installation method utilizing Expo tools rather than Xcode or Android Studio as that is best suited to my background of knowledge. There is an alternative tutorial available on the&lt;a href="https://facebook.github.io/react-native/docs/getting-started"&gt;React Native getting started guide.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y8RJJxXD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2Af6YhfILBzujSNsbPgUDsJA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y8RJJxXD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2Af6YhfILBzujSNsbPgUDsJA.png" alt=""&gt;&lt;/a&gt;quick start&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use npm(outlined above) to install the Expo CLI command line utility&lt;/li&gt;
&lt;li&gt;Install the &lt;a href="https://expo.io/"&gt;Expo&lt;/a&gt; client app on your iOS or Android phone and connect to the same wireless network as your computer. On Android, use the Expo app to scan the QR code from your terminal to open your project. On iOS, follow on-screen instructions to get a link.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With just a few steps you are all set to get started with building a React Native application!&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What is React Native:&lt;/strong&gt; &lt;a href="https://www.youtube.com/watch?v=JKCgwL-IfgM&amp;amp;t=119s"&gt;https://www.youtube.com/watch?v=JKCgwL-IfgM&amp;amp;t=119s&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FreeCodeCamp React Native Intro with Native Code&lt;/strong&gt; : &lt;a href="https://www.youtube.com/watch?v=frvXANSaSec"&gt;https://www.youtube.com/watch?v=frvXANSaSec&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expo documentation:&lt;/strong&gt; &lt;a href="https://docs.expo.io/versions/latest/"&gt;https://docs.expo.io/versions/latest/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helpful React Native Component Libraries:&lt;/strong&gt; &lt;a href="https://blog.bitsrc.io/11-react-native-component-libraries-you-should-know-in-2018-71d2a8e33312"&gt;https://blog.bitsrc.io/11-react-native-component-libraries-you-should-know-in-2018-71d2a8e33312&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flutter — A Google Alternative:&lt;/strong&gt; &lt;a href="https://codeburst.io/flutter-vs-react-native-detailed-comparison-similarities-and-superiority-3e92b910fa6e"&gt;https://codeburst.io/flutter-vs-react-native-detailed-comparison-similarities-and-superiority-3e92b910fa6e&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will Flutter Kill React Native?:&lt;/strong&gt; &lt;a href="https://www.youtube.com/watch?v=gWs3UQzrhtE"&gt;https://www.youtube.com/watch?v=gWs3UQzrhtE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building the F8 App:&lt;/strong&gt; &lt;a href="https://makeitopen.com/"&gt;https://makeitopen.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
