<?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>Forem: Candace Eckels</title>
    <description>The latest articles on Forem by Candace Eckels (@cece132).</description>
    <link>https://forem.com/cece132</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%2F956429%2F5363c5ad-7f90-4d08-99b9-52efa8ae7213.jpeg</url>
      <title>Forem: Candace Eckels</title>
      <link>https://forem.com/cece132</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/cece132"/>
    <language>en</language>
    <item>
      <title>Algorithms</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Thu, 05 Oct 2023 19:33:05 +0000</pubDate>
      <link>https://forem.com/cece132/algorithms-2f23</link>
      <guid>https://forem.com/cece132/algorithms-2f23</guid>
      <description>&lt;p&gt;As I am working through LeetCode to make sure I am improving my algorithm skills I figured, why not bring y'all along?! &lt;/p&gt;

&lt;p&gt;Each problem I present I worked on for 30 minutes and then researched the rest of the way to find better or more efficient or just plain old correct solutions. The purpose is to replicate the interview process and refine my problem solving skills.&lt;/p&gt;

&lt;p&gt;The Problem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Given an integer array nums sorted in non-decreasing order,
remove the duplicates in-place such that each unique element
appears only once. The relative order of the elements should
be kept the same. Then return the number of unique elements in
nums.

Consider the number of unique elements of nums to be k, to get
accepted, you need to do the following things:

Change the array nums such that the first k elements of nums
contain the unique elements in the order they were present in
nums initially. The remaining elements of nums are not
important as well as the size of nums.
Return k.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Constraints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 &amp;lt;= nums.length &amp;lt;= 3 * 104&lt;/li&gt;
&lt;li&gt;-100 &amp;lt;= nums[i] &amp;lt;= 100&lt;/li&gt;
&lt;li&gt;nums is sorted in non-decreasing order.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Now when I first looked at this problem I thought 'No problem! I have the perfect solution'&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def remove_duplicates(nums)
  return 0 if nums.empty?

  nums.uniq!.length
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This would have been perfect except for the fact that it wasn't. Because it didn't pass all the tests behind the method. As a new dev you might be familiar with the death spiral of trying to figure out why my 'flawless' logic wasn't working. Instead of just trying to find an alternative solution. Unfortunately, I ran out of time BUT I did learn a lot about how I should have approached this problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  PSUEDO CODE THE PROBLEM!
&lt;/h3&gt;

&lt;p&gt;The reason being that I was trying to problem solve and code at the same time. While I think I know how to code decently well. I should have broken down the problem in english because there were so many clues in the problem that I just missed because I 'thought I knew what it was asking'.&lt;/p&gt;

&lt;p&gt;In the end that was a huge time waster and just proved to be a inefficient way of solving the problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  What was the Solution?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;def remove_duplicates(nums)
  return 0 if nums.empty?

  k = 1
  i = 1

  while i &amp;lt; nums.length
    if nums[i] != nums[k - 1]
      nums[k] = nums[i]
      k += 1
    end
    i += 1
  end
  k
end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;** INPUT NOTES **&lt;/p&gt;

&lt;p&gt;Above was the solution I used and below is the reasons why this works.&lt;/p&gt;

&lt;p&gt;Outside of the while loop I have two variables instantiated. the k variable is the count of unique values and i is what value we are in the length of the array.&lt;/p&gt;

&lt;p&gt;I chose a while loop because comparing the i (array length count) to the length of the nums array (method argument). I will go into more detail about why I chose the while loop versus the .each enumerator a little be later &lt;/p&gt;

</description>
      <category>arrays</category>
      <category>ruby</category>
      <category>algorithms</category>
      <category>leetcode</category>
    </item>
    <item>
      <title>Futbol and a plain ruby project</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Fri, 14 Apr 2023 18:47:30 +0000</pubDate>
      <link>https://forem.com/cece132/ruby-project-3308</link>
      <guid>https://forem.com/cece132/ruby-project-3308</guid>
      <description>&lt;p&gt;Alright I have improved the code for my &lt;a href="https://github.com/cece-132/futbol"&gt;Futbol project&lt;/a&gt;.  This project focused a lot on organization of a very basic ruby app. I learned a ton about modules and inheritance and when it is appropriate to apply one over the other. &lt;/p&gt;

&lt;p&gt;I knew that the main difference is instantiation. A module does NOT need an object to be instantiated in order to use it. We are able to use them anywhere as long as the class has the module &lt;code&gt;include&lt;/code&gt; syntax. This was helpful in this project for organization.&lt;/p&gt;

&lt;p&gt;I didn't need to instantiate &lt;code&gt;team_statistics&lt;/code&gt; objects in my opinion. I just wanted to be able to manage the behavior of the stat_tracker. &lt;/p&gt;

&lt;p&gt;Inheritance modifies the attributes of an object. The best way to explain this is the you can inherit your parents eye color. On the other hand if you mom went to see Boys II Men at 16. Just because your mother is your parent doesn't guarantee that you will also go to see Boys II Men at 16. &lt;/p&gt;

&lt;p&gt;This is an important distinction when we are trying to decide how to organize our code.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ruby</category>
      <category>beginners</category>
      <category>devjournal</category>
    </item>
    <item>
      <title>How did you know?</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Tue, 04 Apr 2023 16:52:35 +0000</pubDate>
      <link>https://forem.com/cece132/how-did-you-know-e36</link>
      <guid>https://forem.com/cece132/how-did-you-know-e36</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;'At what point did you consider yourself a developer?'&lt;/strong&gt;&lt;br&gt;
 &lt;em&gt;Ian Douglas&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I was reading Douglas' newsletter about preparing for behavioral questions in interviews. This has not been the first time I have been asked that question but it is the first time I felt I have an answer.&lt;/p&gt;

&lt;p&gt;Reflecting back on the last year. I think I struggled with the idea that software development has always been something that I was capable of. I found myself questioning my self often, and at times being way too hard on myself. But finding this career, knowing that it was out there and that it would end up checking all the boxes for me.&lt;/p&gt;

&lt;p&gt;I started my career in communications because it was something that I was good at and was comfortable in it. I learned a lot but not too much. In a lot of ways it reinforced my understanding about how things in the world worked. But I think that was what ended up fueling my career change in the end. The yearning for something more...tangible and challenging. Don't get me wrong communications is a tough career but it wasn't challenging for me in the ways that I wanted to challenged. In technology I have found this endless well for knowledge. The depth of which, has been so exciting to explore. For me technology has not been a chore to learn, it has been stimulating.&lt;/p&gt;

&lt;p&gt;March 3, 2022, was when I decided to make the change to embrace the challenge that comes with switching careers. Honestly, so far it has been one of the most fulfilling choices I have made in my life thus far.&lt;/p&gt;

</description>
      <category>interviewquestions</category>
      <category>interviewprep</category>
      <category>webdev</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Inheritance and Modules</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Thu, 23 Mar 2023 20:00:21 +0000</pubDate>
      <link>https://forem.com/cece132/inheritance-and-modules-28bf</link>
      <guid>https://forem.com/cece132/inheritance-and-modules-28bf</guid>
      <description>&lt;p&gt;I've learned that the major difference between these to tools is the use case. Inheritance I will use if I need to instantiate a class and then the next class I use builds off that previous class(I want it to mimic a 'parent-child' relationship). Whereas modules I would use when I didn't need to instantiate and instance. &lt;/p&gt;

&lt;p&gt;I have found that this is best used for calculations that are used across multiple classes. An example might be a total calculation. That can be used in multiple classes. Instead of writing out this total calculation for every class I need it in I can create a module that holds my method and then have my classes call on that one total method to find my totals. &lt;/p&gt;

&lt;p&gt;If you wanna checkout my project &lt;a href="https://github.com/cece-132/futbol"&gt;click here&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>rails</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Documentation...What do people NEED to know!?</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Sun, 05 Mar 2023 01:00:42 +0000</pubDate>
      <link>https://forem.com/cece132/documentationwhat-do-people-need-to-know-2153</link>
      <guid>https://forem.com/cece132/documentationwhat-do-people-need-to-know-2153</guid>
      <description>&lt;p&gt;The web-dev journey with ruby on rails this past year has been quite the rollercoaster ride. I have learned A TON of things about how to organize data and build effective databases. BUT one thing that I just totally skipped over while I was wondering around ruby-land was WHAT THE HECK do people need to know when I am writing documentation?! What qualifies for good documentation and what is the easiest, most concise way to write documentation?&lt;/p&gt;

&lt;p&gt;As I have moved forward with my learning I have learned a ton. Reviewing my passed projects is what inspired me to really hunker down and focus on answering the question about what good documentation looks like. Because the bottomline is that proper documentation is just as important as the code and tests themselves.&lt;/p&gt;

&lt;p&gt;Now I have read loads of documentation over the last year. Trying to learn as much as I can about ruby and rails and implement what I have learned in effective ways. And some of the documentation I read was great while others left me with more questions than I had answers.&lt;/p&gt;

&lt;p&gt;While cleaning out my GitHub of the old projects and refactoring my favorite ones. This process has been really great because not only have I revisited just how much I have grown over the passed year but it is challenging to try and debug old code and refactor it into more efficient bits of code. The bullet points below is part of what I am learning along the way and some of the questions I am trying to remember to ask myself as I am refactoring these repo's:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;What does a none-ruby dev need to know in order to run this project?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There are tons of new developers heading into the world of code everyday. Some of the things that I wished I saw more of were repos that assumed I knew nothing about the program that they were writing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What does this project do?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether it is a card game that is played in the terminal, a full-stack app, or just an api. The other person on the other end of the readme should be able to look over the readme and understand what it is that they can do with the program they are looking at. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;What are the goals of this project?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This may not be super important but I have always liked reading what the initial goals of the project were as well as what the developer is looking to work on in the future. It is super cool to keep track of the growth of your apps.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In my Table of Contents, what are important headers that people might want quick links too? (below are the ones that I lean toward)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Project Description&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run and install:&lt;/strong&gt; What gems are in this app? how do I install them, or what links to documentation does the user need to be able to install them properly.&lt;/li&gt;
&lt;li&gt;How does the user use the program on the localhost?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints:&lt;/strong&gt; Explicitly what are the routes, and what should I expect to return&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture and Design:&lt;/strong&gt; What do the tables look like and how are they related (connected)?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback:&lt;/strong&gt; Not necessarily a must have but I have loved the idea of people being about to create pull requests to make changes/share ideas to a project, so I am working to add this to all of my projects.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credits:&lt;/strong&gt; Don't forget to give you and any collaborators credit for the work that they did on this project! I like to connect my LinkedIn and GitHub Profiles so that people can reach me if they have questions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is what I have found so far to be helpful in guiding to creating the most readable and readme. If you have any suggestions about things you have found helpful when creating documentation, let me know in the comments!&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>crypto</category>
    </item>
    <item>
      <title>Re-Learn, Review, Recycle</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Mon, 20 Feb 2023 06:10:44 +0000</pubDate>
      <link>https://forem.com/cece132/re-learn-review-recycle-22g9</link>
      <guid>https://forem.com/cece132/re-learn-review-recycle-22g9</guid>
      <description>&lt;p&gt;TLDR: &lt;br&gt;
Slowing down and taking my time to not only review, but to apply myself for the job hunt is helping me to not over think it and to boost my confidence.&lt;/p&gt;

&lt;p&gt;After spending the last year studying ruby I am finally starting to feel ready for the job hunt. I am working on cleaning up my GitHub to try out the new things I have learned that I didn't know in the beginning.&lt;/p&gt;

&lt;p&gt;The crazy thing about bootcamps is they move SO FAST. I cannot believe all the things that I have learned the past year. As I am going through all my old projects to refactor and work on improving my documentation. I am realizing not only how far I have come but how fast I have moved. Right now I am really appreciating my time to go through my older stuff as a refresher on the little things.&lt;/p&gt;

&lt;p&gt;As for my job hunt. I think I was moving too fast. I was applying and doing little to no research on the companies that I wanted to work with (which I do NOT advise). I felt so rushed and like I had the weight of the world on my shoulders. My new strategy is to research the companies and really find companies that agree with my values and where I want to go in my new career.&lt;/p&gt;

&lt;p&gt;It is a journey that I have really had to take a step back and not rush through. I am learning to slow down and really take my time, this whole portion of my career has been so helpful and enlightening to me.&lt;/p&gt;

</description>
      <category>career</category>
      <category>jobhunt</category>
      <category>webdev</category>
      <category>ruby</category>
    </item>
    <item>
      <title>Basic ActiveRecord Methods</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Tue, 14 Feb 2023 22:44:09 +0000</pubDate>
      <link>https://forem.com/cece132/back-to-basics-5c1h</link>
      <guid>https://forem.com/cece132/back-to-basics-5c1h</guid>
      <description>&lt;p&gt;Today I am working on some basic db calls to tough on some of those simple concepts that feels like I learned ages ago. Here is the quiz and my answers below:&lt;/p&gt;

&lt;h2&gt;
  
  
  ActiveRecord Lookups Quiz
&lt;/h2&gt;

&lt;p&gt;Without looking for help online write the following queries:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Find an author with an &lt;code&gt;id&lt;/code&gt; of &lt;code&gt;9&lt;/code&gt;.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Author.find(9)&lt;br&gt;
  &lt;strong&gt;Why:&lt;/strong&gt; Using the &lt;code&gt;Find&lt;/code&gt; method only takes &lt;code&gt;id&lt;/code&gt; numbers as inputs and returns a single value based on that input.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Find all authors with a &lt;code&gt;last_name&lt;/code&gt; of &lt;code&gt;Brown&lt;/code&gt;.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Author.find_by(last_name: 'Brown')&lt;br&gt;
  &lt;strong&gt;Why:&lt;/strong&gt; &lt;code&gt;find_by&lt;/code&gt; searches by attributes of the model that it is called on and returns the first instances where the condition is met.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Find the first author with a &lt;code&gt;last_name&lt;/code&gt; of &lt;code&gt;Brown&lt;/code&gt;.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Author.find_by(last_name: 'Brown)&lt;br&gt;
  &lt;strong&gt;Why:&lt;/strong&gt; refer back to question 2&lt;/p&gt;
&lt;h3&gt;
  
  
  4. Find all articles created in the last 5 days.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Article.where("created_at &amp;gt;= ?", 5.days.ago)&lt;br&gt;
  &lt;strong&gt;Why:&lt;/strong&gt; Here I decided to use sql paired with AR (ActiveRecord) to simplify my code. Using &lt;code&gt;.where&lt;/code&gt; was the best choice in my opinion because I am searching the whole database to see is my condition (article being created in the last 5 days) has been met. If there haven't been any articles created then this method should return an empty array.&lt;/p&gt;
&lt;h2&gt;
  
  
  Using only one call to the database:
&lt;/h2&gt;
&lt;h3&gt;
  
  
  5. Find all users with a &lt;code&gt;last_name&lt;/code&gt; of 'Brown' and return the first user with a &lt;code&gt;first_name&lt;/code&gt; of 'Nancy'.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; User.where(last_name: 'Brown').find_by(first_name: 'Nancy')&lt;br&gt;
  &lt;strong&gt;Why:&lt;/strong&gt; &lt;code&gt;.where&lt;/code&gt; searches the db for users where the &lt;code&gt;last_name&lt;/code&gt; == 'Brown'. This returns an array, on that array I then am using find_by to find the first instance where the first_name is 'Nancy'.&lt;/p&gt;
&lt;h3&gt;
  
  
  6. Find all articles created in the last 5 days. Display the article title and author's last_name for each article.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Article.where(created_at: 5.days.ago..Time.now)
              .includes(:author)
              .select("title, users.last_name as author_last_name")
              .map { |article| [article.title, article.author_last_name] }&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Bonus Round
&lt;/h3&gt;
&lt;h3&gt;
  
  
  7. What's the danger of using &lt;code&gt;update_attribute&lt;/code&gt; vs &lt;code&gt;update_attributes&lt;/code&gt;?
&lt;/h3&gt;

&lt;p&gt;Answer and Why: 'update_attribute' changes a singular attribute WITHOUT checking against validations and callbacks. While 'update_attributes' changes multiple the attributes and checks the validations and callbacks. So the danger would be that using update_attribute' you may accidentally save an attribute that is an invalid value.&lt;/p&gt;
&lt;h3&gt;
  
  
  8. Imagine we are creating and loading users based on data received from an external service (&lt;code&gt;attributes&lt;/code&gt; in this example).
&lt;/h3&gt;

&lt;p&gt;Refactor the method below to use &lt;code&gt;.first_or_initialize&lt;/code&gt; and &lt;code&gt;.tap&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_or_create_from_external_service&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt;
    &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_by_login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:login&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;nil?&lt;/span&gt;
      &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;login: &lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:login&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="ss"&gt;email: &lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;

    &lt;span class="n"&gt;user&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;refactor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;  &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_or_create_from_external_service&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt;
    &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;login: &lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:login&lt;/span&gt;&lt;span class="p"&gt;]).&lt;/span&gt;&lt;span class="nf"&gt;first_or_initialize&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tap&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
      &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;email: &lt;/span&gt;&lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:email&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new_record?&lt;/span&gt;
      &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>rails</category>
      <category>ruby</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Exploring GraphQL-Rails</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Fri, 10 Feb 2023 05:49:02 +0000</pubDate>
      <link>https://forem.com/cece132/exploring-graphql-rails-35e9</link>
      <guid>https://forem.com/cece132/exploring-graphql-rails-35e9</guid>
      <description>&lt;p&gt;Love the idea of types and mutations in GraphQL. I also really like how robust rails is using the REST principles. I am hoping to learn and explore types and mutations and how they work with some of the security features I am hoping to implement in this app!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Test Driven Development</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Tue, 07 Feb 2023 17:26:32 +0000</pubDate>
      <link>https://forem.com/cece132/test-driven-development-1gb7</link>
      <guid>https://forem.com/cece132/test-driven-development-1gb7</guid>
      <description>&lt;p&gt;Test Driven Development (TDD), aka red, green, refactor. I have spent the last year creating projects using this method and these are my big takeaways.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TDD takes some getting used to.&lt;/strong&gt; When I was first learning to code I was struggling to not only understand how the code worked but why it worked the way it did. If you're a rails dev you are probably very familiar with &lt;code&gt;binding.pry&lt;/code&gt;. I was the Pry King always picking a part my code line by line and testing to see how it worked, what variables I had access to, just trying to see what I could see in the code. &lt;/p&gt;

&lt;p&gt;But once I learned to use both of those tools together, I felt so much more direct in my code. I was able to organize my code so much better and adhere to the single responsibility principle (SRP).&lt;/p&gt;

&lt;p&gt;It is so satisfying to write a test, run it, write the code, run it and watching the tests turn from red to green. It honestly makes me so happy. &lt;/p&gt;

&lt;p&gt;TLDR - TDD makes coding more effective and intentional. Helps with the clarity and readability of the code. Exhibits developer empathy and is great for documentation. Definitely worth learning how to do.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>rails</category>
      <category>testing</category>
    </item>
    <item>
      <title>Let's Get Moving!</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Tue, 07 Feb 2023 16:30:05 +0000</pubDate>
      <link>https://forem.com/cece132/lets-get-moving-44i5</link>
      <guid>https://forem.com/cece132/lets-get-moving-44i5</guid>
      <description>&lt;p&gt;I have made it! Completed my bootcamp and feel really well versed in Rails. Now it is on to the next stage of my master plan...the job hunt!&lt;/p&gt;

&lt;p&gt;Now I'm not going to lie. I am absolutely terrified about the rejections that are inevitable. But I am really excited about all the connections that I am going to make. &lt;/p&gt;

&lt;h4&gt;
  
  
  What the heck is the game plan?!
&lt;/h4&gt;

&lt;p&gt;So far I am going on HackerRank and on Turing to keep my skills up and building projects. I actually landed my first contract job yesterday and am so excited to build my first paid backend!&lt;/p&gt;

&lt;p&gt;Next I am going to work on my networking and really trying to find the jobs that suit me. I want to find a company the is looking for a developer like me to come a long.&lt;/p&gt;

&lt;p&gt;I am really excited for this next phase in my career!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>rails</category>
      <category>beginners</category>
      <category>jobhunt</category>
    </item>
    <item>
      <title>Legacy Code</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Tue, 20 Dec 2022 15:56:53 +0000</pubDate>
      <link>https://forem.com/cece132/legacy-code-2fj5</link>
      <guid>https://forem.com/cece132/legacy-code-2fj5</guid>
      <description>&lt;p&gt;Recently I was given some legacy code in a monolithic app to take a peek at to work on how to problem solve with old code. &lt;/p&gt;

&lt;p&gt;What I learned most from this exercise is that it is really easy to get lost in the code. I found myself in parts of the code that didn't seem to have anything to do with the questions at hand because I was trying to figure out what direction is this issue trying to point me in? Here are some tips that helped me to focus in on the issue at hand.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Try and use the search function in your code editor to search possible key terms that might be used in specific files&lt;/li&gt;
&lt;li&gt;Break down the issue into plain terms. This helped me to be able to focus on the basics of what the issue is asking of me.&lt;/li&gt;
&lt;li&gt;The Schema! What is the structure of the app? What are common terms that are used throughout? (Granted the app I was looking at was pretty small so I am not sure how scalable this is for larger apps with a thousand plus lines of schema!)&lt;/li&gt;
&lt;li&gt;The gemfile! What technology is this app using? Am I familiar with this code? If not, can I use tip 1 to figure out how this code is being used?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I hope these tips were helpful and if you have any tips for me please leave them in the comments below!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>My Exploration of Service Oriented Architecture and Monoliths</title>
      <dc:creator>Candace Eckels</dc:creator>
      <pubDate>Wed, 26 Oct 2022 22:12:06 +0000</pubDate>
      <link>https://forem.com/cece132/my-exploration-of-service-oriented-architecture-3fg4</link>
      <guid>https://forem.com/cece132/my-exploration-of-service-oriented-architecture-3fg4</guid>
      <description>&lt;h2&gt;
  
  
  What is it?
&lt;/h2&gt;

&lt;p&gt;After a quick google search it seems that it is made up of company practices that help to streamline getting from point a to point b. &lt;/p&gt;

&lt;p&gt;If we are creating a ticket system company, what does that system need to run? Payment options, queue, assignments, and other micro-services that we might offer. &lt;em&gt;Service oriented architecture&lt;/em&gt; (SOA), allows us to perform those services and other through our micro-services. But no matter the services that we offer through the program, they all work for the company.&lt;/p&gt;

&lt;p&gt;The SOA would be the structure we build around the app to make those services all work under the umbrella of the app.&lt;/p&gt;

&lt;p&gt;This can be beneficial because debugging allows us to isolate a service with the issue, rather than the entire app being down because of a possibly small error. &lt;/p&gt;

&lt;p&gt;We can reuse parts of the code logic in different parts of the application to help other services to be able run faster or more efficiently and to DRY (don't repeat yourself) up the code.&lt;/p&gt;

&lt;p&gt;On the other hand a monolithic app is developed as a single unit. It could have limited flexibility in how to update/expand it, but overall tends to have better performance because of the shared code. Monolithic could be the fastest way to get you app going.&lt;/p&gt;

&lt;p&gt;Monoliths tend to have smaller teams, and have interdependent parts of the code. With everything so intertwined and interdependent on each other adding updates to a Monolithic program can become sticky very quickly depending on the updates/changes being implemented.&lt;/p&gt;

</description>
      <category>rails</category>
      <category>architecture</category>
      <category>ruby</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
